Skip to content

destraty/cfuv-excel-schedule-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Парсер расписаний Крымского Федерального Университета

Maintainability

Это относительно урезанная версия программы для понимания концепции работы, выявления багов и улучшения проекта.

Содержание

  1. Установка и запуск на Windows
  2. Установка и запуск на Linux
  3. Описание и примеры запросов

Установка и запуск

На Windows

Скачайте и установите Python 3.11.7, если у вас все еще его нет отсюда.

Скачайте и установите Java 1.8.0 по этой ссылке

Перезагрузите компьютер.

Скачайте файлы из репозитория командой:

git clone https://github.com/destraty/cfuv-excel-schedule-parser
P.S. Что такое GIT и как его установить

Перейдтие в папку с проектом:

cd cfuv-excel-schedule-parser

Установите все зависимости командой и дождитесь их установки:

python -m pip install -r ./requirements.txt

Запустите проект:

python server.py

Полный запуск может занять до 30 минут.

Перейдите по ссылке http://127.0.0.1:5000/docs и ознакомьтесь с документацией полученного API

На Linux

Установите Python 3.11 из гайда

Установите JDK 1.8.0

sudo apt update
sudo apt-get install openjdk-8-jdk
java -version

Не забудьте также установить переменную окружения JAVA_HOME, указав путь к директории установки Java:

export JAVA_HOME=/path/to/java/home

Добавьте эту строку в файл .bashrc или .profile в вашем домашнем каталоге, чтобы она автоматически выполнялась при входе в систему.

Перезагрузите систему.

Скачайте файлы из репозитория командой:

git clone https://github.com/destraty/cfuv-excel-schedule-parser
P.S. Что такое GIT и как его установить

Перейдтие в папку с проектом:

cd cfuv-excel-schedule-parser

Установите все зависимости командой и дождитесь их установки:

python -m pip install -r ./requirements.txt

Запустите проект:

python server.py

Перейдите по ссылке http://127.0.0.1:5000/docs и ознакомьтесь с документацией полученного API

При необходимости создайте .service файл. Пример:

[Unit]
Description=Schedule Service
After=network.target

[Service]
Type=simple
User=ПОЛЬЗОВАТЕЛЬ
WorkingDirectory=/home/ПОЛЬЗОВАТЕЛЬ
ExecStart=/usr/bin/python3.11 ПУТЬ_К_ИСПОЛНЯЕМОМУ_ФАЙЛУ/server.py
Environment=PYTHONPATH=/home/ПОЛЬЗОВАТЕЛЬ/

[Install]
WantedBy=multi-user.target

Что может этот сервер?

Получить список всех групп http://127.0.0.1:5000/api/groups_list

На выходе получим что-то подобное:

[
  "ЛД-б-о-201_ЛД-4",
  "М-м-о-231(2)__1_курс",
  "М-м-о-231(1)__1_курс",
  "М-м-о-221__2_курс",
  "ФК-б-з-231_1_з_с_12.09",
  "ФК-б-з-231_1_з_с_29.01.2024",
  "ФК-б-з-231_1_з_с_10.06.2024",
  "Мат-м-о-231_курс_1м_МАТ",
  "МАТ-м-о-231_курс_1м_МАТ",
  "ПМ-м-о-221_курс_1м_ПМ",
  "ПМИ-м-о-221_курс_1м_ПМИ",
  "ПМИ-м-о-231_курс_1м_ПМИ"
]

Получить расписание на конкретную группу http://127.0.0.1:5000/api/?group=<группа>

Пример ответа:

[
  [
    [
      "1",
      "",
      "",
      "",
      "",
      ""
    ],
    [
      "2",
      "ЛК",
      "Музееведение",
      "Манаев А.Ю.",
      "1002 (ул. Ялтинская 20)",
      ""
    ],
    [
      "3",
      "ЛК",
      "Средневековый Крым",
      "Герцен А.Г.",
      "1006 (ул. Ялтинская 20)",
      ""
    ],
    [
      "4",
      "ЛК",
      "История славян",
      "Крыжко Л.А.",
      "1006 (ул. Ялтинская 20)",
      ""
    ],
    [
      "5",
      "ЛК",
      "История стран Азии и Африки в новейшее время",
      "Крыжко Е.В.",
      "1006 (ул. Ялтинская 20)",
      ""
    ],
    [
      "6",
      "",
      "",
      "",
      "",
      ""
    ],
    [
      "7",
      "",
      "",
      "",
      "",
      ""
    ]
  ],
  [
    [
      "1",
      "",
      "",
      "",
      "",
      ""
    ],
    [
      "2",
      "",
      "",
      "",
      "",
      ""
    ],
    [
      "3",
      "ЛК",
      "Методика преподавания истории и обществознания",
      "Кармазина Н.В.",
      "335 А (пр. Вернадского 4)",
      ""
    ],
    [
      "4",
      "ПЗ",
      "Физическая культура и спорт",
      "Юферев В.С.",
      "спорт зал ТА",
      "(пр. Вернасдкого 4)"
    ],
    [
      "5",
      "ЛК",
      "История России в новейшее время",
      "Романько О.В.",
      "908 (ул. Ялтинская 20)",
      ""
    ],
    [
      "6",
      "ЛК",
      "Новейшая история стран Европы и Америки",
      "Дорофеев Д.В.",
      "908 (ул. Ялтинская 20)",
      ""
    ],
    [
      "7",
      "",
      "",
      "",
      "",
      ""
    ]
  ]
]

Получить список преподавателей http://127.0.0.1:5000/api/teacher/teacher_list

Пример ответа:

[
  "Захаренко Г. С.",
  "Сирик В. Ф.",
  "Онищенко К. Н.",
  "Ваховская М. Ю.",
  "Побирченко В. В.",
  "Миколайчик М. В.",
  "Фокина Н. А.",
  "Ячменева В. М.",
  "Высочина М. В.",
  "Тимаев Р. А.",
  "Пахомова В. Г.",
  "Совик И. А.",
  "Сидоренко И. Я.",
  "Нагаева Е. И.",
]

Получить расписание конкретного преподавателя http://127.0.0.1:5000/api/teacher/?teacher=<преподаватель>

Пример ответа

{
  "Нечетная неделя": {
    "понедельник": {
      "1": "",
      "2": "ЛД-б-з-191 ЛД-5 зо_ЛК_Государственное управление лесами_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-б-з-191 ЛД-5 зо_ПЗ_Государственное управление лесами_АТА, п. Аграрное, 1/238_",
      "4": "",
      "5": "",
      "6": "",
      "7": ""
    },
    "вторник": {
      "1": "",
      "2": "ЛД-б-о-201 ЛД-4_ПЗ_Государственное управление лесами_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-м-о-231 с 12.02.24_ЛК_Рекреационное лесоводство и лесопользование_АТА, п. Аграрное, 1/238_",
      "4": "ЛД-м-о-231 с 12.02.24_ЛК_Методология научных исследований_АТА, п. Аграрное, 1/238_",
      "5": "",
      "6": "",
      "7": ""
    },
    "среда": {
      "1": "",
      "2": "ЛД-м-з-231 ЛД-1м_ЛК_Методология научных исследований_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-м-з-231 ЛД-1м_ЛК_Рекреационное лесоводство и лесопользование_АТА, п. Аграрное, 1/236_",
      "4": "ЛД-м-з-231 ЛД-1м_ПЗ_Методология научных исследований (ЗАЧЕТ)_АТА, п. Аграрное, 1/236_",
      "5": "",
      "6": "",
      "7": ""
    },
    "четверг": {
      "1": "",
      "2": "ЛД-б-з-191 ЛД-5 зо_ПЗ_Государственное управление лесами_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-м-о-231 с 12.02.24_ПЗ_Рекреационное лесоводство и лесопользование_АТА, п. Аграрное, 1/218_",
      "4": "ЛД-б-з-201 ЛД-4 зо_ЛК_Рекреационное лесоводство_АТА, п. Аграрное, 1/218_",
      "5": "",
      "6": "",
      "7": ""
    },
    "пятница": {
      "1": "",
      "2": "",
      "3": "",
      "4": "",
      "5": "",
      "6": "",
      "7": ""
    },
    "суббота": {
      "1": "",
      "2": "",
      "3": "",
      "4": "",
      "5": "",
      "6": "",
      "7": ""
    }
  },
  "Четная неделя": {
    "понедельник": {
      "1": "",
      "2": "ЛД-б-з-191 ЛД-5 зо_ЛК_Государственное управление лесами_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-б-з-191 ЛД-5 зо_К_Государственное управление лесами (КОНСУЛЬТАЦИЯ)_АТА, п. Аграрное, 1/238_",
      "4": "ЛД-м-з-231 ЛД-1м_ПЗ_Рекреационное лесоводство и лесопользование_АТА, п. Аграрное, 1/218_",
      "5": "",
      "6": "",
      "7": ""
    },
    "вторник": {
      "1": "",
      "2": "ЛД-б-з-191 ЛД-5 зо_Э_Государственное управление лесами (ЭКЗАМЕН)_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-м-з-231 ЛД-1м_К_Рекреационное лесоводство и лесопользование (К..._АТА, п. Аграрное, 1/238_",
      "4": "ЛД-м-з-231 ЛД-1м_ЛК_Рекреационное лесоводство и лесопользование_АТА, п. Аграрное, 1/236_",
      "5": "",
      "6": "",
      "7": ""
    },
    "среда": {
      "1": "",
      "2": "ЛД-б-о-201 ЛД-4_ЛК_Государственное управление лесами_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-б-о-201 ЛД-4_ПЗ_Рекреационное лесоводство_АТА, п. Аграрное, 1/238_",
      "4": "ЛД-м-з-231 ЛД-1м_Э_Рекреационное лесоводство и лесопользование (Э..._АТА, п. Аграрное, 1/218_",
      "5": "",
      "6": "",
      "7": ""
    },
    "четверг": {
      "1": "",
      "2": "ЛД-б-з-191 ЛД-5 зо_ПЗ_Государственное управление лесами_АТА, п. Аграрное, 1/238_",
      "3": "ЛД-м-о-231 с 12.02.24_ПЗ_Рекреационное лесоводство и лесопользование_АТА, п. Аграрное, 1/218_",
      "4": "ЛД-м-з-231 ЛД-1м_ПЗ_Рекреационное лесоводство и лесопользование_АТА, п. Аграрное, 1/238_",
      "5": "",
      "6": "",
      "7": ""
    },
    "пятница": {
      "1": "",
      "2": "",
      "3": "",
      "4": "",
      "5": "",
      "6": "",
      "7": ""
    },
    "суббота": {
      "1": "",
      "2": "",
      "3": "",
      "4": "",
      "5": "",
      "6": "",
      "7": ""
    }
  }
}

About

Парсер расписаний КФУ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages