Telegram-бот для автоматического распознавания валютных сумм в тексте и конвертации через актуальные курсы.
- Распознавание валют в тексте:
100 долларов,50€,1000 рублей,0.5 биткоин - Математические выражения:
(20 + 5) * 4 доллара→$100 - 150+ фиатных валют, 25+ криптовалют
- 3 режима обработки: упрощённый, стандартный, расширенный (W2N/M2N)
- Настраиваемые целевые валюты — выберите во что конвертировать
- Инлайн-режим — используйте в любом чате через @username
- Два языка: русский и английский
# 1. Клонировать
git clone https://github.com/aneek0/NekoCurrencies.git
cd NekoCurrencies
# 2. Настроить окружение
cp .env.example .env
# Заполнить .env: BOT_TOKEN, API-ключи
# 3. Установить зависимости
uv sync
# 4. Запустить
uv run python bot.py| Переменная | Обязательная | Описание |
|---|---|---|
BOT_TOKEN |
✅ | Токен Telegram-бота (@BotFather) |
CURRENCY_FREAKS_API_KEY |
❌ | API-ключ CurrencyFreaks (фоллбек для крипты) |
EXCHANGE_RATE_API_KEY |
❌ | API-ключ ExchangeRate-API (резерв) |
ADMIN_IDS |
❌ | ID администраторов через запятую |
Приоритет (при api_source=auto):
- Frankfurter — основной источник (84 центральных банка, 200+ валют, без ключа)
- НБРБ — белорусские курсы (официальные BYN, без ключа)
- CurrencyFreaks — фоллбек для криптовалют (требует API-ключ)
- ExchangeRate-API — резервный источник (требует API-ключ)
Пользователь может выбрать конкретный источник в /settings.
/start— главное меню/help— справка/settings— настройки (режим, валюты, API, язык, внешний вид)/version— версия
bot.py — хендлеры, роутинг, запуск
currency_service.py — получение курсов, конвертация, парсинг текста
database.py — SQLite-хранилище пользователей
math_parser.py — вычисление математических выражений
keyboards.py — inline-клавиатуры
localization.py — тексты (ru/en)
config.py — константы, алиасы валют, API-ключи
tests/ — тесты (pytest)
uv run pytest tests/ -v- Python 3.13+
- aiogram 3.x — Telegram Bot API
- httpx — HTTP-клиент
- sqlite3 — база данных (WAL mode)
- uv — менеджер зависимостей
MIT