Skip to content

EPoY74/SecondWhithVK

Repository files navigation

SecondWhithVK — Telegram‑бот для расчёта процентов

Telegram‑бот для быстрых процентных расчётов от заданной суммы (комиссия/кэшбэк/доля) и расчёта дохода/штрафа по годовой ставке в пересчёте на день / неделю / 30 дней.

Изначально бот делался под внутренние рабочие задачи в Тинькофф (ныне Т‑Банк).
Репозиторий полезен как небольшой учебный/портфолио‑проект: Telegram Bot + конфиг через .env + логирование + тесты.

Возможности

  • Расчёт суммы процентов от заданной базы.
  • Пересчёт годовой процентной ставки в:
    • доход (или штраф) за 1 день
    • за 7 дней
    • за 30 дней
  • Диалоговый сценарий в Telegram (/start, ввод суммы, затем ввод процента).
  • Токен бота не хранится в коде, подтягивается из окружения (.env).

Быстрый старт

Требования

  • Python (3.12+).
  • pip
  • Telegram Bot Token (через BotFather)

Установка

# 1) Клонировать репозиторий
git clone <repo-url>
cd <repo-dir>

# 2) Виртуальное окружение
python -m venv .venv
# Linux/macOS:
source .venv/bin/activate
# Windows:
# .venv\Scripts\activate

# 3) Зависимости
pip install -r requirements.txt

Настройка .env

В корне есть файл .env example — скопируй его в .env и заполни токен.

cp ".env example" .env

Запуск

python Percents_Per_Day_Bank.py

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

  1. Открой бота в Telegram:
    http://t.me/Percents_Per_Day_bot
  2. Нажми /start
  3. Введи сумму (целым числом)
  4. Введи годовую процентную ставку (целым числом)
  5. Получи расчёт за 1 / 7 / 30 дней

Тесты

В разработке

pytest -q

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

.
├── lib/
│   ├── __init__.py
│   ├── exceptions.py
│   ├── project_log.py
│   └── secrets.py
├── tests/
│   ├── conftest.py
│   └── test_bot_flow.py
├── Percents_Per_Day_Bank.py
├── requirements.txt
├── pyproject.toml
├── setup.cfg
├── README.md
├── Makefile
└── .env example

Безопасность и ротация токена

Я фиксирую изменения, связанные с безопасностью:

  • 2025-09-31 — Security rotation:
    Issued a new bot token and revoked the previous one.

Практика безопасности:

  • токены не хранятся в коде;
  • старые токены своевременно отзывались;
  • доступы пересматриваются по мере развития проекта.

Заметки по текущей реализации (по делу)

  • Сейчас ввод проверяется через .isdigit(), поэтому дробные значения (например 1000.50) не пройдут.
  • В коде используются глобальные переменные (Deposit_Amount и т.д.) — для масштабирования лучше хранить состояние на пользователя (например, через FSM/Storage).
  • Ошибки при отсутствии токена сейчас заканчиваются raise без явного типа исключения — лучше поднять свой Exception из lib/exceptions.py.

Roadmap (идеи улучшений)

  • Поддержка дробных сумм/ставок (decimal.Decimal), локали и разделителя.
  • Более строгая валидация ввода (диапазоны, отрицательные значения).
  • FSM (состояния диалога) вместо глобальных переменных.
  • Dockerfile / deploy (Webhook/long polling).
  • CI: линтеры + тесты (GitHub Actions).

Автор

Eugenii Petrov — epoy74@gmail.com

About

Telegram-бот на Python для быстрых процентных расчётов: сумма + годовая ставка → доход за 1/7/30 дней. Токен хранится в .env, есть логирование и тесты. Python Telegram bot (telebot) that calculates daily/weekly/30-day interest from an annual rate. Env-based token, logging, and tests included

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors