summaryrefslogtreecommitdiff
path: root/utils.py
diff options
context:
space:
mode:
authorMikhail Kirillov <w96k@runbox.com>2024-10-11 01:53:24 +0400
committerMikhail Kirillov <w96k@runbox.com>2024-10-11 01:53:24 +0400
commit69dd60cc024063daf1591168a64a32e771bd7f1b (patch)
tree9af211858513072175e5611a15e47012b34f349c /utils.py
parent694d823d4d46ec2914f6e210f8903887e4a72d79 (diff)
Task #30. Allow anyone create or edit upcoming event
Diffstat (limited to 'utils.py')
-rw-r--r--utils.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/utils.py b/utils.py
index 2acdb01..c9a5495 100644
--- a/utils.py
+++ b/utils.py
@@ -11,6 +11,7 @@
from telegram.ext import ContextTypes
from collections import deque
+from typing import Optional
def context_init(context: ContextTypes.DEFAULT_TYPE):
"""
@@ -37,8 +38,28 @@ def create_users_string(users: list[str]) -> str:
return "`" + ", ".join(users) + "`"
-def choose_next_user(users: list[dict]) -> list[dict]:
- users = deque(users)
+def choose_next_user(context: ContextTypes.DEFAULT_TYPE) -> list[dict]:
+ users = deque(context.chat_data["users"])
users.rotate(-1) # -1 moves list to left by 1 element
+ init_new_event(context, users[0])
+
return list(users)
+
+
+def init_new_event(context: ContextTypes.DEFAULT_TYPE, user: dict, movie: Optional[str] = None):
+ events = context.chat_data["events"]
+
+ last_event = events[-1] if events != [] else None
+
+ init_event = dict(
+ when=None,
+ where=None,
+ movie=movie,
+ user=user
+ )
+
+ if last_event and last_event["movie"] is None:
+ events[-1] = init_event
+ else:
+ events.append(init_event)