MTUCI Private API
Данная библиотека позволяет работать с ЛК МТУСИ из кода Python.
Она работает асинхронно, т.к. запросы долгие в силу специфики имитации действий браузера.
[!IMPORTANT] Библиотека работает с функционалом студентов. У меня нет возможности реализовать функционал старост или преподавателей, т.к. не располагаю такими аккаунтами.
Возможности
- Аутентификация
- Информация о пользователе
- Посещаемость. Получение актуальной посещаемости по предметам.
- Расписание. Расписание предметов можно получить на определённую дату.
Типизация
Вся библиотека типизировано настолько, насколько возможно, чтобы ей было комфортно пользоваться.
Архитектура
Библиотека имеет несколько основных модулей:
authдля аутентификации.userдля получения информации о пользователе.attendanceдля получения информации о посещаемости.scheduleдля получения информации о расписании.modelsдля моделей данных.mtuci- основные классы-оркестраторы.
В каждом из модулей (кроме models) всё делится на:
- Фабрики запросов.
- Парсеры.
- Сервис.
Быстрый старт
Для старта Вам понадобится только логин и пароль от Вашего аккаунта ЛК.
import asyncio
from datetime import datetime
from src.mtuci_private_api import Mtuci
async def main():
async with Mtuci(
login="ваш_логин",
password="ваш_пароль"
) as mtuci:
# Получение информации о пользователе
user_info = await mtuci.get_user_info()
print(f"Студент: {user_info.name}")
print(f"Группа: {user_info.group}")
# Получение посещаемости
attendance = await mtuci.get_attendace()
for subject in attendance:
print(f"{subject.subject_name}: {subject.attendance_percentage}%")
# Получение расписания
schedule = await mtuci.get_schedule(datetime(2025, 11, 21))
for lesson in schedule.lessons:
print(f"{lesson.start_time}: {lesson.name}")
asyncio.run(main())
Настройка логирования
Библиотека ищет в корне файл logging_config.yaml с настройкой логирования. Если не находит, то использует базовые настройки.
Сложности с аутентификацией
В проекте есть две версии аутентификации. По непонятной мне причине когда-то работает первая, а когда-то - вторая.
В силу этого, был создан AutoAuthService, который проверяет сначала одну, а потом другую версию. Рекомендуется использовать именно его.
Разработка
Если Вы хотите что-то поправить или внести новый функционал, то форкните репозиторий.
Старайтесь соблюдать имеющуеся архитектуру и прибегайте к её изменению только в особых случаях.
В репозитории настроены Github Actions с тестами и линтингом, также приложен .pre-commit-config.yaml для локальных проверок перед коммитами.
Metadata
Release files for mtuci-private-api 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mtuci_private_api-0.1.2.tar.gz | 19.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mtuci_private_api-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.0 kB
Release files / mtuci_private_api-0.1.2.tar.gz
| Download URL | mtuci_private_api-0.1.2.tar.gz |
|---|---|
| Size | 19.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
38bccfe110bd411625323afa8a942113c9dfd77e8fa1ddff87a8b90ec74f332a
|
|
BLAKE2b-256 checksum How to use checksums |
c2241fdd1e91e7a36ddad4b607b74ddac81b5f079d3290abfc19b5c17e3fdbf4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / mtuci_private_api-0.1.2-py3-none-any.whl
| Download URL | mtuci_private_api-0.1.2-py3-none-any.whl |
|---|---|
| Size | 46.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a29297d8e865d9ab6237368265cce78ba914f3ca6ed751419837edf51ba00730
|
|
BLAKE2b-256 checksum How to use checksums |
47ff64f21835b6cbead169bf413dc037aee7e3c965ba651abc1f3ff41e55bfee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|