Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Расписание занятий, информация об аудиториях #30

Open
llirrikk opened this issue Jun 15, 2022 · 12 comments
Labels
enhancement New feature or request

Comments

@llirrikk
Copy link
Member

llirrikk commented Jun 15, 2022

  • узнать расписание на неделю/день
  • узнать расписание преподавателя
  • найти свободные аудитории
  • узнать, что в ней происходит в аудитории по её номеру
  • подписаться на уведомления о расписании следующего дня/следующей недели
  • в идеале возможность генерировать красивый .png/.pdf документ с расписанием на все недели исходя из получаемых данных

Что-то вроде @Schedule_MIET_bot:

Список команд:
/now (Сейчас) - Пара сейчас
/today (Сегодня) - Расписание на сегодня
/tomorrow (Завтра) - Расписание на завтра
<День недели> - Расписание на конкретный день в рамках текущей недели
<День недели> <Тип недели> - Расписание на конкретный день указанием типа недели в формате: 1ч, 1з, 2ч, 2з
/teacher_all - Поиск преподавателя
/weekschedule - Расписание на неделю
/weekschedule_short - Расписание на неделю в кратком виде
/week - Текущая неделя
/group - Показать группу
/auth - Авторизация
/auth_teacher - Авторизация для преподавателя
/deauth - Деавторизация
/deauth_teacher - Деавторизация для преподавателя
/subscription - Статус подписки
/subscribe - Подписаться на уведомления
/desubscribe - Отписаться от уведомлений
=======================
Для получения информации о расписании без авторизации запросы:
Сейчас <Группа>
Сегодня <Группа>
Завтра <Группа>
<День недели> <Группа>
<День недели> <Тип недели> <Группа>
Обратная связь: [email protected]
@Schedule_MIET
@llirrikk llirrikk added the enhancement New feature or request label Jun 15, 2022
@llirrikk
Copy link
Member Author

Ура, спасибо МИЭТу за https://miet.ru/schedule/data, где можно POST запросом получить данные в JSON без скрапинга

@llirrikk llirrikk changed the title Расписание занятий, свободные аудитории Расписание занятий, информация об аудиториях Jun 15, 2022
@marplyn
Copy link
Contributor

marplyn commented Jun 15, 2022

  • найти свободные аудитории

Бесполезно. Таблица, которую выгружают на сайт миэта, не имеет изначально свободных аудиторий (поэтому всем отказывают в переносе пар, по таблицам в студофисе все забито), свободными они становятся из-за человеческого фактора, как и потом эти найденные "свободные" становятся "занятыми".

  • узнать расписание на неделю/день
  • узнать расписание преподавателя

Реализовано уже аж в двух местах:

  • боте Schedule_MIET_bot
  • распиаренном приложении Расписание Sked
    Рализовано и расписание группы, и расписание каждого преподавателя, и функция уведомлений и задач. И всё это в графическом интерфейсе, что намного удобнее для пользователя, чем бот. Я смотрела расписание последний год только в приложении, сообщения от бота просто неудобны в представлении и восприятии.
  • подписаться на уведомления о расписании следующего дня/следующей недели

Реализовано в Schedule_MIET_bot. Функция удобна только в первый месяц обучения, и то, уведомления часто достают.

Считаю, что не имеет смысла реализовывать эту функцию, потому что:

  • она реализована дважды в разном исполнении: другой бот и приложение
  • она ухудшит юзер экспериенс, так как возникнет нагромождение функций бота
  • нет запроса от пользователей.

Если возникнет запрос от пользователей - можно будет вернуться к обсуждению. Пока идем конкретно по пути "бота для отслеживания изменений в ОРИОКС".

@mmev
Copy link
Contributor

mmev commented Jun 20, 2022

@marplyn Мне кажется, что используя Gaming Platform, можно тянуть HTML5 странички и сделать их достаточно удобными для использования. А что касается дублирования функционала в ботах - зачем использовать N источников информации, если её можно собрать в одном месте сделав аля all in one?

@marplyn
Copy link
Contributor

marplyn commented Jul 1, 2022

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

  • "all in one" предполагает пересмотр концепции проекта: нужен ли нам, а главное пользователям, монстр-агрегатор? Необходимо собрать обратную связь
  • Маленькая аудитория => мало выхлопа, нужна мотивация вообще сделать нововведение, сначала растём, потом делаем
  • Самое главное - проблемы в реализации базового функционала, например, огромнейшая задержка у оповещений

Как закроем основные проблемы и сделаем рефакторинг, вернемся к этому вопросу

@Whom-m0rty
Copy link

Хороший повод вернуться к разработке.

image
image

@Whom-m0rty
Copy link

Как я и говорил в #38 готов взяться за работу.

Проблемы те же, подумаем как их решить?

@marplyn
Copy link
Contributor

marplyn commented Sep 2, 2022

Тогда удачно сдохли те варианты 👍🏻

Какие можешь предложить варианты реализации? На мой взгляд, webview или gaming platform (как предлагали выше) было бы более удобно, чем куча команд, как в старом боте с расписанием. Это не будет мешать основному потоку оповещений, и взаимодействовать пользователям будет приятнее и интуитивно понятнее. Можем попробовать сделать подобное?

@Whom-m0rty
Copy link

Whom-m0rty commented Sep 2, 2022

Js я не знаю, можно генерировать картинки.

Но если раскумариться, можно попробовать написать webApp на js.

@llirrikk
Copy link
Member Author

llirrikk commented Sep 2, 2022

Webview и gaming platform не нативны, поэтому возможна неплавная работа. К тому же эти технологии позволяют немного деанонить пользователей, а у нас политика такая, что нужно стараться собирать как можно меньше информации, потому что пользователь и так оставляет свой пароль (#26). Можно использовать inline-кнопочки или даже aiogram dialog. А выводить каким-нибудь красивым сообщением.
Screenshot_2022-09-02-16-09-29-423_org telegram messenger

Прошлые варианты сдохли возможно ненадолго. Может они ещё не успели обновить данные, а может МИЭТ подсунул палку в колеса, изменив респонс какой-то.

  1. У нас в группе числитель и два расписания для знаменателя.

У всех по умолчанию два числителя и два знаменателя. У тебя видимо два числителя равны между собой

  1. Как понимать когда большая перемена?

Никак, это зависит от договоренности студентов с преподом

  1. Откуда брать актуальное расписание?

На https://miet.ru/schedule актуальное, но студенты могут попросить препода перенести пару, тогда на этом сайте это не учтется. Возможно, надо продумать логику изменения расписания от учеников, чтобы они могли перемещать пары.

Если я буду хранить расписание в json, а бот будет его оттуда забирать, хороший ли это подход?

Да, но можно и в БД хранить. После рефакторинга #22 появится ORM.

Планирую написать таску для celery crontab для актуализации расписания.

Про celery есть задача #31, так что проблем нет. Но обновляет ли студофис это расписание? Можно раз в неделю проверять это, конечно.

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

@Whom-m0rty
Copy link

Тогда жду рефакторинг

@marplyn
Copy link
Contributor

marplyn commented Sep 6, 2022

Вчера бот с расписанием ожил. Тогда наша задача обдумать и потенциально сделать более удобное решение

Screenshot 2022-09-06 at 20 28 27

@llirrikk
Copy link
Member Author

@Whom-m0rty, рефакторинг #22 готов

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

4 participants