Если посмотреть на текущие посты по разработке ботов - все они упираются в наличие собственного сервера или в установку node js, python и другого ПО. Но если говорить о широкой аудитории - не все могут развернуть собственный сервер. Вернее, использовать сервер могут не только лишь все, мало кто может это делать.
UPD: Для чего нужны боты-кураторы? Для поддержки академии голоса:
Как поддержать авторов Академии Голоса: Следовать за голосоами @academy с помощью моего бота. Контакт по почте ontofractal на protonmail.com
Следовать за голосами аккаунта @academy с помощью ваших собственных ботов
Вручную голосовать за посты из отчетов Академии
Благодаря библиотеке golos.js и урокам @ontofractal мы сделаем* собственного бота - куратора, а его особенностью будет - работа в любом браузере (Десктоп или мобильный)
Бот доступен по ссылке https://golos.rubtc.info/bot.html - поскольку он полностью выполняется на стороне вашего браузера - вы можете просто скопировать исходный код страницы и использовать как вам вздумается.
Алгоритм
Вы указываете время в минутах и логин куратора за которым нужно повторить голоса.
Бот возвращается в прошлое на указанное количество минут, анализирует все голоса за этот период и начинает их повторять по одному раз в 3 секунды (ограничение блокчейн). Когда бот доходит до настоящего времени - он ждет новых голосов от выбранного куратора и в случае если замечает новый голос - повторяет его. Сила голоса бота в % соответствует силе куратора-цели.
Опции бота
- Выбор того, кто будет голосовать. Аккаунт + постинг ключ.
- Выбор цели - пользователя за кем нужно повторить голоса
- Выбор точки отсчета в минутах - позволяет указать время с которого повторить голоса
- Выбор условия силы голоса (повторять голос только если цель проголосовала с такой-то силой в %)
NB на заметку:
- Учитывая интервал генерации блоков блокчейна - бот голосует с соответствующим интервалом в 3 секунды.
- Более подробный отчет о работе бота вы увидите в консоли своего браузера.
- Если вы ранее уже голосовали за чей то пост, бот не повлияет на него. Но если куратор за которым вы следуете проголосовал с другой силой - бот изменит ваш голос на эту силу.
Можно использовать в тестовом режиме - для этого не указывайте постинг ключ, просто укажите куратора-цель и количество минут, которые нужно проанализировать.
Сделай сам :)
мы сделаем* собственного бота
Мои посты могут ошибочно восприниматься как презентация каких-то готовых решений, но я всего лишь делюсь с вами черновиками. Так как тот еще лентяй - для меня вверх авторского успеха - если мой черновик кому-то пригодится. А для чистовиков я слишком прокрастинатор :)
Кому не терпится - можете использовать скрипт ниже. А кто готов подождать - завтра в привычной манере очень подробно опишу как все работает
<script>
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 = result,
start = starttime - period,
ap = arr[i].authorperm,
author = ap.substring(0, ap.indexOf('/')),
permlink = ap.substring(ap.indexOf('/')).substring(1),
power = arr[i].percent,
time = arr[i].time;
utime = Date.parse(time) / 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');
}
</script>
Прошлые посты по теме:
Очень интересно. То есть основная цель бота - копировать чужие действия, но какой в этом смысл? Разве такой бот не уменьшает деценрализацию и "равномерность" сети, просто лишь повторяя за неким куратором? В конце концов, не станет ли такой скрипт "боком" проекту, если кто-то вроде бизнес молодости, обладая (или сгенерировав) большим количеством аккаунтов, заставит эти "мёртвые души" вести себя по-человечески и набирать авторитет, следуя за "случайными" кураторами? Хмм. Я конечно понимаю, что особенно противопоставить в открытых системах такому поведению нечего (если только не банить за повторяемость действий от аккаунта к аккаунту), но какая реальная причина и цель создания данного бота? Заранее спасибо за ответ =)
Вам следует прочесть этот анонс:
https://golos.id/ru--akademiya/@academy/zapusk-akademii-golosa
Существует аккаунт академии, за которым официально рекомендуется следовать.
Академия апвотит полезные посты, вы поддерживаете авторов полезных постов, которые помимо прочего дают хороший + к seo для голоса. Один хороший чей-то урок может в перспективе привлечь много тысяч пользователей из поисковиков на голос. Авторов такого контента имеет смысл поддержать.
О! Я пошел смотреть - не голосует ли академия голоса за меня)) ..а где это лучше всего посмотреть?
Понял, спасибо за вдумчивый ответ!
Супер - крайне нужная вещь - еще бы бота который мог автоматически голосовать за определенных людей через Х минут после того как они что-то написали =)
Добрый день, подскажите бот выдаёт ошибку
Uncaught ReferenceError: broBot is not defined
at HTMLButtonElement.onclick (BotBro666.html:44)
Как быть?
@vik Бот не работает. в системе отмечается, что лайкается. а по факту на платформе не видно.
Посмотрите в консоли браузера - там будут указаны причины. Возможно указан какой-то из параметров не верно.
@vik хорошо, проверю.
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
- это самая распространенная и самая понятная, в ней все и описано в принципе: Вы не можете проголосовать за пост если голосовали за него с такой же силой раньше. То есть вы пытаетесь повторить уже сделанное.Ну а когда все ок, в консоли будет объект:
Скрины (Нажмите что бы увеличить)
Вначале идет ошибка, говороящая, что вы уже голосовали ранее за этот пост, а ниже успешный голос.
Общая картина:
@vik ого..спасибо за столь развернутный ответ. Мне даже стыдно, что я нуб ввел не приватный ключ( тот который не с 5 начинается). сегодня уже нет сил проверять, на днях попробую запустить)
Еще раз спасибо, за подробный ответ и сорри, что причина крылась во мне видимо))
@vik, Поздравляю!,
Ваш пост был упомянут в моем хит-параде в следующих категориях:
А где взять постинг-ключ?
Кошелек > Разрешения > показать:
То что на скрине, не есть ключ. Когда вы нажмете на показать, строка изменится. Ключ начинается с 5...
Данный ключ и ваш логин образует связку, с помощью которой можно голосовать, размещать посты и комментарии. Если у вас украдут ключ - особо навредить не смогут, так как за финансовые операции отвечают другие ключи. Кроме того, постинг ключ можно периодически менять, если вы его много где светите.
Не забывайте, что постинг ключ - это не пароль. Пароль от голоса вообще не используйте. Нигде) Просто храните его оффлайн.
@vik А несколько копий на разных страницах и пользователей можно запустить?
Все упирается в ограничение блокчейна - вы можете голосовать на голосе с одного акка 1 раз в 3 секунды. Многопоточность возможна только с отсрочкой действия.
Таким образом, если вы откроете много страниц с ботом, но на каждой голосовать будет один и тот же аккаунт - то фактически он будет голосовать чаще, чем 1 раз в 3 секунды. И не все голоса будут засчитаны.
Однако, если каждая страница бота - это отдельный аккаунт - все будет работать корректно.
На практике, если вы запустите бота в нескольких окнах, но везде с одним аккаунтом и не с "отсрочкой в прошлое", а следить за голосами с текущего момента, то бот будет проверять новые голоса на всех страницах каждые 3 секунды и повторять голос за целями. Он будет пропускать голос только в случаях, если цели голосовали одновременно.
А логины без собаки указывать?
Да.
Логины без собаки.
Минуты в цифрах
В поле, где указываете минимальную силу голоса - просто цифры без символа %
@redhat Нажмите правой кнопкой мыши на странице и выберите "Посмотреть исходный код" - вам откроется консоль, в ней будет история ошибок, если таковые имеются.
Что бы проверить все ли у вас работает в тестовом режиме - введите только ник цели и поставьте большее количество прошедших минут, например несколько тысяч. Тогда вы увидите голоса с интервалом в 3 секунды.
Если за указанный период у цели не было голосов - то бот ничего и не сделает, так как нечего повторять. В этом случае он будет ждать новых голосов.
Если будет указан ваш логин и постинг-ключ - режим будет не тестовым и голоса будут отправляться в соответствии с появляющимися строками.
И чего? Какая-то шлеш-анимация крутиться и все.
Как понять процесс идет или нет?
Не очень большой специалист во всяких хтмлях, но вроде бы не хватает чего-то типа:
meta charset="utf-8"
Исправили кодировку)
Cохраняя страницу себе так же конвертируйте ее в utf-8 если будут "кракозябры"
А где храниться постинг-ключ?
В переменной
k
.Если использовать как локальную html страницу - то на голос он будет передаваться в ноду через wss с шифрованием. Однако, если бот на чьих-то серверах, в теории владелец сервера может ключ украсть. Потому я и призываю использовать не опубликованную демо страничку, а копировать и создавать локально свою.
Благодарю за ответ)
О, симуляция знакомая, на процессинге такую делал :)
Не это ли авторы анкоров? :)
Бот крадёт личность другого бота. Это так круто!
Спасибо! Но где нибудь можно найти инструкцию запуска своего бота с нуля. для чайников. Цель - что бы люди могли, например, заказать нужный скрипт у программиста, чтобы тот им тыкнул какие циферки менять, и они сами работали. Хочется что бы можно было зайти с аккаунта и выполнить простейший скрипт. Где искать? инструкции ontofractal начинаются уже со сложного.
Описанный скрипт не привязан к аккаунту - его можно использовать для любого пользователя
Для этого перейдите сюда
https://golos.rubtc.info/bot.html
И скопируйте исходный код страницы себе на пк. Далее откройте страницу в браузере и пользуйтесь.)
В принципе можно использовать его и по ссылке, но передавать постинг ключ на чужой сайт небезопасно.
Завтра я попробую подробно описать весь код простым языком.
Пока можете почитать это
https://golos.id/ru--golos/@vik/podklyuchaemsya-k-node-wss-ws-golos-io-cherez-bloknot-podrobnyi-razbor-javascript-obshenie-s-api-golos-io-bonus-dannye-akkauntov
Всё итак так доступно, а если закрыть страницу, он будет работать? И можно ли его настроить, чтоб следовал за несколькими аккаунтами?
Нет. В этом и суть работы без сервера.
Что бы он работал всегда - нужно обеспечить бота постоянной средой обитания.
Например в облаке. Можно арендовать VPS за пару $ в месяц и запустить там node js c ботом, который предлагает @ontofractal
Или кто-то может предложить хостить вашего бота на своем сервере бесплатно. Но в этом случае, вы должны доверить человеку свой постинг ключ.
по поездатости наши паровозы никто не перепаравозит)
Прикольная игрушка!) Поиграюсь)))
Это пять=))
Так бы сказал один известный мэр Киева
Поэтому порадовал)
ой ты волшебник! всяческих плюх тебе. будем тестить)
С такими ботами скоро начнется тенденция следования за успешными кураторами армии
зомбиботов. И в итоге в основном от этих кураторов-лидеров будет зависеть успех той или иной статьи.Вот и меня этот момент беспокоит немного =)
Один и тот же инструмент в разных руках приводит к разным результатам :) Использовать боты как в вашем примере-опасении - не профитабельно владельцам ботов.
А вот использовать их с умом, для мотивирования выгодного для всех контента - принесет пользу всему сообществу, в особенности его филантропам :)
а кто в состоянии сказать, какой контент выгоден, да еще для всех?))
А вы читали пост? :)
Очевидно - нишевые кураторы вроде @academy
С появлением таких кураторов в других нишах появится возможность вам самому выбрать тематику и авторов которых вы захотите поддержать.
Разумеется, нет ничего лучше, чем голосовать самостоятельно, анализируя контент, но делать это каждый день не всегда есть возможность.
2 @vik
вашу мысль понял, но мне все видится несколько иначе:
проблема в том, что его нельзя поощрить, не отобрав у другого. А так как вы ставите бота на поддержку этого автора, вы автоматически отказываетесь от дальнейшей объективной оценки этого автора и сравнении его с другими. И так будут делать все, так как это проще и профитней. В итоге вскоре вся сеть будет закольцована на одних и тех же авторов и все серьезные держатели СГ разобраны.
Вновь приходящие в систему будут сталкиваться со своей полной ненужностью, вне зависимости от контента. Попытка прикупить СГ вряд-ли будет сделана, если чел ознакомиться с системой квадратичности голосования и что на свои 10к рублей влива он получит несколько копеек апвота. В итоге все, кто заходит снаружи будут выходить с негативным мнением о системе, примерно как о Стиме - сделано программистами для программистов, для остальных жутко неудобно, заработать какие-то крохи удается 1 из 100, в общем бяка и лохотрон. И это мнение пойдет в массы.
Общая кормушка будет быстро таять по причине отсутствия спроса на токены, это усилит межвидовую конкуренцию, "старички" вписавшиеся в систему будут забирать уже все, и лихорадочно выводить... по крайней мере до уровня IСO по каппе. Ну а там останется только на прокорм программистам, пишущих ботов для сбора кликов для прокорма)))
я думаю все кто могли придти, уже пришли на ICO. Чтобы инвесторы пришли, нужно для этого создать благоприятный инвест климат. Unreal
нет, бот не Скайп, при общении в Скайпе бот не заменяет человека. Людям нужны люди. Врядли кто-то заплатит, чтобы его слушал и с ним общался, бот)))
@park.bom (отвечу отдельно, так как лимит на вложенность комментариев)
Давайте мыслить образно и представим пример:
Есть некий автор, которой может монетизировать свой контент на других ресурсах, скажем по 100$ за пост.
Размещая тот же контент на голосе - он сможет монетизировать его на 20$. Едва-ли он будет думать о миграции на голос при условии такого профита :) Но если поощрить автора, удержать как ценную единицу - его инвестиции в виде контента будут продолжаться и принесут дивиденды в виде трафика, среди которого, в числе прочих могут быть и крупные инвесторы в токен.
Мне кажется вы преувеличиваете роль простого инструмента в руках живого пользователя, ведь за ботом стоит живой человек. С тем же успехом, можно назвать "ботонизацией" общение по скайпу вместо почтовой переписки :)
Но ваши опасения мне понятны, мой первый пост на голосе был полон скептицизма, в том числе по теме ботоводства, сейчас у меня несколько другие взгляды.
Я читал пост, просто видимо не так вас понял, для меня "выгодный для всех контент" - это тот который приведет к росту спроса на токен и соотв. росту капитализации. Я как-то не очень уверен, что ботонизация живого общения может привести к росту спроса на токены, скорее наоборот.
это другой разговор, т.е. у вас инструмент для создания "пулов кураторов", чтобы получать кураторские не читая. Но хорош ли этот путь развития, покажет будущее.