Skip to content
forked from v0ids/twitbot

Бот для твиттера - трансляция ваших голосов с golos.io

License

Notifications You must be signed in to change notification settings

tnam0rken/twitbot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Трансляция голосов из блокчейна https://golos.io/

Установка

Репозиторий на Github Старт на Glitch Тестовый твиттер

Подробное руководство к установке

В инструкции будет описание как для опытных пользователей, так и для тех, кто не обладает навыками установки приложений.

  • Для новичков я опишу как запустить бот в бесплатных сервисах glitch.com и heroku.com
  • Для тех, кто готов установить node на windows будет инструкция по запуску
  • Для владельцев VPS или linux будут команды

Начинаем

В первую очередь нам понадобится получить необходимые ключи для использования своего твиттера на странице https://apps.twitter.com/ golos vik

Создаем приложение, заполняем описание, а в настройках копируем себе ключи

golos vik golos vik

В конечном счете у вас будет 4 ключа, скопируйте их куда-то, а позднее мы надежно спрячем их как переменные среды wikipedia:environment variable.

Работает на nodejs, при желании можно развернуть и в браузере:

Новичкам: запуск в браузере благодаря glitch

Самый быстрый старт - это скопировать код скрипта и запустить его на Глич - это бесплатная платформа для онлайн тестирования nodejs приложений. В таком режиме бот будет работать тогда, когда вы активны на глич.

Входим на на https://glitch.com через FB или github, переходим на страницу нашего бота https://glitch.com/edit/#!/crack-toad

Жмем remix - это склонирует проект в ваш аккаунт.

golos vik

Переходим на файл с env и значком ключика, прописываем ключи полученные на твиттере (знак ключа указывает на то, что они не будут видны пользователям, можете не переживать)

golos vik

В файле gotweet.js редактируем настройки интервалов, логина и прочее Нажав на logs откроется консоль, где вы будете видеть ход работы приложения.

golos vik

Минусы глича - он не позволит вам постоянно держать приложение активным, у heroku c этим по-лучше, о нем ниже:

Новичкам: запуск на бесплатном сервере от Heroku

О хероку я писал ранее в посте о бесплатных сервисах https://golos.io/x/@vik/free, для легкого старта вам понадобится залогиниться на https://www.heroku.com c помощью github и форкнуть себе проект https://github.com/vikxx/twitbot

После чего в настройках деплоя вы указываете путь к форку в рамках своего аккаунта и можете запустить на серверах heroku приложение прямо с гитхаб. Имея возможность редактировать файлы на github и запускать приложение на heroku

golos vik

Разумеется указывать секретные ключи твиттера публично на github мы не будем, а укажем их в настройках heroku как переменные среды

golos vik

На бесплатном плане heroku позволяет работать приложению 18 часов в сутки, но засыпать оно будет каждые 30 минут, т.е. небходимо периодически его будить активностью :) Если у вас есть постоянно работающий пк с выходом в сеть - вам удобнее будет запустить приложение на node js локально. Об этом далее:

Энтузиастам на WINDOWS + node js

Вы можете запускать бот на своем пк предварительно установив node js Скачайте git и распакуйте в желаемую папку на ПК

Запустите консоль, например powershell

golos vik

Перейдите в папку с проектом и установите так же twitter и golos пакеты:

cd / путь к папке с распакованным приложением

npm install twitter
npm install golos

Теперь вам нужно безопасно задать переменные среды, выполните код ниже заменив xxxx ключами в соответствии с ключами полученными на https://apps.twitter.com/

$env:TWITTER_CONSUMER_KEY = "xxxxxxxxxxxxxxxxxxxxxxx"
$env:TWITTER_CONSUMER_SECRET = "xxxxxxxxxxxxxxxxxxx"
$env:TWITTER_ACCESS_TOKEN_KEY = "xxxxxxxxxxxxxxxxxxx"
$env:TWITTER_ACCESS_TOKEN_SECRET = "xxxxxxxxxxxxxxx"

Теперь можете произвести запуск приложения, находясь в папке с репозиторием запустите команду:

npm start

Вы увидите статус работы бота в консоли

В настройках бота есть возможность указать временной отступ offset (например публиковать старые голоса или только новые) интервал работы interval, а именно интервал проверки ваших голосов и интервал публикации в твитов twitinterval. Естественно вы можете указать чужой логин u и тогда твиты будут содержать информацию о голосовании пользователя, которого вы указали.

  // Настройки аккаунта и интервалов работы
  // Логин голосующего
u='vik',          
  
  // Учитывать голоса за последние N минут. Например 1440 это сутки.
offset   = 30,  

  // Проверять новые голоса каждые 10 секунд       
interval = 10*k,    

  // Интервал публикации постов в твиттер в миллисекундах
  // Не ставьте слишком короткий интервал - 
  // это поможет избежать ошибок и придаст естественный вид твитам. 
twitinterval = 3000,

В файле gotweet.js вы найдете шаблон сообщения, который можно отредактировать под себя. (При желании добавить рэндомные фразы)

var tweet =u+' проголосовал за пост в #блокчейн #голос https://golos.io/x/@'+d[i].link;

Просто расположите в строке переменные с ссылкой и именем как вам удобно.

Так же в файле gotweet.js есть строка

 if (time > t && res[x].percent/100 > 24)

Число 24 - это порог силы голоса в % после которого ваш апвоут будет опубликован на твиттере. Т.е. если вы проголосуете на 24% или ниже - публикации не будет. Вы можете изменить значение. Например поднять до 99 и тогда публиковаться будут только голоса в полную силу.

Владельцам VPS ubuntu, centos и др.

Просто установите зависимости, клонируйте скрипт с githib и пропишите ключи, который предоставил твиттер, а после команда npm start.

npm install twitter
npm install golos
git clone [email protected]:vikxx/twitbot.git

export TWITTER_CONSUMER_KEY = 
export TWITTER_CONSUMER_SECRET = 
export TWITTER_ACCESS_TOKEN_KEY = 
export TWITTER_ACCESS_TOKEN_SECRET = 

npm start

About

Бот для твиттера - трансляция ваших голосов с golos.io

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%