Bot Bro[wser] - не требующий сервера, навыков, голосующий и следящий бот куратор в вашем браузере.


Если посмотреть на текущие посты по разработке ботов - все они упираются в наличие собственного сервера или в установку node js, python и другого ПО. Но если говорить о широкой аудитории - не все могут развернуть собственный сервер. Вернее, использовать сервер могут не только лишь все, мало кто может это делать.

UPD: Для чего нужны боты-кураторы? Для поддержки академии голоса:

Как поддержать авторов Академии Голоса: Следовать за голосоами @academy с помощью моего бота. Контакт по почте ontofractal на protonmail.com
Следовать за голосами аккаунта @academy с помощью ваших собственных ботов
Вручную голосовать за посты из отчетов Академии

Благодаря библиотеке golos.js и урокам @ontofractal мы сделаем* собственного бота - куратора, а его особенностью будет - работа в любом браузере (Десктоп или мобильный)
Бот доступен по ссылке https://golos.rubtc.info/bot.html - поскольку он полностью выполняется на стороне вашего браузера - вы можете просто скопировать исходный код страницы и использовать как вам вздумается.

Алгоритм

Вы указываете время в минутах и логин куратора за которым нужно повторить голоса.
Бот возвращается в прошлое на указанное количество минут, анализирует все голоса за этот период и начинает их повторять по одному раз в 3 секунды (ограничение блокчейн). Когда бот доходит до настоящего времени - он ждет новых голосов от выбранного куратора и в случае если замечает новый голос - повторяет его. Сила голоса бота в % соответствует силе куратора-цели.

Опции бота

  • Выбор того, кто будет голосовать. Аккаунт + постинг ключ.
  • Выбор цели - пользователя за кем нужно повторить голоса
  • Выбор точки отсчета в минутах - позволяет указать время с которого повторить голоса
  • Выбор условия силы голоса (повторять голос только если цель проголосовала с такой-то силой в %)

NB на заметку:

  • Учитывая интервал генерации блоков блокчейна - бот голосует с соответствующим интервалом в 3 секунды.
  • Более подробный отчет о работе бота вы увидите в консоли своего браузера.
  • Если вы ранее уже голосовали за чей то пост, бот не повлияет на него. Но если куратор за которым вы следуете проголосовал с другой силой - бот изменит ваш голос на эту силу.

Можно использовать в тестовом режиме - для этого не указывайте постинг ключ, просто укажите куратора-цель и количество минут, которые нужно проанализировать.

Сделай сам :)

мы сделаем* собственного бота

Мои посты могут ошибочно восприниматься как презентация каких-то готовых решений, но я всего лишь делюсь с вами черновиками. Так как тот еще лентяй - для меня вверх авторского успеха - если мой черновик кому-то пригодится. А для чистовиков я слишком прокрастинатор :)

Кому не терпится - можете использовать скрипт ниже. А кто готов подождать - завтра в привычной манере очень подробно опишу как все работает


var votepower = 0;

function broBot() {
    var account = document.getElementById("account").value,
        k = document.getElementById("k").value,
        username = document.getElementById("username").value,
        minutes = document.getElementById("minutes").value,
        votepower = document.getElementById("votepower").value,
        time, starttime, t = 1000,
        period = minutes * 60,
        utime, start;

    function followVote() {
        var count = true;
        steem.api.getDynamicGlobalProperties(function(err, result) {
            starttime = Date.parse(result.time) / t;
        });
        steem.api.getAccountVotes(username, function(err, result) {
            var a = [];
            for (var i = 0; i < result.length; i++) {
                var arr 
                    start  - period,
                    ap 
                    author  ap.indexOf('/')),
                    permlink 
                    power 
                    time 
                utime  / t;
                if (utime > start) {
                    a.push({
                        author: author,
                        permlink: permlink,
                        power: power,
                        utime: utime,
                        start: start
                    });
                }
            }
            var summ = a.length;

            var i = 0;
            var goVote = setInterval(function() {
                if (count && summ > 0 && a[i].power / 100 >= votepower) {
         steem.broadcast.vote(k, account, a[i].author, a[i].permlink, a[i].power, function(err) {
                        console.log(err);
                    });
                    i++;
                    itemShow();
                }
                if (i == summ) {
                    count = false;
                    period = 4;
                    clearInterval(goVote);
                    followVote();
                }

            }, 3000);
        });
    }
    followVote();

    function itemShow() {
        setTimeout(function() {
            document.getElementById("item").classList.add('anim');
        }, 200);
    }
    document.getElementById("nicedata").classList.add('bg');
    document.getElementById("options").classList.add('nobg');
}

Прошлые посты по теме:


Comments 32


Очень интересно. То есть основная цель бота - копировать чужие действия, но какой в этом смысл? Разве такой бот не уменьшает деценрализацию и "равномерность" сети, просто лишь повторяя за неким куратором? В конце концов, не станет ли такой скрипт "боком" проекту, если кто-то вроде бизнес молодости, обладая (или сгенерировав) большим количеством аккаунтов, заставит эти "мёртвые души" вести себя по-человечески и набирать авторитет, следуя за "случайными" кураторами? Хмм. Я конечно понимаю, что особенно противопоставить в открытых системах такому поведению нечего (если только не банить за повторяемость действий от аккаунта к аккаунту), но какая реальная причина и цель создания данного бота? Заранее спасибо за ответ =)

16.02.2017 20:47
0

но какая реальная причина и цель создания данного бота?

Вам следует прочесть этот анонс:
/ru--akademiya/@academy/zapusk-akademii-golosa

Цели Академии
резко увеличить количество авторов образовательного контента
создать на Голосе ценный вечнозеленый контент
задать планку качества контента на платформе

Как поддержать авторов Академии Голоса
Следовать за голосоами @academy с помощью моего бота. Контакт по почте ontofractal на protonmail.com
Следовать за голосами аккаунта @academy с помощью ваших собственных ботов
Вручную голосовать за посты из отчетов Академии

Существует аккаунт академии, за которым официально рекомендуется следовать.
Академия апвотит полезные посты, вы поддерживаете авторов полезных постов, которые помимо прочего дают хороший + к seo для голоса. Один хороший чей-то урок может в перспективе привлечь много тысяч пользователей из поисковиков на голос. Авторов такого контента имеет смысл поддержать.

16.02.2017 20:55
0

Понял, спасибо за вдумчивый ответ!

16.02.2017 21:01
0

О! Я пошел смотреть - не голосует ли академия голоса за меня)) ..а где это лучше всего посмотреть?

17.02.2017 04:43
0

посты из отчетов Академии

17.02.2017 05:40
0

С такими ботами скоро начнется тенденция следования за успешными кураторами армии зомби ботов. И в итоге в основном от этих кураторов-лидеров будет зависеть успех той или иной статьи.

16.02.2017 20:48
0

Один и тот же инструмент в разных руках приводит к разным результатам :) Использовать боты как в вашем примере-опасении - не профитабельно владельцам ботов.
А вот использовать их с умом, для мотивирования выгодного для всех контента - принесет пользу всему сообществу, в особенности его филантропам :)

16.02.2017 21:01
0

для мотивирования выгодного для всех контента

а кто в состоянии сказать, какой контент выгоден, да еще для всех?))

17.02.2017 00:51
0

А вы читали пост? :)

кто в состоянии сказать

Очевидно - нишевые кураторы вроде @academy

какой контент выгоден

С появлением таких кураторов в других нишах появится возможность вам самому выбрать тематику и авторов которых вы захотите поддержать.

Разумеется, нет ничего лучше, чем голосовать самостоятельно, анализируя контент, но делать это каждый день не всегда есть возможность.

17.02.2017 05:31
0

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

С появлением таких кураторов в других нишах появится возможность вам самому выбрать тематику и авторов которых вы захотите поддержать.

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

17.02.2017 14:30
0

@park.bom (отвечу отдельно, так как лимит на вложенность комментариев)

Я как-то не очень уверен, что ботонизация живого общения

Давайте мыслить образно и представим пример:

Есть некий автор, которой может монетизировать свой контент на других ресурсах, скажем по 100$ за пост.
Размещая тот же контент на голосе - он сможет монетизировать его на 20$. Едва-ли он будет думать о миграции на голос при условии такого профита :) Но если поощрить автора, удержать как ценную единицу - его инвестиции в виде контента будут продолжаться и принесут дивиденды в виде трафика, среди которого, в числе прочих могут быть и крупные инвесторы в токен.

Мне кажется вы преувеличиваете роль простого инструмента в руках живого пользователя, ведь за ботом стоит живой человек. С тем же успехом, можно назвать "ботонизацией" общение по скайпу вместо почтовой переписки :)

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

17.02.2017 14:47
0

2 @vik
вашу мысль понял, но мне все видится несколько иначе:

Но если поощрить автора, удержать как ценную единицу

проблема в том, что его нельзя поощрить, не отобрав у другого. А так как вы ставите бота на поддержку этого автора, вы автоматически отказываетесь от дальнейшей объективной оценки этого автора и сравнении его с другими. И так будут делать все, так как это проще и профитней. В итоге вскоре вся сеть будет закольцована на одних и тех же авторов и все серьезные держатели СГ разобраны.

Вновь приходящие в систему будут сталкиваться со своей полной ненужностью, вне зависимости от контента. Попытка прикупить СГ вряд-ли будет сделана, если чел ознакомиться с системой квадратичности голосования и что на свои 10к рублей влива он получит несколько копеек апвота. В итоге все, кто заходит снаружи будут выходить с негативным мнением о системе, примерно как о Стиме - сделано программистами для программистов, для остальных жутко неудобно, заработать какие-то крохи удается 1 из 100, в общем бяка и лохотрон. И это мнение пойдет в массы.

Общая кормушка будет быстро таять по причине отсутствия спроса на токены, это усилит межвидовую конкуренцию, "старички" вписавшиеся в систему будут забирать уже все, и лихорадочно выводить... по крайней мере до уровня IСO по каппе. Ну а там останется только на прокорм программистам, пишущих ботов для сбора кликов для прокорма)))

в числе прочих могут быть и крупные инвесторы в токен.

я думаю все кто могли придти, уже пришли на ICO. Чтобы инвесторы пришли, нужно для этого создать благоприятный инвест климат. Unreal

нет, бот не Скайп, при общении в Скайпе бот не заменяет человека. Людям нужны люди. Врядли кто-то заплатит, чтобы его слушал и с ним общался, бот)))

18.02.2017 00:15
0

Вот и меня этот момент беспокоит немного =)

16.02.2017 21:01
0

ой ты волшебник! всяческих плюх тебе. будем тестить)

16.02.2017 21:00
0

Вернее, использовать сервер могут не только лишь все, мало кто может это делать.

Это пять=))

16.02.2017 21:16
0

Так бы сказал один известный мэр Киева

16.02.2017 21:42
0

Поэтому порадовал)

16.02.2017 21:43
0

Прикольная игрушка!) Поиграюсь)))

16.02.2017 21:29
0

по поездатости наши паровозы никто не перепаравозит)

16.02.2017 22:25
0

Спасибо! Но где нибудь можно найти инструкцию запуска своего бота с нуля. для чайников. Цель - что бы люди могли, например, заказать нужный скрипт у программиста, чтобы тот им тыкнул какие циферки менять, и они сами работали. Хочется что бы можно было зайти с аккаунта и выполнить простейший скрипт. Где искать? инструкции ontofractal начинаются уже со сложного.

16.02.2017 22:43
0

Описанный скрипт не привязан к аккаунту - его можно использовать для любого пользователя
Для этого перейдите сюда
https://golos.rubtc.info/bot.html
И скопируйте исходный код страницы себе на пк. Далее откройте страницу в браузере и пользуйтесь.)

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

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

Пока можете почитать это
/ru--golos/@vik/podklyuchaemsya-k-node-wss-ws-golos-io-cherez-bloknot-podrobnyi-razbor-javascript-obshenie-s-api-golos-io-bonus-dannye-akkauntov

16.02.2017 22:53
0

Всё итак так доступно, а если закрыть страницу, он будет работать? И можно ли его настроить, чтоб следовал за несколькими аккаунтами?

17.02.2017 13:25
0

а если закрыть страницу, он будет работать?

Нет. В этом и суть работы без сервера.
Что бы он работал всегда - нужно обеспечить бота постоянной средой обитания.
Например в облаке. Можно арендовать VPS за пару $ в месяц и запустить там node js c ботом, который предлагает @ontofractal

Или кто-то может предложить хостить вашего бота на своем сервере бесплатно. Но в этом случае, вы должны доверить человеку свой постинг ключ.

17.02.2017 14:29
0

Супер - крайне нужная вещь - еще бы бота который мог автоматически голосовать за определенных людей через Х минут после того как они что-то написали =)

16.02.2017 23:12
0

Приветствую Вас на платформе Голос!

Я бот @tummy и меня создали для того, чтобы приветствовать новичков и
помогать им подписаться на @tummy на просторах Голоса.

Если вы ещё мало знаете о платформе Голос, то рекомендую ознакомиться со
следующими материалами:

много текста про то, как сделать буквы большими

Тут про как ничего не делая купить Ламборджини
Обязательно прочтите, а то оштрафуют

Для чайников

вам не заработать столько

Еще много текста

Как купить ламборджини не вставая с дивана

Если у вас есть конкретные вопросы, то можете задать их в комментарии к @tummy и я Вам обязательно отвечу. Также буду признателен, если расскажете, откуда Вы узнали о платформе Голос (ответьте быстро):

  1. увидел в @tummy
  2. увидел в ВКонтакте
  3. из поиска Google
  4. показал друг
  5. я из Бобруйска
  6. ..
  7. другое (поставьте мне лайк)
17.02.2017 01:04
0

Бот крадёт личность другого бота. Это так круто!

17.02.2017 03:30
0

Не это ли авторы анкоров? :)

17.02.2017 05:37
0

О, симуляция знакомая, на процессинге такую делал :)

17.02.2017 04:21
0

А где храниться постинг-ключ?

17.02.2017 06:20
0

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

17.02.2017 06:26
0

Благодарю за ответ)

17.02.2017 06:31
0

Не очень большой специалист во всяких хтмлях, но вроде бы не хватает чего-то типа:
meta charset="utf-8"
Косяк

17.02.2017 10:18
0

Исправили кодировку)
Cохраняя страницу себе так же конвертируйте ее в utf-8 если будут "кракозябры"

17.02.2017 10:25
0

А где взять постинг-ключ?

17.02.2017 15:25
0

Кошелек > Разрешения > показать:

То что на скрине, не есть ключ. Когда вы нажмете на показать, строка изменится. Ключ начинается с 5...

Данный ключ и ваш логин образует связку, с помощью которой можно голосовать, размещать посты и комментарии. Если у вас украдут ключ - особо навредить не смогут, так как за финансовые операции отвечают другие ключи. Кроме того, постинг ключ можно периодически менять, если вы его много где светите.

Не забывайте, что постинг ключ - это не пароль. Пароль от голоса вообще не используйте. Нигде) Просто храните его оффлайн.

17.02.2017 15:33
0

А логины без собаки указывать?

17.02.2017 15:39
0

Да.

Логины без собаки.
Минуты в цифрах
В поле, где указываете минимальную силу голоса - просто цифры без символа %

17.02.2017 15:41
0

И чего? Какая-то шлеш-анимация крутиться и все.
Как понять процесс идет или нет?

17.02.2017 15:50
0

@redhat Нажмите правой кнопкой мыши на странице и выберите "Посмотреть исходный код" - вам откроется консоль, в ней будет история ошибок, если таковые имеются.

Что бы проверить все ли у вас работает в тестовом режиме - введите только ник цели и поставьте большее количество прошедших минут, например несколько тысяч. Тогда вы увидите голоса с интервалом в 3 секунды.

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

Если будет указан ваш логин и постинг-ключ - режим будет не тестовым и голоса будут отправляться в соответствии с появляющимися строками.

17.02.2017 16:26
0

@vik А несколько копий на разных страницах и пользователей можно запустить?

17.02.2017 17:03
0

Все упирается в ограничение блокчейна - вы можете голосовать на голосе с одного акка 1 раз в 3 секунды. Многопоточность возможна только с отсрочкой действия.
Таким образом, если вы откроете много страниц с ботом, но на каждой голосовать будет один и тот же аккаунт - то фактически он будет голосовать чаще, чем 1 раз в 3 секунды. И не все голоса будут засчитаны.

Однако, если каждая страница бота - это отдельный аккаунт - все будет работать корректно.

На практике, если вы запустите бота в нескольких окнах, но везде с одним аккаунтом и не с "отсрочкой в прошлое", а следить за голосами с текущего момента, то бот будет проверять новые голоса на всех страницах каждые 3 секунды и повторять голос за целями. Он будет пропускать голос только в случаях, если цели голосовали одновременно.

17.02.2017 17:14
0

@vik, Поздравляю!,
Ваш пост был упомянут в моем хит-параде в следующих категориях:

  • Голосов - 3 позицию - 139 Голосов
  • комментарии - 5 позицию - 41 комментарии
  • Выплаты - 1 позицию - 3580,5290 GESTS
18.02.2017 07:57
0

@vik Бот не работает. в системе отмечается, что лайкается. а по факту на платформе не видно.

19.02.2017 22:03
0

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

20.02.2017 06:47
0

@vik хорошо, проверю.

20.02.2017 07:48
0

Uncaught TypeError: Cannot read property 'length' of undefined - будет значить, что вы неправильно указали логин куратора, за которым хотите следить.

B.AssertionError {name: "AssertionError", actual... Начало такой ошибки говорит о том, что вы неправильно ввели постинг ключ.

Error: 10 assert_exception: Assert Exception itr->vote_percent != o.weight: Changing your vote requires actually changing you vote - это самая распространенная и самая понятная, в ней все и описано в принципе: Вы не можете проголосовать за пост если голосовали за него с такой же силой раньше. То есть вы пытаетесь повторить уже сделанное.

Ну а когда все ок, в консоли будет объект:

Object expiration : "2017-02-20T07:52:49" 
extensions : Array[0] operations : Array[1] 0 : Array[2] 0 : 
"vote" 1 : Object 
author : "rassen" 
permlink : "stat-programmistom-chast-18-osnovy-javascript-dlya-absolyutnykh-novichkov" 
voter : "vik" 
weight : 10000

Скрины (Нажмите что бы увеличить)

Вначале идет ошибка, говороящая, что вы уже голосовали ранее за этот пост, а ниже успешный голос.
conso.png

Общая картина:
Снимок.png

20.02.2017 08:13
0

@vik ого..спасибо за столь развернутный ответ. Мне даже стыдно, что я нуб ввел не приватный ключ( тот который не с 5 начинается). сегодня уже нет сил проверять, на днях попробую запустить)
Еще раз спасибо, за подробный ответ и сорри, что причина крылась во мне видимо))

20.02.2017 22:11
0

Добрый день, подскажите бот выдаёт ошибку
Uncaught ReferenceError: broBot is not defined
at HTMLButtonElement.onclick (BotBro666.html:44)
Как быть?

28.02.2017 13:09
0