Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

💱 NekoCurrencies

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):

  1. Frankfurter — основной источник (84 центральных банка, 200+ валют, без ключа)
  2. НБРБ — белорусские курсы (официальные BYN, без ключа)
  3. CurrencyFreaks — фоллбек для криптовалют (требует API-ключ)
  4. 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages