Как я писал телеграм бота для майнинг пула Часть #1

Попробую написать серию статей по одной программке на Python, а точнее по одному телеграм боту, которого довелось написать. На текущий момент (10.03.2018) это последний проект, который делал на питоне. Содержание примерно будет таким:

  1. Получение ТЗ и первые мысли по программе;
  2. Набросок основных функций;
  3. Набросок бота ;
  4. Коддинг основных функций и бота;
  5. Перенос бота на сервер и запуск.

После очередного моего видео на youtube, ко мне постучался человек в телеграм с вопросом, смогу ли я написать бота-оповещалку для их пула. На что я дал конечно положительный ответ, но для начала попросил посмотреть что из себя представляет сам пул, а то вдруг там какие заморочки есть и не смогу закодить бота. Глянув пул (не буду его светить, чтобы не было рекламы) выяснилось, что сам пул простенький и самое главное, на пуле настроен API.


Что вообще хотелось получить от бота в итоге: пользователь регистрируется у бота, вводит свой кошелек, выбирает язык, на каком будут выводиться сообщения, и при запросе типа «/info» будет выводиться актуальная информация с пула. Содержание не превышает того, что можно дернуть из API. Могу сказать, что туда входит:

  • не подтвержденный баланс
  • не выплаченный баланс
  • сколько выплачено за 24 часа
  • сколько всего намайнено
  • сколько ригов сейчас трудится
  • информация по каждому ригу — имя, хэшрейт, сложность.

Раз нужно запоминать какому юзеру телеграма принадлежит адрес кошелька, то целесообразнее всего завести сразу базу данных. Вроде все понятно по базе, ничего сложного быть не может. Одна таблица, пара значений. Вопрос возникает на том моменте, что нам нужно как то менять язык интерфейса. Тут конечно лучше всего завести еще одну колонку в базе, чтобы сохранять переменную, отвечающую за язык бота. Программа будет проверять ее и подсовывать сообщения на русском или английском языках.

Задача ясна:

  • регистрируем нового бота в телеграм
  • создаем базу данных со структурой: id, chat_id, wallet, lang
  • делаем три файла: файл конфигурации; файл с основным классом, в котором будут все функции с нашей базой данных и работой с API; файл с самим ботом, который будет постоянно запущен
  • тестируем все на локальной машине
  • переносим на сервер, ставим нужные модули, демоны, настраиваем и радуемся жизни.

Есть такой интересный вопрос — как данные будут добавляться в базу?

Нам нужно, чтобы пользователь передал свой кошелек в сообщении. Еще как то нужно выбрать язык. Изначально я подумал, что можно сделать типа такой команды — «/add wallet lang», где wallet это кошелек, lang это язык ( например ru или en). Я уже делал «бот-команды», которые состоят из трех частей. Первая часть это сама команда /add, вторая соответственно это wallet и третья lang. Сделать можно, но нужно писать несколько функций, чтобы строка правильно разбивалась, чтобы все данные правильно проверить и в случае не соответствия одного из них, нужно оповестить пользователя. В общем много кода, сложность использования. Ведь человеку нужно объяснить как правильно составить запрос боту, чтобы он все понял и принял данные. Для начала все таки лучше сделать просто добавление кошелька, а потом уже прикрутить смену языка. Так будет проще для всех, да и городить сразу огород не хочется.

Думаю пора приступать к составлению «меню» программы, наброскам основных функций программы.

 

Отправить ответ

avatar
  Subscribe  
Уведомить