tea-cleaner: Make no login period configurable
This commit is contained in:
@ -42,20 +42,20 @@ printStatistics Settings{ statistics } =
|
||||
$ "Count: " <> count'
|
||||
|
||||
handleResults :: Settings -> Bool -> Vector FilterResult -> IO (Vector User)
|
||||
handleResults settings liveRun =
|
||||
handleResults settings live =
|
||||
Vector.foldM' handleResult Vector.empty
|
||||
where
|
||||
handleResult accumulator (FilterResult user FailedFilter)
|
||||
= handleFailedFilter settings liveRun user
|
||||
= handleFailedFilter settings live user
|
||||
>> pure accumulator
|
||||
handleResult accumulator (FilterResult _ PassFilter) = pure accumulator
|
||||
handleResult accumulator (FilterResult user SuspiciousFilter) = pure
|
||||
$ Vector.snoc accumulator user
|
||||
|
||||
handleFailedFilter :: Settings -> Bool -> User -> IO ()
|
||||
handleFailedFilter settings liveRun user = Text.IO.putStrLn buildValue
|
||||
handleFailedFilter settings live user = Text.IO.putStrLn buildValue
|
||||
>> modifyIORef (getField @"statistics" settings) (+ 1)
|
||||
>> when liveRun (purgeUser settings user)
|
||||
>> when live (purgeUser settings user)
|
||||
where
|
||||
buildValue = getField @"username" user <> "\n"
|
||||
<> " Website: " <> getField @"website" user <> "\n"
|
||||
@ -70,12 +70,12 @@ handleFailedFilter settings liveRun user = Text.IO.putStrLn buildValue
|
||||
main :: IO ()
|
||||
main = execParser commandLineInfo >>= withArguments
|
||||
where
|
||||
withArguments ProgramOptions{ liveRun } = decodeSettingsFile "config/tea-cleaner.toml"
|
||||
>>= withSettings liveRun
|
||||
withArguments ProgramOptions{ live } = decodeSettingsFile "config/tea-cleaner.toml"
|
||||
>>= withSettings live
|
||||
|
||||
withSettings :: Bool -> Settings -> IO ()
|
||||
withSettings liveRun settings = getUsers settings
|
||||
>>= handleResults settings liveRun . fmap (filterByUserProperties settings)
|
||||
withSettings live settings = getUsers settings
|
||||
>>= handleResults settings live . fmap (filterByUserProperties settings)
|
||||
>>= traverse (filterByActivities settings)
|
||||
>>= handleResults settings liveRun
|
||||
>>= handleResults settings live
|
||||
>> printStatistics settings
|
||||
|
Reference in New Issue
Block a user