Skip to main content

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

Metadata

Release files for akademiks-urtt 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for akademiks-urtt 1.0.0
File Size Uploaded
akademiks_urtt-1.0.0.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for akademiks-urtt 1.0.0
File Interpreter ABI Platform
akademiks_urtt-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.2 kB

Release files / akademiks_urtt-1.0.0.tar.gz

Download URL akademiks_urtt-1.0.0.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
834ec6d60517f788e8d83db73c5ce51f58f9cc058ab61ed95cecdd0c3db27c82
BLAKE2b-256 checksum
How to use checksums
1e63a9c69866b5be489a7c847b72b13c2f9787705c6a5ce403416133daf1a3c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / akademiks_urtt-1.0.0-py3-none-any.whl

Download URL akademiks_urtt-1.0.0-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e8128cc6bc364745ec7133ee7936254e85c964a35634a6cd470bdbe8ea47305
BLAKE2b-256 checksum
How to use checksums
72ae083e68ae0f975781fe5ea640e659588d697035d5c144fec442596d2913af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page