Skip to main content

Python библиотека для использования API: МЭШ / Моя Школа.

Project description

OctoDiary
OctoDiary
Telegram-Канал

OctoDiary-py

Неофициальная Python библиотека для использования API: МЭШ / Моя Школа.


external-install-basic-ui-elements-2.3-sbts2018-outline-color-sbts2018 Установка

Установка через GitHub:

pip3 install https://github.com/OctoDiary/OctoDiary-py/archive/main.zip --upgrade

Стабильная версия от PyPi:

pip3 install octodiary

Для Windows: pip3 > pip


python Использование


myschool Моя Школа

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)

mesh МЭШ

Скоро...

Project details


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)

Uploaded Source

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

Hashes for octodiary-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1295eb59f4f3920cd483499d2f089a74cf667bee08fe4bce1c4aa3e7a7c91bd4
MD5 741009da053b2561c5d3427d468fa605
BLAKE2b-256 ebe597808880859fa774d1c21af571d467ecb6e9dacfd97fb6961ac7c9eb6bb4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page