diff options
Diffstat (limited to 'predicates.py')
-rw-r--r-- | predicates.py | 31 |
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"]) |