summaryrefslogtreecommitdiff
path: root/predicates.py
diff options
context:
space:
mode:
Diffstat (limited to 'predicates.py')
-rw-r--r--predicates.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/predicates.py b/predicates.py
new file mode 100644
index 0000000..992972d
--- /dev/null
+++ b/predicates.py
@@ -0,0 +1,31 @@
+# This file is part of python-cinema-club-bot
+# contributed in 2024 by Mikhail Kirillov (~w96k) <w96k@runbox.com>
+
+# To the extent possible under law, the author(s) have dedicated all copyright
+# and related and neighboring rights to this software to the public domain
+# worldwide. This software is distributed without any warranty.
+
+# You should have received a copy of the CC0 Public Domain Dedication along
+# with this software. If not, see:
+# <http://creativecommons.org/publicdomain/zero/1.0/>
+
+from telegram.ext import ContextTypes
+from datetime import datetime
+
+from utils import normalize_username
+
+
+def is_past(dt: datetime) -> bool:
+ return dt < datetime.today()
+
+
+def has_finished_event(
+ context: ContextTypes.DEFAULT_TYPE,
+ username: str
+) -> bool:
+ events = context.chat_data["events"]
+ last_event = events[-1] if events != [] else None
+
+ return last_event is not None and \
+ last_event["user"] == normalize_username(username) and \
+ is_past(last_event["when"])