auto-schedule-pro-v2: add lookup capability to current lesson requests and make styling more flexible
This commit is contained in:
parent
d6bd061090
commit
604054af9e
|
@ -48,8 +48,13 @@ def get_preference_by_id(user_id, name):
|
|||
|
||||
|
||||
def get_all_preferences_by_id(user_id):
|
||||
user_preferences = {"output-style": "legacy-vibrant"}
|
||||
user_preferences = {
|
||||
"output-style": "legacy-vibrant",
|
||||
"output-style-lesson": "None",
|
||||
"output-style-lookup": "None"
|
||||
}
|
||||
|
||||
# label defaults as defaults and let custom settings override these labels
|
||||
for i in user_preferences:
|
||||
user_preferences[i] += " <i>(default)</i>"
|
||||
|
||||
|
@ -303,10 +308,6 @@ def process(message, path):
|
|||
|
||||
reference_time = int(current_time.strftime("%s")) - current_seconds
|
||||
|
||||
output_style_preference = get_preference_by_id(message.from_user.id, "output-style")
|
||||
if output_style_preference == None:
|
||||
output_style_preference = "legacy-vibrant"
|
||||
|
||||
if base_command == "!пара":
|
||||
# easter egg
|
||||
study_begin_ts = int(datetime(year=2023, month=9, day=4).strftime("%s"))
|
||||
|
@ -327,6 +328,32 @@ def process(message, path):
|
|||
else:
|
||||
closest_lesson_time = min(schedule)
|
||||
|
||||
# shifting lesson pointer if requested to do so
|
||||
if len(full_command) >= 2:
|
||||
possible_times = list(schedule.keys())
|
||||
current_pointer_position = possible_times.index(closest_lesson_time)
|
||||
total_list_length = len(possible_times)
|
||||
|
||||
if len(full_command[1]) > 1 and full_command[1][1:].isdigit():
|
||||
if full_command[1][0] == "+":
|
||||
current_pointer_position = (current_pointer_position + int(full_command[1][1:])) % total_list_length
|
||||
else:
|
||||
current_pointer_position = (current_pointer_position - int(full_command[1][1:])) % total_list_length
|
||||
|
||||
closest_lesson_time = possible_times[current_pointer_position]
|
||||
|
||||
# getting corrent style
|
||||
output_style_preference = "legacy-vibrant"
|
||||
|
||||
general_output_style_preference = get_preference_by_id(message.from_user.id, "output-style")
|
||||
if general_output_style_preference != None:
|
||||
output_style_preference = general_output_style_preference
|
||||
|
||||
specific_output_style_preference = get_preference_by_id(message.from_user.id, "output-style-lesson")
|
||||
if specific_output_style_preference != None:
|
||||
output_style_preference = specific_output_style_preference
|
||||
|
||||
# returning generated pair description
|
||||
return get_lesson_description(schedule, reference_time, closest_lesson_time, current_day,
|
||||
current_week, custom_name_prefix="Актуальна пара", template=output_style_preference), "HTML"
|
||||
|
||||
|
@ -342,6 +369,16 @@ def process(message, path):
|
|||
|
||||
lesson_list = [i for i in schedule if selected_day * 86400 <= i < (selected_day + 1) * 86400]
|
||||
|
||||
output_style_preference = "legacy-vibrant"
|
||||
|
||||
general_output_style_preference = get_preference_by_id(message.from_user.id, "output-style")
|
||||
if general_output_style_preference != None:
|
||||
output_style_preference = general_output_style_preference
|
||||
|
||||
specific_output_style_preference = get_preference_by_id(message.from_user.id, "output-style-lookup")
|
||||
if specific_output_style_preference != None:
|
||||
output_style_preference = specific_output_style_preference
|
||||
|
||||
lesson_descriptions_list = [get_lesson_description(schedule, reference_time, lesson_time, current_day,
|
||||
current_week, overrides=preferences, custom_name_prefix="Назва", template=output_style_preference, force_date_at_top=True)
|
||||
for lesson_time in lesson_list]
|
||||
|
@ -357,7 +394,7 @@ def process(message, path):
|
|||
prefs = get_all_preferences_by_id(message.from_user.id)
|
||||
|
||||
if full_command[2] in prefs:
|
||||
if full_command[2] == "output-style":
|
||||
if full_command[2] in ["output-style", "output-style-lesson", "output-style-lookup"]:
|
||||
if full_command[3] not in os.listdir(module_path + "templates/"):
|
||||
return f"Стилю {full_command[3]} не існує; доступні варіанти: " \
|
||||
+ ', '.join(os.listdir(module_path + "templates/")), "HTML"
|
||||
|
|
Loading…
Reference in New Issue