tea-cleaner: Add command line parser
This commit is contained in:
32
tea-cleaner/TeaCleaner/Filter.hs
Normal file
32
tea-cleaner/TeaCleaner/Filter.hs
Normal file
@ -0,0 +1,32 @@
|
||||
module TeaCleaner.Filter
|
||||
( filterByActivities
|
||||
, filterByUserProperties
|
||||
) where
|
||||
|
||||
import Data.Text (StrictText)
|
||||
import qualified Data.Text as Text
|
||||
import Data.Time (LocalTime(..), ZonedTime(..))
|
||||
import Data.Time.Calendar.OrdinalDate (fromOrdinalDate)
|
||||
import qualified Data.Vector as Vector
|
||||
import Text.URI (URI)
|
||||
import TeaCleaner.Client (Activity(..), User(..), getActivities)
|
||||
|
||||
filterByUserProperties :: User -> Bool
|
||||
filterByUserProperties User{ created, lastLogin, description, website }
|
||||
= zonedDay created == zonedDay lastLogin
|
||||
&& zonedDay created > fromOrdinalDate 2024 1
|
||||
&& zonedDay created < fromOrdinalDate 2025 17
|
||||
&& not (Text.null description)
|
||||
&& not (Text.null website)
|
||||
where
|
||||
zonedDay = localDay . zonedTimeToLocalTime
|
||||
|
||||
filterByActivities :: URI -> StrictText -> User -> IO Bool
|
||||
filterByActivities server token user
|
||||
= getActivities server token user
|
||||
>>= evalActivities
|
||||
where
|
||||
evalActivities activities
|
||||
| Just (Activity{ opType }, rest) <- Vector.uncons activities
|
||||
, Vector.null rest = pure $ opType == "create_repo"
|
||||
evalActivities _ = pure False
|
Reference in New Issue
Block a user