PEP8 autoformat and message formatting changes.
This commit is contained in:
		
							parent
							
								
									e9bec0159f
								
							
						
					
					
						commit
						b0ea33cfff
					
				
							
								
								
									
										16
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								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")
 | 
			
		||||
 | 
			
		||||
@ -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="<b>Назва</b>"):
 | 
			
		||||
                                custom_name_prefix="<b>Назва</b>"):
 | 
			
		||||
    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"<b>{escaped_string_html(lesson['name'])}<b> ({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"<b>Дата</b>: {escaped_string_html(human_readable_date)}\n"
 | 
			
		||||
        result += f"<i>Дата</ii>: {escaped_string_html(human_readable_date)}\n"
 | 
			
		||||
 | 
			
		||||
    if output_settings['teacher']:
 | 
			
		||||
        result += f"<b>Викладач</b>: {escaped_string_html(lesson['teacher'])}\n"
 | 
			
		||||
        result += f"<i>Викладач</i>: {escaped_string_html(lesson['teacher'])}\n"
 | 
			
		||||
 | 
			
		||||
    if output_settings['link']:
 | 
			
		||||
        result += f"<b>Посилання</b>: {escaped_string_html(lesson['link'])}\n"
 | 
			
		||||
        result += f"<i>Посилання</i>: {escaped_string_html(lesson['link'])}\n"
 | 
			
		||||
 | 
			
		||||
    if output_settings['comment'] and 'comment' in lesson:
 | 
			
		||||
        result += f"<b>Примітка</b>: {escaped_string_html(lesson['comment'])}\n"
 | 
			
		||||
        result += f"<i>Примітка</i>: {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="<b>Назва</b>", force_date_at_top=False):
 | 
			
		||||
                           custom_name_prefix="<b>Назва</b>", 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"<b><u>{human_readable_date.capitalize()}</u></b>:\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"<b><u>{human_readable_date.capitalize()}</u></b>:\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="<b>Актуальна пара</b>"), "HTML"
 | 
			
		||||
                                      current_week, custom_name_prefix="<b>Актуальна пара</b>"), "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="<b>Назва</b>", force_date_at_top=True)
 | 
			
		||||
                                                           current_week, overrides=preferences,
 | 
			
		||||
                                                           custom_name_prefix="<b>Назва</b>", force_date_at_top=True)
 | 
			
		||||
                                    for lesson_time in lesson_list]
 | 
			
		||||
 | 
			
		||||
        return f"<b><u>Пари у {WEEKDAYS_ACCUSATIVE[selected_day % 7]}</u></b>:\n\n\n" + "\n\n".join(lesson_descriptions_list), "HTML"
 | 
			
		||||
        return f"<b><u>Пари у {WEEKDAYS_ACCUSATIVE[selected_day % 7]}</u></b>:\n\n\n" + "\n\n".join(
 | 
			
		||||
            lesson_descriptions_list), "HTML"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user