many fixes

This commit is contained in:
Administrator 2023-04-03 00:36:41 +03:00
parent 9a9bdd8d84
commit f0440e3000
3 changed files with 35 additions and 3 deletions

View File

@ -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,

View File

@ -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

View File

@ -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()