Skip to content

This bot was developed to automate the process of accounting for finances and earnings statistics of certain teachers, commands are entered into the Telegram bot, and accounting and logging go to Google spreadsheets

License

Notifications You must be signed in to change notification settings

eCoolGe/senyabot

Repository files navigation

SenyaBot

Описание

Данный бот был написан для автоматизации процесса учета финансов и статистики заработка определённых преподавателей, команды вводятся 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

Вспомогательные материалы

  1. Генерация красивой Google-таблицы в этой статье
  2. В этой статье четко описано, как настроить сервисный аккаунт для взаимодействия с Google Spreadsheets и не только
  3. Как называет автор, книга для понимания взаимодействия python и библиотеки aiogram 2.0 находится по этой ссылке
  4. Новый взгляд автора предыдущей ссылки на обновленную версию библиотеки aiogram 3.0 находится по этой ссылке
  5. Еще один гайд по библиотеке aiogram по этой ссылке
  6. А эта ссылка на официальный GitHub вышеупомянутой библиотеки

Разворачиваем на хостинге

Для выполнения задачи был выбран этот хостинг, а процесс полного разворачивания можно изучить в видео

  1. Авторизуемся и создаем VDS (заплатить можно в течение дня, стоило 210 рублей/месяц)
  2. Делаем архив на компьютере и одним архивом переносим файлы на хост, распаковываем
  3. 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 — посмотреть статус, работает или нет
  • Подробности можно найти в этой статье

About

This bot was developed to automate the process of accounting for finances and earnings statistics of certain teachers, commands are entered into the Telegram bot, and accounting and logging go to Google spreadsheets

Topics

Resources

License

Stars

Watchers

Forks