From f0440e30001c27c439ceb08694f2196c28eacbd3 Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 3 Apr 2023 00:36:41 +0300 Subject: [PATCH] many fixes --- helpers/answer.py | 20 ++++++++++++++++++-- helpers/keyboards.py | 4 +++- helpers/mongo.py | 14 ++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/helpers/answer.py b/helpers/answer.py index 71e4fc9..5b8f70b 100644 --- a/helpers/answer.py +++ b/helpers/answer.py @@ -185,10 +185,16 @@ class Answer(BaseAnswer): text = "Завтра у тебя нет пар, отдыхай." else: text = ruz.schedule_builder(lessons) - elif message.text == "Уведомления о парах": + elif message.text == "Расписание на неделю": + lessons = mongo.get_week_lessons(user) + if len(lessons) == 0: + text = "На этой неделе у тебя нет пар, отдыхай." + else: + text = ruz.schedule_builder(lessons) + elif message.text == "Напоминания о парах": bot.send_message( user.chat_id, - "Я умею уведомлять о каждой паре и о первой паре. Что хочешь настроить?", + "Я умею напоминать о каждой паре и о первой паре. Что хочешь настроить?", reply_markup=notify_type() ) self.set_state(user, "notify_type") @@ -290,6 +296,16 @@ class Answer(BaseAnswer): {"chat_id": user.chat_id}, {"$set": {"next_daily_notify_time": None, "daily_notify_time": None, "state": "ready"}} ) + elif text == "Назад": + bot.send_message( + user.chat_id, + "Возвращаюсь!", + reply_markup=main_keyboard() + ) + mongo.users_collection.update_one( + {"chat_id": user.chat_id}, + {"$set": {"next_daily_notify_time": None, "daily_notify_time": None, "state": "ready"}} + ) else: bot.send_message( user.chat_id, diff --git a/helpers/keyboards.py b/helpers/keyboards.py index 98ca989..a9825de 100644 --- a/helpers/keyboards.py +++ b/helpers/keyboards.py @@ -4,7 +4,8 @@ import telebot def main_keyboard(): kb = telebot.types.ReplyKeyboardMarkup(True, False) kb.row("Пары сегодня", "Пары завтра") - kb.row("Уведомления о парах") + kb.row("Расписание на неделю") + kb.row("Напоминания о парах") kb.row("Ежедневные уведомления") kb.row("Сброс настроек") return kb @@ -69,6 +70,7 @@ def daily_notify_type(): kb.row("Текущий день") kb.row("Следующий день") kb.row("Не уведомлять") + kb.row("Назад") return kb diff --git a/helpers/mongo.py b/helpers/mongo.py index 8039c24..d2dd169 100644 --- a/helpers/mongo.py +++ b/helpers/mongo.py @@ -71,5 +71,19 @@ class Mongo: def get_tomorrow_lessons(self, user: User): return self._get_lessons_on_date(user, now(user) + datetime.timedelta(days=1)) + def get_week_lessons(self, user: User): + date = now(user) + date = datetime.datetime(year=date.year, month=date.month, day=date.day) + weekday = date.weekday() + next_date = date + datetime.timedelta(days=(6 - weekday)) + lessons = [] + for lesson in self.lessons_collection.find({ + "hse_user_id": user.hse_id, + "begin": {"$gte": date, "$lte": next_date}} + ): + lessons.append(lesson) + lessons.sort(key=lambda les: les["begin"]) + return lessons + mongo = Mongo()