Python библиотека для использования API: МЭШ / Моя Школа.
Project description
OctoDiary-py
Неофициальная Python библиотека для использования API: МЭШ / Моя Школа.
Установка
Установка через GitHub:
pip3 install https://github.com/OctoDiary/OctoDiary-py/archive/main.zip --upgrade
Стабильная версия от PyPi:
pip3 install octodiary
Для Windows: pip3 > pip
Использование
Моя Школа
Async
from octodiary.asyncApi.myschool import WebAsyncApi
from asyncio import run
api = WebAsyncApi()
async def login_gosuslugi():
# если у вас выключен вход с подтверждением (MFA):
TOKEN = await api.esia_login("<LOGIN>", "<PASSWORD>")
# если у вас включен вход с подтверждением (MFA):
await api.esia_login("<LOGIN>", "<PASSWORD>", True)
code_mfa = int(input("MFA Code: ").strip()) # запрашиваем у пользователя код (SMS/TOTP)
TOKEN = await api.esia_enter_MFA(code=code_mfa)
return TOKEN
async def main():
api.token = await login_gosuslugi() # получения токена по логину и паролю от госуслуг
# получить информацию о пользователе
user_info = await api.get_user_info()
# обновить токен
api.token = await api.refresh_token()
# получить системные сообщения за текущий день
system_messages = await api.get_system_messages()
# получить информацию о сессии и пользователе
session_info = await api.get_session_info()
# получить учебные года (2022-2023 / 2023-2024)
academic_years = await api.get_academic_years()
# получить информацию о каком-либо пользователе
# (оставьте пустым для получения информации об владельце токена)
owner_user = await api.get_user()
other_user = await api.get_user("<USER-ID>")
# получить информацию об одном или нескольких профилях студента (ученика)
# (оставьте пустым для получения информации о текущем учебном году)
student_profiles_current_academic_year = await api.get_student_profiles()
ID = 0 # валидный ID
student_profiles = await api.get_student_profiles(academic_year_id=ID)
# получить информацию о web-профиле
# содержит подробную информацию, включая личные данные
web_profile = await api.get_family_web_profile()
# получить фулл о пользователе (дада, методов много, но каждый дает свое)
person_data = await api.get_person_data("PERSON-ID")
# получить список событий пользователя по параметрам
from datetime import date
events = await api.get_events(
person_id="<PERSON-ID>", # person-id ученика
mes_role="<role>", # роль пользователя (если родитель - parent)
begin_date=date(2023, 9, 4), # дата начала
end_date=date(2023, 9, 10), # дата конца (если не указана - текущий день)
)
# получить информацию о всех детях пользователя по параметрам
# если API TOKEN аккаунта ученика, работать не будет
childrens = await api.get_childrens(
sso_id="<SSO-ID>", # sso-id
)
# получить информацию о контактах пользователя (email, phone, ...)
contacts = await api.get_user_contacts()
# получить информацию об организации
ID = 0 # валидный ID организации, именно organization_id
organization = await api.get_organizations(ID)
run(main())
Sync
from octodiary.syncApi.myschool import WebSyncApi
api = WebSyncApi()
def login_gosuslugi():
# если у вас выключен вход с подтверждением (MFA):
TOKEN = api.esia_login("<LOGIN>", "<PASSWORD>")
# если у вас включен вход с подтверждением (MFA):
api.esia_login("<LOGIN>", "<PASSWORD>", True)
code_mfa = int(input("MFA Code: ").strip()) # запрашиваем у пользователя код (SMS/TOTP)
TOKEN = api.esia_enter_MFA(code=code_mfa)
return TOKEN
api.token = login_gosuslugi() # получения токена по логину и паролю от госуслуг
# получить информацию о пользователе
user_info = api.get_user_info()
# обновить токен
api.token = api.refresh_token()
# получить системные сообщения за текущий день
system_messages = api.get_system_messages()
# получить информацию о сессии и пользователе
session_info = api.get_session_info()
# получить учебные года (2022-2023 / 2023-2024)
academic_years = api.get_academic_years()
# получить информацию о каком-либо пользователе
# (оставьте пустым для получения информации об владельце токена)
owner_user = api.get_user()
other_user = api.get_user("<USER-ID>")
# получить информацию об одном или нескольких профилях студента (ученика)
# (оставьте пустым для получения информации о текущем учебном году)
student_profiles_current_academic_year = api.get_student_profiles()
ID = 0 # валидный ID
student_profiles = api.get_student_profiles(academic_year_id=ID)
# получить информацию о web-профиле
# содержит подробную информацию, включая личные данные
web_profile = api.get_family_web_profile()
# получить фулл о пользователе (дада, методов много, но каждый дает свое)
person_data = api.get_person_data("PERSON-ID")
# получить список событий пользователя по параметрам
from datetime import date
events = api.get_events(
person_id="<PERSON-ID>", # person-id ученика
mes_role="<role>", # роль пользователя (если родитель - parent)
begin_date=date(2023, 9, 4), # дата начала
end_date=date(2023, 9, 10), # дата конца (если не указана - текущий день)
)
# получить информацию о всех детях пользователя по параметрам
# если API TOKEN аккаунта ученика, работать не будет
childrens = api.get_childrens(
sso_id="<SSO-ID>", # sso-id
)
# получить информацию о контактах пользователя (email, phone, ...)
contacts = api.get_user_contacts()
# получить информацию об организации
ID = 0 # валидный ID организации, именно organization_id
organization = api.get_organizations(ID)
МЭШ
Скоро...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
octodiary-0.1.1.tar.gz
(23.2 kB
view details)
File details
Details for the file octodiary-0.1.1.tar.gz
.
File metadata
- Download URL: octodiary-0.1.1.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1295eb59f4f3920cd483499d2f089a74cf667bee08fe4bce1c4aa3e7a7c91bd4 |
|
MD5 | 741009da053b2561c5d3427d468fa605 |
|
BLAKE2b-256 | ebe597808880859fa774d1c21af571d467ecb6e9dacfd97fb6961ac7c9eb6bb4 |