From 9be02d9141c14a3e3ca28567dbaff671de83200f Mon Sep 17 00:00:00 2001 From: Mikhail Kirillov Date: Thu, 10 Oct 2024 04:12:00 +0400 Subject: Fix #9. Add events commands --- predicates.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 predicates.py (limited to 'predicates.py') 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) + +# 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: +# + +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"]) -- cgit v1.2.3