remove daily
This commit is contained in:
parent
61436be630
commit
a3ded40e06
@ -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()
|
||||
|
@ -5,7 +5,6 @@ def main_keyboard():
|
||||
kb = telebot.types.ReplyKeyboardMarkup(True, False)
|
||||
kb.row("Пары сегодня")
|
||||
kb.row("Уведомления о парах")
|
||||
kb.row("Ежедневные уведомления")
|
||||
kb.row("Сброс настроек")
|
||||
return kb
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user