Этот простой Telegram-бот создан для удобного совместного учета расходов прямо в групповом чате. Бот использует базу данных SQLite для надежного хранения данных. Проект предназначен для развертывания на облачном хостинге (например, PythonAnywhere) для обеспечения работы 24/7.
- Надежное хранение: Все данные хранятся в файле базы данных SQLite (
bot_data.db
). - Учет общих расходов: Запись трат, которые делятся поровну.
- Учет личных долгов: Запись долга одного участника другому.
- Удаление записей: Удаление любой записи через ответ на сообщение.
- Автоматический расчет баланса: Бот сам рассчитывает, кто кому и сколько должен.
- Проверка статуса: Команда
/ping
позволяет убедиться, что бот онлайн.
Добавьте бота в группу, сделайте его администратором (с правом закреплять сообщения) и отправьте команду:
/start_tracking
- Общий расход:
сумма описание
(например,1500 продукты
) - Личный долг: Ответьте (
Reply
) на сообщение друга и напишите:/owe сумма описание
Ответьте (Reply
) на сообщение с расходом/долгом и напишите:
/delete
Этот гайд описывает развертывание на бесплатном аккаунте PythonAnywhere.
Откройте Bash консоль на PythonAnywhere и выполните:
# Клонируем репозиторий
git clone https://github.com/filimonovadm/telegram-expense-bot.git
cd telegram-expense-bot
# Создаем и активируем виртуальное окружение
mkvirtualenv --python=/usr/bin/python3.10 expense-bot-venv
# Устанавливаем зависимости
pip install -r requirements.txt
- В разделе Files на PythonAnywhere, в папке проекта, создайте файл
.env
. - Добавьте в него переменные:
ID чатов можно узнать, добавив бота в чат и написав там команду
TELEGRAM_BOT_TOKEN="ВАШ_СУПЕР_СЕКРЕТНЫЙ_ТОКЕН" CHAT_ID_PROD="ID вашего основного чата" # CHAT_ID_TEST является необязательным, если вы не планируете запускать тестовый режим CHAT_ID_TEST="ID вашего тестового чата"
/getchatid
.
-
Первый запуск (вручную):
- Перейдите в раздел Consoles и откройте Bash консоль.
- Запустите бота в фоновом режиме, используя полный путь к Python в вашем virtualenv (замените
YourUsername
):
/home/YourUsername/.virtualenvs/expense-bot-venv/bin/python /home/YourUsername/telegram-expense-bot/main.py --env prod &
-
Настройка авто-перезапуска:
- Перейдите в раздел Tasks.
- Создайте новую Scheduled task (задачу по расписанию).
- Установите время (например,
09:00 UTC
). - В поле для команды вставьте тот же путь, что и выше (но без
&
в конце):
/home/YourUsername/.virtualenvs/expense-bot-venv/bin/python /home/YourUsername/telegram-expense-bot/main.py --env prod
- Сохраните задачу. Она будет перезапускать вашего бота каждый день, если он вдруг остановится.