Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
ropox
7 лет назад

Javascript и 100500 ботов для голоса

Продолжаю разбираться с javascript-ом. Ужасно непонятный язык программирования, но очень интересно. Сколько на нем уже написано. А так как я себя считаю мало мальским программистом, то разобраться обязательно нужно. Хотя бы основные понятия.

Вроде бы я разобрался с require и как это работает. Могу создавать простенькие классы, но не совсем допонимаю с template.

Боты

В качестве практических занятий я мучаю golos API. Уже написал одного голосовального бота, которого слизал с бота @vik.

Я писал несколько статей про Node-RED, на котором я написал простенького бота для Telegram-а повторяющего бота от @on0tole, извещающего об движении в моем аккаунте на голосе. Поэтому для упражнения с javascript-ом я решил написать такого же бота на javascript.

Бота я уже зачал, начал его писать как NPM модуль для Node.js. Исходники лежат здесь. Цель написать персонального мультибота. Пока внутри все бессистемно, с едва заметными зачатками архитектуры.

Пока что бот перебирает цепочку блоков и историю аккаунта пользователя.

Сообщает в чат telegram

  • об отданных голосах за пост.
  • о кураторских и авторских вознаграждениях
  • подписывается на топики, в которых я комментировал или за которые голосовал и сообщает о новых комментариях этим темам. Удобно, если хочется быть в курсе развития дискуссии.

В планах

  • добавить побольше оповещений
  • добавить группировку оповещений
  • встроить голосовального бота, в разных ипостасях
  • добавить расширяемого бота отслеживающего переводы и выполняющего определенные действия (за оплату). Для монетизации наверное было бы неплохо.

Уставовка

Node.js

Для бота требуется Node.js 7 и более. Про установку можно почитать здесь

Собственно сводится к исполнению этих команд

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

Git

Потребуется git для клонирования бота.

sudo apt-get install git

Клонирование репозитория

Что бы скачать исходники выполните

git clone https://github.com/gropox/golosbot.git

Теперь можно зайти в новую папку golosbot.

Зависимости. Прямо в папке с ботом выполните следующие команды.

npm install nedb
npm install steem
npm install telegram-bot-api-c

Должна быть создана папка с модулями "node_modules"

Теперь можно попробовать запустить бота командой

node .

остановить можно Ctrl-C

После первого запуска бот создает конфигурационный файл .golosbot.js в домашней папке пользователя которым бот запускался. Собственно это json. Надо поменять пользователя, ввести токен для telegram бота и id чата. И можно запускать бота.

Бот Telegramm

Как создавать своего telegram бота можно поискать в интернете. Если коротко, то

  • находите BotFather в мессенджере
  • командой /newbot запускаете создание нового бота
  • задаете имя бота и пользователя. К примеру coolbot и coolbot.

В ответ BotFather вышлет вам token такого вида

311111111:AAFM111111111SU-9Xj6Ai-7fPxXxXxX110

Сохраните его в конфигурацонном файле golosbot-а

В telegram найдите вашего свежеиспеченного бота и начните чат с ним. После чего, в корневой папке запустите

node getChatId

И в течении 10 секунд напишите в чате несколько сообщений. В консоли скрипт должен будет выдать chat_id. Можно остановить скрипт Ctrl-C

Сохраните chat_id в конфигурационном файле. Бот должен быть рабочим.

Я запустил его на своем снятом самом дешевом сервачке на digitalocean. В пику потребляет до 11% CPU, это если его запустить со старого блока. А так его даже top не показывает.

Пока что запускаю так, в ручном режиме

nohup node . >/dev/null &

Спасибо @vadbars за отладку инструкции :)

Тут пара примеров извещений

За меня проголосовали

Получено кураторское вознаграждение

Прокомментировали мой пост

Прокомментировали пост, к которому я тоже оставлял комментарий

Получено авторское вознаграждение. Правда только сейчас заметил, что линк на пост не работает. Надо будет поправить.

4
172.094 GOLOS
На Golos с February 2017
Комментарии (15)
Сортировать по:
Сначала старые