Ghytro

schedule.py

Feb 11th, 2021
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.37 KB | None | 0 0
  1. def set_schedule_flow(context: CallbackContext) -> None:
  2.     #update_schedule()
  3.     try:
  4.         parity = week_even()
  5.         day = datetime.datetime.today().weekday()
  6.         day_list = context.bot_data["schedule"][parity][day]
  7.     except (IndexError):
  8.         return
  9.     subjects = []
  10.     for count, i in enumerate(day_list):
  11.         name = str(i['name'])
  12.         if name == "None":
  13.             continue
  14.         else:
  15.             subjects.append(
  16.                 {
  17.                     "start": context.bot_data["timetable_list"][count][0],
  18.                     "end": context.bot_data["timetable_list"][count][1],
  19.                     "name": name,
  20.                     "type": str(i['type']),
  21.                     "classroom": str(i['classroom'])
  22.                 }
  23.             )
  24.     if not subjects:
  25.         return
  26.     for index, i in enumerate(subjects):
  27.         if index == 0:
  28.             jobtime = datetime.datetime.combine(datetime.datetime.now().date(), datetime.datetime.strptime(i["start"], "%H:%M").time()) - datetime.timedelta(minutes=10)
  29.         else:
  30.             jobtime = datetime.datetime.combine(datetime.datetime.now().date(), datetime.datetime.strptime(subjects[index - 1], "%H:%M").time())
  31.         context.job_queue.run_once(
  32.             when = jobtime,
  33.             callback = send_subject_schedule,
  34.             context = i
  35.         )
  36.  
  37. def send_subject_schedule(context: CallbackContext) -> None:
  38.     subject_data = context.job.context
  39.     message_id = context.bot.send_message(
  40.         chat_id = context.bot_data["chat_id"],
  41.         text = "Сейчас будет пара по \"{subject_name}\" {classroom}. Начало: {beginning_time}".format(
  42.             subject_name = context.job.context["name"],
  43.             classroom = "в аудитории "+subject_data["classroom"] if subject_data["classroom"].upper() != "Д" else "дистанционно",
  44.             beginning_time = subject_data["start"]
  45.         )
  46.     ).message_id
  47.     context.job_queue.run_once(
  48.         when = 90, #можно и другое время указать, главное чат не засорять
  49.         callback = delete_message_by_id,
  50.         context = message_id
  51.     )
  52.  
  53. def delete_message_by_id(context: CallbackContext) -> None:
  54.     context.bot.delete_message(
  55.         chat_id = context.bot_data["chat_id"],
  56.         message_id = context.job.context
  57.     )
Advertisement
Add Comment
Please, Sign In to add comment