Package: aiomes
aiomesAIOMES- ассинхронная Python-библиотека, написанная на aiohttp и async_playwright, с легким доступом к сервисуМЭШПримечание:Библиотека может работать только с профилем ученика.Установка:pipinstallaiomesplaywrightinstallfirefoxОглавление методов библиотеки:Вход по логину / паролюВход по токенуПолучение расписанияПолучение короткого расписанияПолучение каникулярного расписанияПолучение Д/ЗПолучение оценокПолучение итоговых оценокПолучение прошлогодних итоговых оценокПолучение инфо о школеПолучению меню школьной столовойПолучение меню школьного буфетаПолучение посещаемостиПолучение уведомленийПолучение рейтинга в классеПолучение документовПолучение списка предметовМетоды:Авторизация по логину и паролюfromplaywright.async_apiimportasync_playwrightimportasyncioimportaiomesLOGIN=...PASSWORD=...asyncdefmain():asyncwithasync_playwright()asp:auth=awaitaiomes.AUTH(p)token=awaitauth.obtain_token(LOGIN,PASSWORD)iftoken=='2FA_NEEDED':sms_code=str(input())# Реализация вашей логики получения 2FA-кодаtoken=awaitauth.proceed_2fa(sms_code)user=awaitaiomes.Client(token)asyncio.run(main())Авторизация по токенуimportasyncioimportaiomesTOKEN=...asyncdefmain():user=awaitaiomes.Client(TOKEN)asyncio.run(main())Получение расписанияschedule=awaituser.get_schedule()forsubjectinschedule:print(f"{subject.name},{subject.start_time}-{subject.end_time}, к.{subject.room_number};{subject.marks}")Получение короткого расписанияtoday=date.today()short_schedule=awaituser.get_schedule_short([today,today+timedelta(1),...])forsubjectinshort_schedule:print(f"{subject.name},{subject.start_time}-{subject.end_time}")Получение расписания каникулperiods_schedule=awaituser.get_periods_schedule()forsubjectinperiods_schedule:print(f"{period.name}:{period.starts}—{period.ends}")Получение домашнего заданияhomework=awaituser.get_homeworks(from_date=date.today(),to_date=date.today())forhwinhomework:print(hw.hw_date.strftime('%d/%m'))print(f"{hw.subject_name}:{hw.description};{hw.attached_files},{hw.attached_tests}")print("-"*15)Получение оценокmarks=awaituser.get_marks(from_date=date.today()-timedelta(7),to_date=date.today())formarkinsorted(marks,key=lambdax:x.mark_date):print(f"{mark.subject_name}:{mark.value}[{mark.weight}] -{mark.reason}")Получение оценок за периодperiod_marks=awaituser.get_period_marks(year_id=user.class_level,period_id=0)# [Текущий класс, первый период]forper_markinperiod_marks:print(f"{per_mark.subject_name}-{per_mark.average_mark},{per_mark.final_mark};{per_mark.marks}")Получение итог. оценок за прошлые годаpast_marks=awaituser.get_past_final_marks(class_number=9)# [Номер класса]forpast_markinpast_marks:print(f"{past_mark.subject_name}-{past_mark.final_mark}")Получение информации о школеschool=awaituser.get_school_info()print(school.name,school.address)print(school.site,school.email)print(school.principal)Получение меню школьной столовойtoday=date.today()menu=awaituser.get_menu(today)foriteminmenu:print(f'{item.title}—{item.price}:')formealinitem.composition:print(f'-{meal.name},{meal.ingredients},{meal.calories}')print('-'*35)Получение меню школьного буфетаtoday=date.today()buffet_menu=awaituser.get_menu_buffet(today)foriteminbuffet_menu:print(item.name,item.full_name,item.price,item.is_available)Получение посещаемостиtoday=date.today()attendance=awaituser.get_visits(from_date=today-timedelta(7),to_date=today)fordayinattendance:print(f"{day.visit_date}:{day.in_time}-{day.out_time},{day.duration}")Получение всех уведомленийnotifications=awaituser.get_notifications()forninnotifications:n_date=datetime.strftime(n.event_date,'%d/%m')print(f'{n_date},{n.event_name}[{n.mark_value}], [{n.hw_description}]')Получение рейтинга в классеtoday=date.today()ranking=awaituser.get_class_rank(date_from=today-timedelta(7),date_to=today)fordayinranking:print(f"{day.rank_date},{day.place}")Получение документов ученикаdocs=awaituser.get_docs()fordocindocs:print(f"{doc.type_id}/{doc.series},{doc.number}/{doc.issuer},{doc.issue_date}")Получение списка предметовsubjects=awaituser.get_subjects()print(", ".join(subjects))[Asyncronous Input Output Moscow Electronic School]