From a3ded40e0644d97989f131df0b000a8812ff232a Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 21 Oct 2022 22:30:56 +0300 Subject: [PATCH] remove daily --- helpers/answer.py | 48 -------------------------------------------- helpers/keyboards.py | 1 - helpers/models.py | 2 -- 3 files changed, 51 deletions(-) diff --git a/helpers/answer.py b/helpers/answer.py index 0c7064e..b44b344 100644 --- a/helpers/answer.py +++ b/helpers/answer.py @@ -135,14 +135,6 @@ class Answer(BaseAnswer): ) self.set_state(user, "wait_for_notify") return - elif message.text == "Ежедневные уведомления": - bot.send_message( - user.chat_id, - "Пришли время в формате чч:мм во сколько ты хочешь получать уведомления о парах в этот день. Например, 09:30", - reply_markup=no_daily_notify() - ) - self.set_state(user, "wait_for_daily_notify") - return elif message.text == "Сброс настроек": bot.send_message(user.chat_id, "Ты уверен что хочешь сбросить все настройки и больше не получать уведомления?", reply_markup=yes_no_keyboard()) self.set_state(user, "reset") @@ -194,45 +186,5 @@ class Answer(BaseAnswer): "Я не понимаю, используй кнопки", reply_markup=yes_no_keyboard()) - def _check_time_correct(self, line: str) -> bool: - if len(line) != 5: - return False - if line.count(':') != 1: - return False - hours, minutes = line.split(':') - try: - hours = int(hours) - minutes = int(minutes) - except: - return False - if hours < 0 or hours > 23 or minutes < 0 or minutes > 59: - return False - return True - - def handle_state_wait_for_daily_notify(self, message: Message, user: User): - text = message.text - if not self._check_time_correct(text): - bot.send_message( - user.chat_id, - "Ты прислал что-то неправильное. Пришли время в формате чч:мм. Например, 09:30", - reply_markup=no_daily_notify() - ) - return - user.notify_daily = message.text - hours, minutes = user.notify_daily.split(':') - cron = croniter.croniter(f"{minutes} {hours} * * *", now()) - next_date = cron.get_next(datetime.datetime) - next_date = next_date.replace(tzinfo=pytz.timezone('Europe/Moscow')) - mongo.users_collection.update_one({"chat_id": user.chat_id}, {"$set": { - "notify_daily": message.text, - "next_notify_time": next_date - }}) - bot.send_message( - user.chat_id, - f"Принято! Буду каждый день уведомлять тебя в {message.text}", - reply_markup=main_keyboard() - ) - self.set_state(user, "ready") - answer = Answer() diff --git a/helpers/keyboards.py b/helpers/keyboards.py index b945eb2..b6574cb 100644 --- a/helpers/keyboards.py +++ b/helpers/keyboards.py @@ -5,7 +5,6 @@ def main_keyboard(): kb = telebot.types.ReplyKeyboardMarkup(True, False) kb.row("Пары сегодня") kb.row("Уведомления о парах") - kb.row("Ежедневные уведомления") kb.row("Сброс настроек") return kb diff --git a/helpers/models.py b/helpers/models.py index 956f42b..c758a29 100644 --- a/helpers/models.py +++ b/helpers/models.py @@ -9,8 +9,6 @@ from marshmallow import EXCLUDE @dataclass class User: chat_id: int - next_notify_time: datetime.datetime - notify_daily: Optional[str] = "09:00" name: Optional[str] = None group: Optional[str] = None hse_id: Optional[int] = None