from bs4 import BeautifulSoup from get import fetch_timetable_data, parse_day_data from DB import UseDB def update_database(group_id: int) -> None: day_mass = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday"] db = UseDB("saved_data") soup: BeautifulSoup = fetch_timetable_data(group_id) for week_tab_id in ["week_1_tab", "week_2_tab"]: week_data: BeautifulSoup = soup.find('div', {"id": week_tab_id}) for day_name in day_mass: day_data = parse_day_data(week_data.find( 'div', { "class": day_name } )) for lesson_time, data in day_data.items(): lesson_name = data[0] lesson_author = data[1] lesson_nav = data[2] if db.find_document({ "group_id": group_id, "week_tab_id": week_tab_id, "day_name": day_name, "lesson_name": lesson_name, "lesson_author": lesson_author, "lesson_nav": lesson_nav, "lesson_time": lesson_time }): db.update_document( { "group_id": group_id, "week_tab_id": week_tab_id, "day_name": day_name }, { "lesson_time": lesson_time, "lesson_name": lesson_name, "lesson_author": lesson_author, "lesson_nav": lesson_nav } ) else: db.insert_document( { "group_id": group_id, "week_tab_id": week_tab_id, "day_name": day_name, "lesson_time": lesson_time, "lesson_name": lesson_name, "lesson_author": lesson_author, "lesson_nav": lesson_nav } ) def detect_group_to_update() -> None: db = UseDB("users") all_users = db.find_document({}) users_ids = [] for user in all_users: if user["group_id"] not in users_ids: users_ids.append(user["group_id"]) for user_id in users_ids: update_database(user_id)