Skip to content

Скрипты в помощь Яндекс Лицеистам

Notifications You must be signed in to change notification settings

thecattest/yandex-tools

Repository files navigation

yandex-tools

У Яндекс.Лицея, как и у всех сервисов Яндекса, есть api, доступ к которому можно получить просто авторизовавшись.
Так почему же не использовать его и для собственных благих целей?

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

pip install -r requirements.txt
Создайте файл credentials.txt и сохраните в нем логин и пароль, разделённые пробелом.
Так, во-первых, вам не придётся каждый раз его вводить.
Во-вторых, даже если рядом и будет кто-то стоять, ваши данные в безопасности.
Файл добавлен в .gitignore, так что с ним точно ничего не случится.

Контакты

SAVE_IT_ALL.py

Сохраняет все решения задач и материалы уроков.

  • Все уроки нумеруются и сохраняются в отдельные папки, названиями которых являются названия уроков
  • В каждой папке урока находятся папки:
    • Классная работа
    • Домашняя работа
    • Дополнительные задачи
    • Контрольная работа
    • Самостоятельная работа
    • А также .html файл с учебником, стилизованный ровно настолько, чтобы стать привычным и читабельным

по наличию их, собственно, в уроке

yandex-tools-docs by @fast-geek - новый скрипт для сохранения и просмотра документации.

С навигацией и более качественным сохранением материалов.

rating.py

Узнать рейтинг, который будет присвоен вам после проверки всех непроверенных ручных задач.

count_errors.py

Статистика ошибок контеста, которые вы собрали за всё время. (wrong-answer, compilation-error and so on...)
Работает на основе уведомлений Лицея.

count_tasks.py

Скрипт считает количество задач каждого типа и первичные баллы за них.

search.py

Поиск по задачам. Сначала получает все задачи, поэтому перед поиском придётся подождать примерно 10 секунд.
Благодаря этому, поиск будет очень быстрым, так как вся необходимая информация о задачах будет храниться уже в оперативной памяти компьютера.

count_not_solved_tasks.py

Находит все нерешённые или незачтённые задачи, дедлайн для которых ещё не наступил, и выводит их вместе с названием урока.

methods.py

В этом файле находятся функции для работы с api.

  • auth(s, login, password)
    Авторизовывает сессию
  • get_and_auth()
    Получает логин и пароль из файла credentials.txt и возвращает авторизованную сессию
  • get_lesson_ids(s, course_id, group_id)
    Возвращает id всех открытых уроков
  • get_material_id(s, lesson_id)
    Возвращает id учебника
  • get_material_html(s, lesson_id, group_id, material_id)
    Возвращает текст учебника
  • get_all_tasks(s, lesson_id, course_id)
    Возвращает все задачи урока, разделённые по группам
  • get_lesson_info(s, lesson_id, group_id, course_id)
    Возвращает информацию об уроке
  • get_all_lessons(s, course_id, group_id)
    Возвращает информацию обо всех открытых уроках
  • get_solution(s, solution_id)
    Возвращает информацию о решении по его id
  • get_notifications(s)
    Возвращает все уведомления ученика
  • get_courses_groups_ids(s)
    Возвращает название, рейтинг, courseId и groupId для всех курсов, в которых состоит пользователь
  • get_course(s, with_rating=False)
    Возвращает courseId и groupId для курса, который выбрал пользователь.
    Если передать True в параметр with_rating, также вернёт рейтинг пользовтеля