Skip to content

Зеркалирование файлов расписания с сайта в облако

Notifications You must be signed in to change notification settings

den1s0v/TimetableUpdate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TimetableUpdate — сервис для мониторинга и скачивания файлов с расписанием университета и Django-сайт для доступа к ссылками на эти файлы и их прошлые версии в облаке (и на самом сервере).

Настройка окружения для проекта.

  • Все элементы конфигурации задаются в TimetableUpdate/myproject/settings.py

  • Настроить БД (MySQL): создать пустую базу — см. переменную DATABASES, сделать migrate средствами Django.

  • Конвертация XLS выполняется через LibreOffice (его нужно установить отдельно). Путь к LibreOffice — переменная LIBREOFFICE_EXE

  • Указать путь к конфигурационному файлу гугл-диска — GOOGLE_AUTH_FILE

  • Создать супер-юзера Django для доступа к админке проекта (обычная админка Django не нужна, но супер-юзер нужен всё равно). Админ-панель проекта доступна по ссылке /admin.

  • Для запланированной задачи update_timetable обычно нужен cron.
    При запуске создаётся задача для cron (линукс): timetable/apps.pyTimetableConfigready

  • все методы по cron: TimetableUpdate/timetable/cron_utils.py

Запуск и использование

  • Запуск сайта — как обычно для Django
python manage.py runserver
  • Вне линукса можно работать без cron

    Разовый запуск задачи обновления файлов:

python manage.py update_timetable

Подробнее см. в TimetableUpdate/timetable/management/commands/update_timetable.py

TODO

  • Переименовать Django-проект из myproject в timetable_project (директорию и упоминания)
  • Отвязать от обязательного использования LibreOffice (дать выбор: LibreOffice, xls2xlsx или не преобразовывать)
  • Перенести пароли и др. закрытую информацию в переменные среды
  • Сделать обработку ошибок окружения и конфигурации:
    • если cron недоступен
    • если LibreOffice недоступен
    • если гугл-диск недоступен
    • если сайт-источник недоступен
  • Интегрировать коммиты из ветки Core_versions в main

Развитие

  • Контейнер Docker
  • Подсветка недавно изменённых ячеек

About

Зеркалирование файлов расписания с сайта в облако

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 59.4%
  • JavaScript 18.8%
  • CSS 11.1%
  • HTML 10.7%