Skip to content
Moody-code365Public

About

A Telegram bot that detects mentions of dollars or tenge in chat and immediately transfers the amount

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

Multi-Currency USD Converter Bot

Telegram-бот на aiogram 3 для конвертации сумм в KZT, MDL, PLN, UAH, MXN, NGN и ETB в USD.

Что умеет

  • Распознаёт суммы вроде 500₸, 500тг (слитно тоже работает), 100 злотых, 1 500 грн, 200 pesos.
  • Поддерживает русские, украинские и английские названия валют, символы и ISO-коды.
  • Сохраняет порядок нескольких конвертаций в одном сообщении.
  • /rates (или кнопка "📊 Показать все курсы" под /start) показывает курс 1 USD к поддерживаемым валютам и источник.
  • Источники используются в порядке: официальный ЦБ → ExchangeRate-API → резервное значение.
  • Кэширует успешно полученные курсы на CACHE_TTL_SECONDS (по умолчанию раз в полдня), чтобы не дергать внешние API на каждое сообщение.
  • Если все внешние источники временно недоступны, использует последний успешный кэш.

Запуск

Docker Compose

  1. Создайте .env из .env.example.
  2. Заполните секреты.
  3. Запустите:
docker compose up -d --build

Логи:

docker compose logs -f tengebot

Остановка:

docker compose down

Локально

python -m venv .venv
# Linux/macOS
source .venv/bin/activate
# Windows PowerShell: .venv\\Scripts\\Activate.ps1
pip install -r requirements.txt
python main.py

Переменные окружения

  • BOT_TOKEN — токен Telegram-бота.
  • EXCHANGE_API_KEY — ключ ExchangeRate-API; можно оставить пустым, тогда используется публичный endpoint без ключа.
  • BANXICO_TOKEN — токен Banxico; если пустой/невалидный, MXN берётся из следующего источника.
  • CACHE_TTL_SECONDS — TTL кэша, по умолчанию 43200 секунд (12 часов, т.е. раз в полдня).
  • LOG_LEVEL — уровень логирования, по умолчанию INFO.

Важно про курсы

Результат не гарантирует биржевой курс в реальном времени. В ответе указывается источник: официальный ЦБ, ExchangeRate-API или резервное значение. Резервное значение предназначено только для graceful degradation.

About

A Telegram bot that detects mentions of dollars or tenge in chat and immediately transfers the amount

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages