Данный бот был написан для автоматизации процесса учета финансов и статистики заработка определённых преподавателей, команды вводятся Telegram-боту, а учет и логирование идет в Google-таблицы
Отдельная благодарность всем тем лицам, ссылки на статьи/видео которых можно обнаружить в данном README.md
/start
— начальная команда любого бота в Telegram, выводит приветственное сообщение, либо изначальную информацию об отсутствии участника диалога в белом списке/help
— команда, которая выводит список доступных команд/income
или/income ДД.ММ.ГГГГ
— приход за текущий/указанный день/salary
или/salary ДД.ММ.ГГГГ
— зарплату за текущий/указанный день- строки типа:
- родитель приход зарплата преподаватель комментарий_c_любым_количеством_пробелов
- родитель приход(зарплата) преподаватель комментарий_c_любым_количеством_пробелов
- В правильном варианте, необходимо устанавливать все это в виртуальной среде, чтобы конфликты не возникли сейчас или в будущем, но...
python
,exit()
(проверялось на версии 3.10.7)pip install -r requirements.txt
cp .env.example .env
- Дополнительную конфигурацию можно найти в файле
config.py
python spreadsheets_create.py
(запускается один раз для создания ботом таблицы)- Вставляем данные в нужные места и также не забываем про файл сервисных ключей типа
senyabot-012345678901.json
, его тоже помещаем в корень проекта python bot.py
- Генерация красивой Google-таблицы в этой статье
- В этой статье четко описано, как настроить сервисный аккаунт для взаимодействия с Google Spreadsheets и не только
- Как называет автор, книга для понимания взаимодействия python и библиотеки aiogram 2.0 находится по этой ссылке
- Новый взгляд автора предыдущей ссылки на обновленную версию библиотеки aiogram 3.0 находится по этой ссылке
- Еще один гайд по библиотеке aiogram по этой ссылке
- А эта ссылка на официальный GitHub вышеупомянутой библиотеки
Для выполнения задачи был выбран этот хостинг, а процесс полного разворачивания можно изучить в видео
- Авторизуемся и создаем VDS (заплатить можно в течение дня, стоило 210 рублей/месяц)
- Делаем архив на компьютере и одним архивом переносим файлы на хост, распаковываем
nohup python3 /home/SenyaBot/bot.py &
запускаем файл,&
нужна чтобы после закрытия терминала всё не накрылось, но при перезапуске сервера или критической ошибке все умрёт
Подробности разворачивания на хостинге
Для того чтобы бот сам запускался после перезапуска сервера или при падении скрипта, необходимо:
- Создать скрипт его запуска в одной из папок (на сколько я понял, в зависимости от версии Ubuntu)
/usr/lib/systemd/system
/etc/init.d
- Название скрипта
senyabot.service
, рабочая директория/home/SenyaBot
, путь до главного файла бота/home/SenyaBot/bot.py
— это то, что точно необходимо будет изменить
#!/bin/bash
### BEGIN INIT INFO
# Provides: haltusbpower
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: SenyaBot
### END INIT INFO
[Unit]
Description=SenyaBot
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/SenyaBot
ExecStart=nohup python3 /home/SenyaBot/bot.py &
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
— Перезагружаем список всех служб после каждого редактирования этого файлаsudo systemctl enable senyabot.service
— включаем службу, чтобы не отключалась при перезапуске- Так же у нас есть другой список доступных команд:
sudo systemctl start senyabot.service
— запустить службуsudo systemctl stop senyabot.service
— остановить службуsudo systemctl status senyabot.service
— посмотреть статус, работает или нет
- Подробности можно найти в этой статье