Telegram бот позволяющий быстро получить актуальные курсы валют от Центрального банка России.
- Простота использования
- Встроенный парсер данных которые предоставляет сайт cbr-xml-daily.ru
- Парсер можно с лёгкостью заменить на другой
- Бот сам обновляет данные по будням в 1 час ночи по МСК
-
Клонируйте репозиторий
$ git clone https://github.com/al-revenko/cancrinBot
-
Перейдите в папку проекта
$ cd cancrinBot
-
Установите зависимости
$ npm install
-
Откройте файл .env.example и установите значения переменных
BOT_TOKEN='ваш токен'
- Токен вашего бота который вы получили от BotFather.BOT_NAME='имя вашего бота'
- Имя вашего ботаDB_NAME='имя базы данных'
- Имя вашей sqlite БДПример:
BOT_TOKEN='0000000000:XXXX0xxx0XXx00xXXx0xxx0XXXxxx00Xxxxxx' BOT_NAME='CancrinBot' DB_NAME='exchange.db'
-
Сохраните файл с переменными как новый файл с именем .env
-
Запустите бота
npm run start
/start
- Бот приветствует пользователя и выводит кнопку, показывающую меню доступных валют. (Как при вызове /curency
)
/curency
- Меню кнопок доступных валют. У каждой кнопки имя это код предоставляемой валюты. Например, AUD, EUR или USD.
Каждая кнопка выводит упрощённую информацию об валюте, например:
Австралийский доллар - 61.16 руб
/list
- Список всех доступных валют - коды валют и их наименования. Например:
- AUD - Австралийский доллар
- AZN - Азербайджанский манат
- GBP - Фунт стерлингов Соединенного королевства
- ...
/help
- Выводит руководство об использовании функционала бота.
/help [код валюты]
- Выводит полную информацию о валюте. Например: /help aud
выведет:
Австралийский доллар
- Буквенный код: AUD
- Цифровой код: 036
- Номинал: 1
- Обменный курс: 61.1622
[код валюты]
- Выводит упрощённую информацию о валюте. Например aud
выведет:
Австралийский доллар - 61.16 руб
Если вы хотите заменить модуль парсера на другой, ваш service класс должен имплементировать интерфейс ParserServiceI, а именно ваш класс должен реализовать метод getData() который должен возвращать тип ExchangeDataI. Все необходимые интерфейсы находятся по пути: ./src/common/interfaces/
Если вы хотите чтобы бот обновлял данные в другое время, то установить время и дни вы можете в файле ./src/cbr-exchange/cbr-exchange.service.ts в декораторе @Cron метода initExchangeData() используя для это специальный синтаксис Cron или enum CronExpression.
Telegram: @lokixio