api.dnevnik.ru wrapper
Упрощение работы с api всероссийского электронного дневника как с токеном, так и без него.
Установка
pip install https://github.com/kesha1225/DnevnikRuAPI/archive/master.zip --upgrade
Пример синхронного использования
Получение домашнего задания на указанный период без токена.
from pydnevnikruapi.dnevnik import dnevnik
from datetime import datetime
login = "login"
password = "password"
# Получаем доступ через логин и пароль
dn = dnevnik.DiaryAPI(login=login, password=password)
print(
dn.get_school_homework(1000002283077, datetime(2019, 9, 5), datetime(2019, 9, 15))
)
# Получение домашнего задания текущего пользователя для школы с id 1000002283077 в период с 05-09-2019 по 15-09-2019
print(dn.get_edu_groups())
# Получение групп обучения текущего пользователя
Пример асинхронного использования
Получение домашнего задания на указанный период без токена.
from pydnevnikruapi.aiodnevnik import dnevnik
from pydnevnikruapi.aiodnevnik.utils import TaskManager
import asyncio
from datetime import datetime
async def get_dn_info():
homework = await dn.get_school_homework(
1000002283077, str(datetime(2019, 9, 5)), str(datetime(2019, 9, 15))
)
# Получение домашнего задания текущего пользователя для школы с id 1000002283077 в период с 05-09-2019 по 15-09-2019
print(homework)
edu_groups = await dn.get_edu_groups()
# Получение групп обучения текущего пользователя
print(edu_groups)
async def close_session():
await dn.close_session()
# В конце использования закрываем сессию
if __name__ == "__main__":
login = "login"
password = "password"
dn = dnevnik.AsyncDiaryAPI(login=login, password=password)
# Получаем доступ через логин и пароль
loop = asyncio.get_event_loop()
# Добавляем все наши функции в event loop через Task Manager
task_manager = TaskManager(loop)
task_manager.add_task(get_dn_info)
task_manager.run(on_shutdown=close_session)
# Закрываем сессию по завершению работы