Ежедневная рассылка готового расписания (соединение основного расписания с заменами, которые появляются каждый день на сайте), а также отслеживание изменений в заменах в течение дня с последующим оповещением пользователей
Телеграм:
- Ограничить количество подписок до 10 на каждый профиль
- Добавить возможность принудительного обновления расписания
- Добавить возможность остановки и запуска процедуры обновления расписания
Вконтакте:
- Увеличить количество подписок и добавить персональную настройку по карточкам групп/преподавателей, как в тг
- Реализовать возможность работы бота в беседе (+ добавить настройку закрепа для бесед)
- Придумать, как можно упростить листание списка групп/преподавателей
- Добавить возможность просмотра расписания за конкретный день (как в тг)
Общее:
- Триггер на появление основного расписания (чтобы бот самостоятельно его спарсил)
- Автоматический еженедельный парсинг основного расписания
- Добавить возможность принудительного обновления расписания
- Добавить функцию остановки и запуска процедуры обновления расписания
- Автоматическое создание бэкапов
- Улучшение алгоритма обработки названий предметов (поиск похожих названий и их объединение)
- Написание парсера логов и добавление функции, собирающей статистику (отдельно для каждой соц сети)
- Создание анти-спам системы, которая будет блокировать спамеров
На перспективу (наброски):
- Создать систему ведомостей в облаке для старост, бот будет автоматически создавать ведомости для групп
- Сделать возможность оплаты ботом своего же хостинга, при этом, он должен выпрашивать донаты у юзеров
Другие предложения:
- Расписание экзаменов и консультаций (где их брать???)
- Новости, спортивные и другие мероприятия (откуда брать инфу???)
Для установки бота на сервер, настройки и дальнейшего администрирования советую использовать PuTTY. А также WinSCP для удобного взаимодействия с файлами проекта.
На телефоне у меня стоят JuiceSSH и PostgreSQL Viewer
sudo adduser ypec
sudo apt update
sudo apt upgrade
sudo apt install python3.8
sudo apt install python3-pip
sudo apt update
sudo apt install postgresql postgresql-contrib
Настраиваем локаль через пакет, выбирая ru_RU.utf8:
dpkg-reconfigure locales
apt-get install language-pack-ru
Изменяем локаль кластера базы данных (12 заменяем на вашу версию postgres)
pg_lsclusters
pg_dropcluster --stop 12 main
pg_createcluster --locale ru_RU.utf8 --start 12 main
Создаём пользователя, создаём базу данных и добавляем расширение pg_trgm
sudo -i -u postgres
psql
CREATE USER ypec WITH PASSWORD '123456789';
CREATE DATABASE ypec_bot;
\q
exit
Клонируем репозиторий
cd /home/ypec
git clone https://github.com/nik20z/ypec_bot.git
cd ypec_bot
Устанавливаем необходимые библиотеки
pip3 install -r requirements.txt
Вносим правки в файл /bot/misc/env.py
- TG_TOKEN - получаем через Bot Father
- VK_TOKEN - получаем в настройках группы (ставим все галочки при получении токена)
- VK_TOKEN_VERSION - версия токена
- VK_BOT_ID - id бота/группы в вк
- SETTINGS - настройки доступа к БД
Добавляем свой id в vkontakte в файл /bot/vk_module/config.py (если, не знаете, где найти: тык и тык)
- GOD_ID_VK - главный админ
- ADMINS_VK - список всех админов
Добавляем свой id в telegram в файл /bot/tg_module/config.py (можно узнать через бота)
- GOD_ID_TG - главный админ
- ADMINS_TG - список всех админов
Перед созданием службы, перезапускающей скрипт, необходимо в папку /etc/systemd/system поместить файл ypec_bot.service
apt-get install systemd
systemctl daemon-reload
systemctl enable ypec_bot
systemctl start ypec_bot
systemctl status ypec_bot
При необходимости меняем часовой пояс
timedatectl
timedatectl list-timezones
sudo timedatectl set-timezone Europe/Moscow
Если возникают проблемы с установкой python
sudo apt-get install libpq-dev
sudo apt-get install python-dev
- Парсим основное расписание по команде /get_main_timetable ALL
- При необходимости редачим файл dpo.csv и заносим данные о ДПО в БД по команде /update_dpo
- По желанию редачим колонку department в таблице group_: 0 - ФПО, 1 - ХТО, 2 - ТО
- По желанию редачим колоку gender в таблице teacher: 0 - женский пол, 1 - мужской
Команда | Описание |
---|---|
/delete_user |
удалить себя из БД |
/get_main_timetable {args} |
спарсить основное расписание по названию группы/ФИО преподавателя или ALL для всех |
/update_timetable |
спарсить замены и составить по ним готовое расписание (в разработке) |
/update_dpo |
занести инфу о ДПО в БД |
/update_balance |
обновить баланс Qiwi |
/info_log |
потоковый log |
/mailing_test |
протестировать рассылку |
/mailing {args} |
рассылка сообщений для всех пользователей |
/set_future_updates |
обновить информацию о будущих обновлениях/багах |
/stat |
получить статистику |
/config |
посмотреть содержимое конфига |
/update_config |
отредачить конфиг (в разработке) |
/set_headman_user {args} |
добавить старосту: tg/vk group__name user_id |
/delete_headman_user {args} |
удалить старосту: tg/vk group__name |
/set_form_master_user {args} |
добавить класс. рук.: tg/vk teacher_name user_id |
/delete_form_master_user {args} |
удалить класс. рук.: tg/vk teacher_name |
/restart_bot |
перезапустить бота |