Python client & CLI for the Akademiks URTK schedule API
Project description
akademiks-urtt
Python-клиент и CLI для получения расписания через Akademiks УРТК.
Работает для любой группы Уральского радиотехнического колледжа. Никаких зависимостей — только стандартная библиотека Python.
Для кого и зачем
Сайт akademiks.urtt.ru неудобен: нельзя экспортировать расписание, нет API-документации, интерфейс сделан под мышку. Этот инструмент решает проблему:
- Студенты — получают расписание в Markdown, импортируют в Notion/Obsidian или в телефонный календарь через
.ics - Разработчики — используют как библиотеку в своих ботах, автоматизациях, приложениях
- Все группы УРТК — не только ИС-228, работает с любой группой колледжа
Установка
pip install akademiks-urtt
Или из исходников:
git clone https://github.com/cotafei/akademiks-urtt
cd akademiks-urtt
pip install -e .
Требования: Python 3.10+, интернет-соединение. Больше ничего.
CLI — быстрый старт
# Расписание на текущую неделю
akademiks --group is-228
# Конкретная неделя
akademiks --group is-228 --week 2026-04-14
# Сохранить в папку (Markdown + ICS для Apple/Google Calendar)
akademiks --group is-228 --out ./расписание --ics
# Вывод в JSON
akademiks --group is-228 --format json
# Список всех групп УРТК
akademiks --groups
Все параметры
| Флаг | По умолчанию | Описание |
|---|---|---|
--group, -g |
обязательный | ID группы, например is-228 |
--week, -w |
текущая неделя | Любая дата нужной недели (YYYY-MM-DD) |
--format, -f |
markdown |
Формат вывода: markdown, ics, json |
--out, -o |
вывод в терминал | Папка для сохранения файлов |
--ics |
выключен | Также экспортировать .ics при формате markdown |
--tz-offset |
5 |
Сдвиг UTC в часах (по умолчанию Екатеринбург UTC+5) |
--tz-name |
Asia/Yekaterinburg |
Имя часового пояса для заголовков ICS |
--groups |
— | Показать все группы УРТК |
Python API
from datetime import date
from akademiks import fetch_schedule, fetch_groups
from akademiks import format_markdown, format_ics, format_json
from akademiks import week_monday
# Получить расписание
monday = week_monday() # понедельник текущей недели
days = fetch_schedule(monday, "is-228") # список дней
# Форматировать
md = format_markdown(days, monday, "is-228")
ics = format_ics(days, "is-228")
js = format_json(days, monday, "is-228")
# Все группы
groups = fetch_groups()
# [{"id": "is-228", "title": "ИС-228"}, ...]
Другой часовой пояс
from datetime import timezone, timedelta
from akademiks import fetch_schedule, format_markdown, week_monday
tz_moscow = timezone(timedelta(hours=3))
monday = week_monday()
days = fetch_schedule(monday, "it-101", tz=tz_moscow)
md = format_markdown(days, monday, "it-101", tz=tz_moscow)
Структура данных
fetch_schedule() возвращает список объектов-дней:
[
{
"start": "2026-04-13T19:00:00.000Z",
"lessons": [
{
"id": "...",
"index": 1,
"title": "Математика",
"start": "2026-04-14T03:30:00.000Z",
"end": "2026-04-14T05:00:00.000Z",
"subgroup": null,
"Teacher": {"id": "...", "name": "Иванов И.И."},
"Classroom": {"id": "...", "name": "305", "address": "ул. Студенческая 3"}
}
]
}
]
Автосинхронизация
Windows (Task Scheduler)
Сохрани examples/weekly_sync.py, затем в PowerShell (от администратора):
schtasks /Create /F /TN "AkademiksSync" `
/TR "python C:\path\to\weekly_sync.py" `
/SC WEEKLY /D MON /ST 07:00
Linux / macOS (cron)
0 7 * * 1 /usr/bin/python3 /path/to/weekly_sync.py
Заметки
- Эндпоинты
schedule.getиgroups.getработают без авторизации — официальный публичный API. - По умолчанию часовой пояс UTC+5 (Екатеринбург). Для других городов используй
--tz-offset. - Требуется Python 3.10+.
Лицензия
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file akademiks_urtt-1.0.0.tar.gz.
File metadata
- Download URL: akademiks_urtt-1.0.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
834ec6d60517f788e8d83db73c5ce51f58f9cc058ab61ed95cecdd0c3db27c82
|
|
| MD5 |
13db40bfd3b9841ad9f75eec236d1d3b
|
|
| BLAKE2b-256 |
1e63a9c69866b5be489a7c847b72b13c2f9787705c6a5ce403416133daf1a3c0
|
File details
Details for the file akademiks_urtt-1.0.0-py3-none-any.whl.
File metadata
- Download URL: akademiks_urtt-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e8128cc6bc364745ec7133ee7936254e85c964a35634a6cd470bdbe8ea47305
|
|
| MD5 |
d2cf1b070263fc16671356f4b7a012e2
|
|
| BLAKE2b-256 |
72ae083e68ae0f975781fe5ea640e659588d697035d5c144fec442596d2913af
|