aboutsummaryrefslogtreecommitdiff
path: root/tea-cleaner/TeaCleaner/Filter.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2025-01-26 10:17:33 +0100
committerEugen Wissner <belka@caraus.de>2025-01-26 10:17:33 +0100
commit6c170513a69bd4c49b006d0672637a48eb449884 (patch)
tree617403177519fec8312502c40bf3e3bc98b9c48d /tea-cleaner/TeaCleaner/Filter.hs
parent3c430bca64c813a0a04cb98d5cd9a3d3fb70e1b0 (diff)
downloadkazbek-6c170513a69bd4c49b006d0672637a48eb449884.tar.gz
tea-cleaner: Add command line parser
Diffstat (limited to 'tea-cleaner/TeaCleaner/Filter.hs')
-rw-r--r--tea-cleaner/TeaCleaner/Filter.hs32
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