diff --git a/main.py b/main.py index cdbeb92..2636d8d 100644 --- a/main.py +++ b/main.py @@ -98,7 +98,7 @@ class ModuleControlUnit: print(f"[WARN] module_loader: no meta.json found in module folder \"{folder}\"") continue - meta = json.loads( meta_raw ) + meta = json.loads(meta_raw) if "version" in meta: if meta["version"] == 1: if "index_file" in meta: @@ -106,8 +106,8 @@ class ModuleControlUnit: else: index_file = "index.py" - code = readfile( "modules/{}/{}".format(folder, index_file) ) - if not code: # False both when readfile() returns False and when the code string is empty + code = readfile("modules/{}/{}".format(folder, index_file)) + if not code: # False both when readfile() returns False and when the code string is empty print("[WARN] reload_modules: module {} does not have any code, skipping...".format(folder)) continue @@ -166,7 +166,7 @@ def queue_processor(): try: if len(message_queue) > 0: msg = message_queue[0] - print("[DEBUG] queue_processor: {}".format(msg)) # debug + print("[DEBUG] queue_processor: {}".format(msg)) # debug # check for control commands if msg["chat"]["id"] == 575246355: @@ -203,9 +203,10 @@ def queue_processor(): elif formatting in ["Markdown", "MarkdownV2", "HTML"]: updater.bot.send_message(chat_id=msg.chat.id, text=response, - disable_web_page_preview=True, - parse_mode=formatting) - print(f"Responded using module {mod.path} ({mod.alias}) with text (using {formatting}): {response}") + disable_web_page_preview=True, + parse_mode=formatting) + print( + f"Responded using module {mod.path} ({mod.alias}) with text (using {formatting}): {response}") break del message_queue[0] @@ -247,7 +248,6 @@ mcu = ModuleControlUnit() processor_thread = threading.Thread(target=queue_processor, args=[]) processor_thread.start() - # connecting to Telegram servers and listening for messages TOKEN = readfile("config/token") diff --git a/modules/auto-schedule-pro-v2/main.py b/modules/auto-schedule-pro-v2/main.py index ecd43f1..f4ceb80 100644 --- a/modules/auto-schedule-pro-v2/main.py +++ b/modules/auto-schedule-pro-v2/main.py @@ -19,15 +19,15 @@ WEEKDAYS_GENITIVE_THIS = ["цього понеділка", "цього вівт "цієї суботи", "цієї неділі"] lesson_types_to_strings = { - "lec": "лекція", - "prac": "практика", - "lab": "лабораторна" + "lec": "лекція", + "prac": "практика", + "lab": "лабораторна" } - # global variables module_path = "" + def escaped_string_markdownV2(input_string): result_string = input_string @@ -78,28 +78,28 @@ def get_name_of_lesson_type(lesson_type): def generate_lesson_description(lesson, start_datetime, end_datetime, current_day, current_week, overrides={}, - custom_name_prefix="Назва"): + custom_name_prefix="Назва"): output_settings = {"name": True, "date": True, "teacher": True, "link": True, "comment": True} output_settings.update(overrides) result = "" if output_settings['name']: - result += f"{custom_name_prefix}: {escaped_string_html(lesson['name'])} ({escaped_string_html(get_name_of_lesson_type(lesson['type']))})\n" + result += f"{escaped_string_html(lesson['name'])} ({escaped_string_html(get_name_of_lesson_type(lesson['type']))})\n" if output_settings['date']: human_readable_date = get_human_readable_date(start_datetime, end_datetime, current_day, current_week) - result += f"Дата: {escaped_string_html(human_readable_date)}\n" + result += f"Дата: {escaped_string_html(human_readable_date)}\n" if output_settings['teacher']: - result += f"Викладач: {escaped_string_html(lesson['teacher'])}\n" + result += f"Викладач: {escaped_string_html(lesson['teacher'])}\n" if output_settings['link']: - result += f"Посилання: {escaped_string_html(lesson['link'])}\n" + result += f"Посилання: {escaped_string_html(lesson['link'])}\n" if output_settings['comment'] and 'comment' in lesson: - result += f"Примітка: {escaped_string_html(lesson['comment'])}\n" + result += f"Примітка: {escaped_string_html(lesson['comment'])}\n" return result @@ -151,7 +151,7 @@ def process_arguments(args, base_day): def get_lesson_description(schedule, reference_time, lesson_time, current_day, current_week, overrides={}, - custom_name_prefix="Назва", force_date_at_top=False): + custom_name_prefix="Назва", force_date_at_top=False): lesson_record = schedule[lesson_time] lesson_start_datetime = datetime.fromtimestamp(reference_time + lesson_time) @@ -163,18 +163,19 @@ def get_lesson_description(schedule, reference_time, lesson_time, current_day, c internal_overrides = dict(overrides) internal_overrides['date'] = False - description = generate_lesson_description(lesson_record, lesson_start_datetime, lesson_end_datetime, current_day, - current_week, overrides=internal_overrides) + description = generate_lesson_description(lesson_record, lesson_start_datetime, lesson_end_datetime, + current_day, + current_week, overrides=internal_overrides) if 'date' in user_defined_overrides and not user_defined_overrides['date']: return description else: human_readable_date = get_human_readable_date(lesson_start_datetime, lesson_end_datetime, - current_day, current_week) + current_day, current_week) return f"{human_readable_date.capitalize()}:\n" + description else: return generate_lesson_description(lesson_record, lesson_start_datetime, lesson_end_datetime, current_day, - current_week, overrides=overrides) + current_week, overrides=overrides) elif lesson_record.__class__ == list: user_defined_overrides = dict(overrides) @@ -182,13 +183,14 @@ def get_lesson_description(schedule, reference_time, lesson_time, current_day, c internal_overrides['date'] = False descriptions = [generate_lesson_description(i, lesson_start_datetime, lesson_end_datetime, current_day, - current_week, overrides=internal_overrides, custom_name_prefix=custom_name_prefix) for i in lesson_record] + current_week, overrides=internal_overrides, + custom_name_prefix=custom_name_prefix) for i in lesson_record] if 'date' in user_defined_overrides and not user_defined_overrides['date']: return "\n".join(descriptions) else: human_readable_date = get_human_readable_date(lesson_start_datetime, lesson_end_datetime, - current_day, current_week) + current_day, current_week) return f"{human_readable_date.capitalize()}:\n" + "\n".join(descriptions) @@ -224,7 +226,7 @@ def process(message, path): study_begin_ts = int(datetime(year=2023, month=9, day=4).strftime("%s")) current_ts = int(datetime.now().strftime("%s")) - if -3600*4 < study_begin_ts - current_ts < 0: + if -3600 * 4 < study_begin_ts - current_ts < 0: return "Навчання незабаром розпочнеться!", None elif 0 <= study_begin_ts - current_ts < 1209600: return f"До навчання залишилося {study_begin_ts - current_ts} секунд...", None @@ -239,7 +241,7 @@ def process(message, path): closest_lesson_time = min(schedule) return get_lesson_description(schedule, reference_time, closest_lesson_time, current_day, - current_week, custom_name_prefix="Актуальна пара"), "HTML" + current_week, custom_name_prefix="Актуальна пара"), "HTML" elif base_command == "!пари": base_day = current_week * 7 + current_day @@ -254,7 +256,9 @@ def process(message, path): lesson_list = [i for i in schedule if selected_day * 86400 <= i < (selected_day + 1) * 86400] lesson_descriptions_list = [get_lesson_description(schedule, reference_time, lesson_time, current_day, - current_week, overrides=preferences, custom_name_prefix="Назва", force_date_at_top=True) + current_week, overrides=preferences, + custom_name_prefix="Назва", force_date_at_top=True) for lesson_time in lesson_list] - return f"Пари у {WEEKDAYS_ACCUSATIVE[selected_day % 7]}:\n\n\n" + "\n\n".join(lesson_descriptions_list), "HTML" + return f"Пари у {WEEKDAYS_ACCUSATIVE[selected_day % 7]}:\n\n\n" + "\n\n".join( + lesson_descriptions_list), "HTML"