Telegram Salary Bot

Telegram-бот для просмотра и расчёта зарплат, использующий Google Sheets для хранения данных.

Требования

Для работы бота необходимы:

  1. Python 3.11+
  2. Docker (если ты хочешь запускать бота в контейнере)
  3. Google API credentials для работы с Google Sheets
  4. Токен Telegram-бота от BotFather

Установка и настройка

1. Получение токена Telegram-бота

  1. Открой Telegram и найди пользователя BotFather.
  2. Создай нового бота с помощью команды /newbot.
  3. Получи токен для своего бота, который нужно будет указать в .env файле.

2. Настройка Google API

Чтобы бот мог взаимодействовать с Google Sheets, нужно настроить доступ к API:

  1. Перейди на Google Cloud Console.
  2. Создай новый проект (если у тебя его нет).
  3. Перейди в раздел APIs & ServicesCredentials.
  4. Нажми Create CredentialsService Account.
  5. Создай Service Account и получи файл с ключами в формате .json.
  6. В разделе Google Sheets открой таблицу, с которой будет работать бот, и добавь email из созданного сервисного аккаунта в качестве редактора.

3. Конфигурация .env файла

Создай файл .env в корневом каталоге проекта и добавь следующие параметры:

TELEGRAM_BOT_TOKEN=your_telegram_bot_token
GOOGLE_CREDENTIALS=path_to_your_google_credentials.json

Пример:

TELEGRAM_BOT_TOKEN=123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
GOOGLE_CREDENTIALS=/app/google_credentials.json

Убедись, что файл с сервисным ключом Google находится по указанному пути.

Запуск бота

1. Локальный запуск

Для запуска локально без Docker:

  1. Установи зависимости:
pip install -r requirements.txt
  1. Запусти бота:
python main.py

2. Запуск с использованием Docker

Чтобы запустить бота с использованием Docker:

  1. Убедись, что файл requirements.txt содержит все необходимые зависимости.
  2. Выполни команду для сборки и запуска Docker-контейнера:
bash deploy.sh

Это создаст Docker-образ и запустит бота в контейнере.

3. Проверка состояния контейнера

Ты можешь проверить статус запущенного контейнера с помощью команды:

docker ps

Для остановки контейнера используй:

docker stop telegram-bot

Использование

  1. После успешного запуска бота, добавь его в Telegram.
  2. Введи команду для начала работы (например, /start), и бот предложит пройти авторизацию для просмотра зарплаты.
  3. Авторизация требует ввести номер табеля и последние цифры паспорта.
  4. После авторизации бот покажет зарплату за выбранный месяц.

Структура проекта

  • main.py — основной файл, запускающий бота.
  • settings.py — содержит настройки и конфигурации для бота.
  • auth.py — модуль, отвечающий за авторизацию пользователей.
  • salary.py — модуль для расчета зарплат на основе данных из Google Sheets.
  • google_services.py — содержит функции для работы с Google API.
  • sheet_operations.py — логика взаимодействия с Google Sheets.
  • keyboards.py — реализует клавиатуры Telegram для взаимодействия с пользователями.

Поддержка

Если возникли вопросы или проблемы, свяжитесь с автором по email: salidjanm.ov@gmail.com.