diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-01-26 10:17:33 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-01-26 10:17:33 +0100 |
| commit | 6c170513a69bd4c49b006d0672637a48eb449884 (patch) | |
| tree | 617403177519fec8312502c40bf3e3bc98b9c48d /tea-cleaner/TeaCleaner/Filter.hs | |
| parent | 3c430bca64c813a0a04cb98d5cd9a3d3fb70e1b0 (diff) | |
| download | kazbek-6c170513a69bd4c49b006d0672637a48eb449884.tar.gz | |
tea-cleaner: Add command line parser
Diffstat (limited to 'tea-cleaner/TeaCleaner/Filter.hs')
| -rw-r--r-- | tea-cleaner/TeaCleaner/Filter.hs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tea-cleaner/TeaCleaner/Filter.hs b/tea-cleaner/TeaCleaner/Filter.hs new file mode 100644 index 0000000..c4f243e --- /dev/null +++ b/tea-cleaner/TeaCleaner/Filter.hs @@ -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 |
