У нас имеется группа ВК, где находятся все ребята нашего потока и со 2 семестра нас стало меньше, поэтому у нас начала творится абсолютная вакханалия с расписанием. Сейчас вроде бы всё устаканилось, но расписание, которое находится в мобильном приложении или на сайте недействительно и поэтому некоторые студенты всё равно путаются. Также с начала дистанционного обучения вакханалия начала творится и с дедлайнами. Особенно с историей и английским, когда реальные дедлайны просто теряются в каше домашних заданий других групп. Поэтому из всей этой кучи домашних заданий мы должны отфильтровывать наши (реальные). Бывали случаи, когда мы узнавали о существовании дедлайна за 5 минут до его конца. Поэтому наш бот должен облегчить головную боль студентов нашего потока.
Cоздать бота, который по нескольким запросам будет формировать текстовое сообщение с дедлайнами по предметам или расписанием на неделю, список Дней рождений, список фильмов и олимпиадных задачек.
- Python
- VK API
- Google Drive API
- Google Sheets API
- Сервер для хостинга бота (оперативка — 1 Gb, SSD — 20 Gb)
vk_bot.py
- в этой программе запускается бот и создаётся текущая сессия с пользователем, хранятся все данные для общения с пользователемbot_actions.py
- самописный модуль в котором хранятся методы для ответа бота. Например метод отправки сообщения пользователем или метод для отправки фото.deadlines_data.py
- самописный модуль для работы с Google таблицей.
- Клонируем репозиторий:
$ git clone https://github.com/endygamedev/vk_bot.git
- Заходим в каталог с репозиторием:
$ cd vk_bot
- Устанавливаем пакеты:
$ pip3 install -r requirements.txt
- Устанавливаем диспетчера служб:
$ apt-get install systemd
- Перейдём в каталог:
$ cd /etc/systemd/system
- Создадим новый файл
bot.service
:
[Unit]
Description=vk_bot
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/vk_bot
ExecStart=/usr/bin/python3 /root/vk_bot/vk_bot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
- Запускаем бота:
$ systemctl daemon-reload
$ systemctl enable bot
$ systemctl start bot
$ systemctl status bot
- Для остановки бота нужно использовать:
$ systemctl stop bot
Часть кода писала Влада
Проект по ЯиМП: 1 курс (2 семестр)
Последнее обновление: 1.10.2020
| 👨💻 endygamdev |