Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import strftime
- import re
- from aiogram import types
- from aiogram.dispatcher import filters, FSMContext
- from loader import dp
- from states.times_setting import Set_on
- from utils.db_api import db
- from utils.misc import chats_schedule
- @dp.message_handler(filters.AdminFilter(True), commands=["time_to_on_m"])
- async def set_timer(msg: types.Message, state: FSMContext):
- for job in chats_schedule.scheduler.get_jobs():
- if job.args[0] == msg.chat.id:
- if "on" in job.name:
- time_to_on = strftime("%H:%M", job.next_run_time.timetuple())
- await msg.answer(f"Сейчас подъём установлен на {time_to_on}")
- await state.update_data(cur_job_id=job.id)
- else:
- await state.update_data(cur_job_id=None)
- await Set_on.first()
- await msg.answer("Укажите часы, от 0 до 23:")
- @dp.message_handler(filters.AdminFilter(True), state=Set_on.Q1)
- async def set_hours(msg: types.Message, state: FSMContext):
- if msg.text.isdigit() is True and 0 <= int(msg.text) <= 23:
- hours = msg.text
- await state.update_data(hours=hours)
- await msg.answer(f"Вы установили {msg.text} часов\n"
- "Установите минуты, от 0 до 59:")
- await Set_on.next()
- else:
- await msg.answer(f"Часы не установлены, введите команду /time_to_on_m заново")
- await state.reset_state()
- @dp.message_handler(filters.AdminFilter(True), state=Set_on.Q2)
- async def set_minutes(msg: types.Message, state: FSMContext):
- if msg.text.isdigit() is True and 0 <= int(msg.text) <= 59:
- minutes = msg.text
- data = await state.get_data()
- hours = data.get("hours")
- if len(hours) < 2:
- hours = "0" + hours
- if len(minutes) < 2:
- minutes = "0" + minutes
- time_to_on = str(hours + ":" + minutes)
- if db.add_time_to_on(msg.chat.id, time_to_on=time_to_on):
- data = await state.get_data()
- cur_job_id = data.get("cur_job_id")
- if cur_job_id is not None:
- cur_job = chats_schedule.scheduler.get_job(job_id=cur_job_id)
- cur_job.remove()
- chats_schedule.sched_msg_on(msg.chat.id, time_to_on)
- await msg.answer(f"вы переустановили подъем на {time_to_on}")
- await state.reset_state()
- else:
- chats_schedule.sched_msg_on(msg.chat.id, time_to_on)
- await msg.answer(f"вы установили подъем на {time_to_on}")
- await state.reset_state()
- else:
- await msg.answer(f"Перезапустите бота командой /start")
- await state.reset_state()
- else:
- await msg.answer(f"Минуты не установлены, введите команду /time_to_on_m заново")
- await state.reset_state()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement