From 69dd60cc024063daf1591168a64a32e771bd7f1b Mon Sep 17 00:00:00 2001 From: Mikhail Kirillov Date: Fri, 11 Oct 2024 01:53:24 +0400 Subject: Task #30. Allow anyone create or edit upcoming event --- utils.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'utils.py') 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) -- cgit v1.2.3