В один день чуть бухой резонатор накатал пост с идей клеймение некоторых участников голоса. Так как мне исходная идея не понравилась, то переделал под свои нужды и первым кто попал под прицел бота оказался как раз сам резонатор. Наука вроде иногда требует жертв.
Поэтому сегодня мы постараемся научиться кодить что-то в свою защиту от посягательств на свою персону.
Концепт
Главное в разработке с самого начала более менее обдумать что кому. Так как в этом проекте я увидел перспективы монетизации, то имеет смысл уделить большее внимание всем деталям... и заодно устроить образовательный курс как по кодингу, так и по экономике... ну а что? надеюсь многие тут не лыком шиты.
В чем идея "клеймо резонатора"? На самом деле все просто. Как только цель что-либо постит или комментит на голосе, как за ним пристраивается бот-клеймо и оставляет комментарии, мол клеймо такое-то. Происходит заспамленность того места, куда сунулась цель, что явно не особо нравится окружающим. Так что в продолжении идеи резонатора бот-клеймо не будет оставлять следующую пачку комментариев если под комментом кто-то поставит флаг.
Вот такая интересная мешанина. С одной стороны оставляется коммент как это делает читах, только не один, а по максимуму, и не выставляется самим ботом флаг, а любой может флагануть и тем самым избавить свой блог от заклейменного.
Можно еще долго разжевывать все нюансы, но лично сейчас я сам не уверен, что многие поняли что к чему. И более того, как это монетизировать, поэтому просто перейдем к образовательной части и будем учиться кодить.
Начало
# -*- coding: utf-8 -*-
from piston import Steem
bot = "deathspore"
bot_wif=["5K..."]
golos = Steem('wss://ws.golos.io', wif = bot_wif)
Вот такое начало при подключении к блокчейну голос через публичную ноду с использованием python 3.4 и сторонней библиотеки piston. Описание как что установить и настроить в анналах нашего блокчейна есть... ищите.
А мы пока перейдем к той части, когда нам нужно выбрать цель/цели и подобрать к ним сообщения. Для этого опишем отдельно функцию... а потом... в будущем перепишем, но сам формат вызова оставим неизменным. Это очень грамотный подход, когда в коде программы отдбеные кусочки когда помещаешь в функцию.
def load_stigma():
Зададим название функции, чтобы она отражала происходящее. Таким образом мы даем себе понять, что с помощью этой функции мы заполучим список целей и заодно текстовку к ним. Ага, тестовка... сразу скажу, текстовка, он же комментарий будет состоять из трех частей:
text_user
text_var
text_const
первая переменная описывает тот текст, который захочет сам пользователь бота. Не забываем про монетизацию. Вторая переменная будет содержать некую часть, которая с каждым комментом будет разная, это необходимо, чтобы комменты НЕ выглядели явным спамом (пока поставим в них пропуск) и третья часть постоянна. Она как раз будет описывать, что мол флаганите и бот больше не будет комментить.
Далее у меня уже есть три цели для экспериментов. Во-первых это @antonkostroma - многие хотят что-то да оставить ему в послании, далее это @tr1n1t1, за тринити гонятся агенты матрицы! И @rumeet-ez - он попал мне под горячую руку, так как решил сделать левый пост и типа собрать апы от ботов... так и призывал, мол боты, идите ко мне... Ну вот они и пришли... теперь петушком меня называет... на его бы месте не спешил бы, дело в том, что на данный момент моих ресурсов вполне хватит чтобы вогнать его репу почти в ноль. но надо давать шанс всем хотя бы признать свои ошибки.
mas_stigma = []
login = 'antonkostroma'
text_user = 'Клеймо справедливого флагователя'
text_var = ''
text_const = 'Флаганите цель и бот перестанет оставлять комментарии'
body = '\n'.join([text_user, text_var, text_const])
mas_stigma.append([login, body])
login = 'tr1n1t1'
text_user = 'Беги, Тринити!!! Агент Матрицы преследует тебя...'
text_var = ''
text_const = 'Флаганите цель и бот перестанет оставлять комментарии'
body = '\n'.join([text_user, text_var, text_const])
mas_stigma.append([login, body])
login = 'rumeet-ez'
text_user = 'Клеймо тестера на ботов'
text_var = ''
text_const = 'Флаганите цель и бот перестанет оставлять комментарии'
body = '\n'.join([text_user, text_var, text_const])
mas_stigma.append([login, body])
return(mas_stigma)
Это решение топорное и предназначено для новичков. Код должен быть не только изящным, но и понятным. И раз у нас немного целей, то можно обойти шаблонами такого рода, чтобы понять синтаксис языка.
В начале функции задаем пустой список mas_stigma, он будет содержать логины login и текст комментария body. Текстовым переменным присваиваются значения и только text_var мы резервируем на будущее и оставляем пустой. Далее склеиваем все это в единый коммент... а теперь внимание, новички могут делать это так:
body = text_user + text_var + text_const
Но это приведет к единому тексту, надо добавить еще символ перевода строки и тогда выглядеть это будет так:
body = text_user + '\n' + text_var + '\n' + text_const
С одной стороны это понятно для новичка, но этот код плохой и так делать не надо. Это жрет много памяти, так как каждое сложение происходит ПО ОТДЕЛЬНОСТИ и в совокупности генерируется много не нужного нам, чтобы этого избежать используется конструкция join
body = '\n'.join()
И тогда то, что перечислите списком в скобках будет склеено в одну переменную через символ, который задан в кавычках ''.
В теле кода бота вызовем функцию таким образом
mas_stigma = load_stigma()
Хотя, сделаем немного иначе, запустим бесконечный цикл и будем вызывать основной код бота посылая в качестве аргумента результат самой функции. В будущем это позволит изменять настройки бота не выключая его. Так в каждом цикле работы он будет подгружать новые параметры.
while True:
print('new step')
run_stigma(load_stigma())
Вот так то лучше.
И переходим к объявлению функции - сердца бота
def run_stigma(mas_stigma):
первым делом нам необходимо раскрыть список следующим образом
for login, body in mas_stigma:
Так в питоне запускается цикл. Он проработает три раза и каждый раз в логине и комменте будут те значения, что мы присвоили в самом начале (или будем присваивать по ходу). и Еще... в начале кода еще укажем
from piston.account import Account
from datetime import datetime, date, time
from time import sleep
Надо подключить еще и эти библиотеки, а в самой функции пропишем следующее:
new_account = Account(login)
i = 0
for rh in new_account.rawhistory(first=99999999999,limit=-1, only_ops=['comment'], exclude_ops=[]):
time0 = time_now()
author = rh[1]["op"][1]["author"]
identifier = author + '/' + rh[1]["op"][1]["permlink"]
time1 = datetime.strptime(rh[1]["timestamp"], "%Y-%m-%dT%H:%M:%S")
age = (time0 - time1).total_seconds() / (60 * 60)
if age > 24.0 or i >= 100:
break
Фух, сложный момент, надо пояснить-то. Для начала мы инициируем выбранный аккаунт и устанавливаем счетчик i=0 (на будущее, если мы оставим 100 комментариев, то бот перейдет к следующей мишени)
Далее сканируем историю аккаунта и отбираем только комментарии (0 уровень комментариев - это пост). Засекаем текущее время и извлекаем из полученного массива идентификатор поста/комментария и время его создания. Если возраст больше суток (24 часа), то так же выходим из цикла и переходим на следующую мишень).
60 * 60 - это как раз способ превратить секунды в часы, а time_now() - авторская функция и выглядит она
def time_now(): # Текущее время блокчейна
golos_info=golos.info()
return( datetime.strptime(golos_info["time"], "%Y-%m-%dT%H:%M:%S") )
Далее нам необходимо отсечь комменты НЕ цели, а они будут в истории аккаунта и проверить пост на наличие флагов (в виде отдельной функции).
if author == login:
if not check_flag(identifier):
print(round(age, 1),'h', identifier)
try:
r = golos.reply(identifier, body, author = bot)
i += 1
sleep(20)
except:
print('error comment')
Надеюсь этот кусочек кода понятен. Проверяем эквивалентность логина с автором, проверяем есть ли флаги и если есть совпадение по логину и нет флагов, то оставляем коммент, если коммент удался, то увеличиваем счетчик и ждем 20 секунд (время между двумя комментариями у нас ограничено 20 секундами).
Переходим к создании новой функции
def check_flag(identifier):
post_author, post_permlink = identifier.split('/')
post = golos.rpc.get_content(post_author, post_permlink)
flag = False
for active_votes in post["active_votes"]:
if int(active_votes["percent"]) < 0:
flag = True
break
return(flag)
Делаем лишнее действие и сплитуем ссылку на пост или коммент отдельно на кусок с автором и кусок с пермлинком (это чтобы новичкам чуть более было понятно где что и как называется). Далее извлекаем необходимые данные из коммента, и если есть хоть один кто оставил флаг (меньше нуля процент апвота), то возвращаем "истину", иначе возвращаем "ложь".
Вот и всё. бот запущен и смотрим что же он там делает, возможно вылезут баги - это обычное дело - подправим.
А теперь главное! На голосе есть куча гуманитариев, экономистов и прочих, кто считает, что разбирается в толпе итд итд. К вам предложение. Если напишите свой бизнес-план о возможной монетизации данного проекта, укажете свой процент и свой функционал в нем. То с удовольствием приму в команду.
Вопросы и бизнес модели оставляйте в комментариях ибо нам есть что обсудить, когда речь идет о заработке.
Протей, спасибо за крутой урок, как только поделаю дела, буду прошариваться)
Насчет функционала, то, конечно, ни на какой процент не претендую, чисто по фану такие очевидные штуки сразу придумались:
Во блин какие у тебя идеи опасные (кроме п. 4) :D
Хорошо, наверное, что их реализация пока что застопорилась на установке пистона ахах
как грится основу я выложил - далее можешь докодить самостоятельно любой функционал
Беги, Тринити!!! Агент Матрицы преследует тебя...
Почести меняют нравы, но редко в лучшую сторону.
Флаганите цель и бот перестанет оставлять комментарии
последнее поржал))
Беги, Тринити!!! Агент Матрицы преследует тебя...
Нет большей беды, чем недооценивать противника.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Дело разумного человека в том, чтобы приложить свои мысли к делу сообразно с законами природы… держаться истины, отстранять заблуждение и не рассуждать о том, что неизвестно.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
У несчастных одни речи, у счастливых – другие.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Богатством не изменишь происхождения.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Не тот беден, кто мало имеет, а тот, кто хочет многого.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Что будет завтра, бойся разгадывать.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Я обязан передавать все, что рассказывают мне, но верить всему не обязан.
Флаганите цель и бот перестанет оставлять комментарии
Че тут думать, бро
login = 'mimocrocodil'
text_user = 'Фанат коряжки и Лягубли'
text_var = '' Линк на свежий пост крокудлы" кстати вот https://golos.id/@mimocrocodil конкурсы с голдой каждый день!!!!!
text_const = 'Лайкайте посты крокушки и получайте сытнявый откат'
body = '\n'.join([text_user, text_var, text_const])
mas_stigma.append([login, body])
так это же за тобой тогда будет шлейф. норм?
дык само собой....пиара многа не бывает
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Cool story @tr1n1t1 :D
БЧ ты точно не сломаешь, максимум ноду положишь, а более вероятно что и это не получится, т.к. ноды обычно ограничивают скорость запросов от клиента.
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Ну бляха, теперь этот сапролинг засрёт все комменты.
Рыклама --двигатель коряжки....любит мну сенсейка, хохохо....бесплатный профит...флаговать не рекомендую...у коряжки на флаги...штраф100
ахахах, то ли ещё будет, когда нубы типа меня раздуплятся и запустят своих ботов корявых
один раз очень давно на работке меня попросили поэксперементировать с темами для вордпресса и всякими примочками там, я ещё предупредила, что могу сломать всё нахрен, нечаянно. но меня убедили, что я могу вообще всё что угодно тыкать, устанавливать, всё можно откатить.
в итоге я чето такое намутила, что вместо сайта отображалась какая-то странная хрень в странной кодировке, а шеф только под конец дня понял, в чем было дело. но до конца разрулить так и не смог)))
сломаю нахрен весь блкч
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Фанат коряжки и Лягубли
Линк на свежий пост крокудлы: https://golos.id/ru--konkurs/@mimocrocodil/ezhednevnyi-krokokonkurs-tema-dnya-i-seif-apita-anons
Лайкайте посты крокушки и получайте сытнявый откат
Флаганите цель и бот перестанет оставлять комментарии
Четыре направления:
реклама (скорее, станет спамом);
наказание недобросовестных авторов (сработает в большинстве случаев);
блокировка поста (более 10000 и в пост зайти становится оче-е-ень тяжело, что приведет к оттоку читателя от выбранного автора);
вымогательство (не следует исключать подобного оборота, народ то у нас в океане загадочный и не предсказуемый)
Правда крок уже реализовал первый вариант (лично по мне не очень удобно), а Тринити обозначила второй и тритий варианты))
по 3 если он напишет в твой пост... то там будут 1000 комментов
)) Спасибо. Рад принять участие в дискуссиях, но не в экспериментах. А то так и до 4-го пункта не далеко))
Была настроена уже вчера ночью бота запустить, всё что тут - у меня получилось очень быстро, но дошла до шага 2, а именно до попытки установить пистон и тут мне тоже выдало ошибку, мол нет Visual C++ 10.
Удалила все Microsoft Visual C++, что были, оказалось, что их чето было аж 3, в тч и 2014 года.
Попробовала Установить Microsoft .NET Framework 4, а компустер вообще такое говорит: "Microsoft .NET Framework 4 is already a part of this operating system. You do not need to install the .NET Framework 4 redistributable. Same or higher version of .NET Framework 4 has already been installed on this computer." При этом поиском я его не нахожу, и не устанавливала раньше. Но вот почему-то установить не дает, говорит, что есть уже.
Что его делать? Спасите))А там еще и дальше написано установить Microsoft Windows SDK for Windows 7 and .NET Framework 4, а у меня вообще Windows 8.1, 32-bit ОС, короче я прям расстроилась. Я не шарю вообще, поэтому мне щас кажется, что надо винду на 7ку переустановить, чтобы всё решилось. Но чёто я сомневаюсь в разумности этого)))
по шерсти выше в скай0попули там есть описание для установки на семерку от другого пользователя
а так да. в каждом случае винды свой путь. в линуксе говорят нет таких проблем
а я тут уже дошла до того, что установила питон 3.6, потому что могу же с 8й виндой. мне ж необязательно 3.4
только теперь у меня при установке пистона ошибка "microsoft visual c++ 14.0 is required", я его скачала и нифига, то же самое. мож скачала не то. нипанимаююююююююаааааа
да, именно так. найти человека с установкой папки пистон
под каждый питон - свой си++
там ситуация такая, что в модуле рукрипто нашли уязвимость и нах закрыли прошлые релизы. и теперь чтобы питон работал с блокчейном необходим исполняемый модуль в си++. отсюда танцы с бубнами.
с другой стороны тебе нужно найти того, что на винде уже поставил папку с питоном и просто скопировать ее. будет работать
ой, я запуталась, папку с питоном или с пистоном?
просто с питоном у меня все окей вроде, я весь шаг 1 (https://goldvoice.club/@sci-populi/kak-poluchit-dostup-k-blokcheinu-golos-ispolzuya-python-i-windows-shag-1-ustanovka/) проделала, просто с версией 3.6. я ща так поняла, что надо найти человека с питон 3.6, виндой и чтоб у него пистон работал и попросить эту папку
простите, что задалбываю
Что за жесть тут у вас? Вечно что-то непонятное и интересное происходит ))
У меня такой вопрос возник. Не по теме. Куда девается львиная доля средств из вознаграждений? Не только у меня, а вообще у всех? Это тут нормально вообще?
Поясню на конкретном примере. Этот пост https://golos.id/ru--dbs/@ivan-baloban/prishelcy-s-nebes-glava-24 набрал у меня 21,32 гбг. За вычетом кураторских осталось 16,11. Ну да хер с кураторскими... Считаем моё вознаграждение: 1,447 гбг, 2,395 голоса и 2,922 силы голоса. Последние два токена, я так понял, одно и то же. Их курс на бирже относительно гбг - примерно 1,2. Считаем награду:
1,447 + (2,395 + 2,922) х 1,2 = 7,827 гбг.
Как так-то? А куда всё остальное девается?!
курс 2.472 же
А почему тогда на бирже голос торгуется за 1.1 - 1.2? Она типо отдельной жизнью живёт? Тогда всё понятно... )) А по официальному курсу нигде нельзя обменивать?
спекулянты
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
alex2016, ianboil, vas, francisgrey, rbrown, max-max, niiu, archibald116, oleg257, korzhimanov, urii, sape4000, forbon21, amikphoto, volv, vasilisapor2, tom123, oceanotechnic, yourlastwinter, vict0r, kssenia, svinsent, drim, voltash, ladynazgool, ladykosha, tnam0rken, karusel1, snaryaga, zivchakh, rubin, asparian, ovtretya, arturio777, gapel, fyyf, vika-teplo, vpervye1, kis-dikiy, anatolich, hyipov, lushaya, dmitrijv, olgaborisova, wrong, ermakovaolga, lokkie, bag, dim447, dobryj.eeh, vladsm, tortellini, prifix, shenanigan, skiexpert, onegin, magformers, massatela, kakachaca, leminger, naiger, byurotegov, dart-ezra, kanalex, xsen, verdon, evgeniy73, kito-boy, metamorfozzz, anr, gogirotsky, astramar, katarinka, propoker, blog.experta, benken, andrzhej, iot, antropocentrist, jahspear, keali, cryptostock, eliney, bavard, siddxa, lordarhont, osra111, iamfrolova, makssib, anykeycheg, delectat, molchyn, esperos, peterstoro, kinoshka, alexxela, dora-vidar, doctortayler
Поэтому я тоже проголосовал за него!
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
@ksantoprotein, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Ваш пост получил наибольшее количество комментариев за день
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Можно ещё aleos добавить ненадолго в базу бота. Монетизация видна невооружённым глазом, но она сомнительна с точки зреения этики и морали. Например предложить жертве бота заплатить за то чтобы бот отвязался, а проблема с пятым комментарием решена в коде? Я просто не разбираюсь в этом. А за что tr1n1ty ботом пытать, она вроде ничего плохого не делала или я возможно что-то пропустил?
а зачем проблему с 5 комментом решать?
ну мне нравится гоняться за тринити
Ну вот наказуемый напишет последний разрешённый коммент в ветке, захочет бот прокомментировать а нельзя уже, я вот и думаю не заклинит ли исскуственный мозг бота из-за этого.
не, не заклинит
Можно предлагать платить не в гбг, а в созидательном труде. Например, написать статью о том, как относятся к стукачам в разных культурах, или подборку фильмов о стукачах запилить)
Мой 5й остался без преследования.
Я вот сама хз, сначала мне это даже нравилось и я находила это красивым, а щас уже чёто не очень-то. Флагоните меня кто-то на один проц что ли:'(
Можно назвать это не созидательным трудом, а исправительными работами. Тогда уж надо заставить благотворительностью заняться и заставить апать валом всех зафлагованных робингадом :)
Беги, Тринити!!! Агент Матрицы преследует тебя...
Истинно просвещенный человек никогда не воюет.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Мудрый человек будет молчать до времени; а тщеславный и безрассудный не будет ждать времени.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Грязнее всего грязь невежества, худшая грязь.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Достойный муж надевает на себя худую одежду, но в себе имеет драгоценный камень.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Если действия человека не согласуются с Путем, а поступки не согласуются с долгом, то, пусть этот человек и находится среди великих, пребывает среди знатных, все равно беда непременно настигнет его.
Флаганите цель и бот перестанет оставлять комментарии
о да... это же чисто поиграться и пошалить
та да, если так всегда, то я бы и Костроме такого не пожелала))
пост про мотивацию учиться программировать, чтобы гоняться за ним написала под впечатлением, когда он у меня в блоге начал доколупываться до vvk)
ну вот... хотя мне сейчас понравилась идея оставлять за кроком по одному комменту с рекламой и ссылкой на его последний пост
ирония? за что вы меня так это в самом то деле?
скажем так, прежде чем пакостить другим - надо на себе испытать
Беги, Тринити!!! Агент Матрицы преследует тебя...
Будь благосклонен к смелым начинаниям.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Стремясь избежать одних пороков, глупцы впадают в другие.
Флаганите цель и бот перестанет оставлять комментарии
Беги, Тринити!!! Агент Матрицы преследует тебя...
Поэзия – как живопись: иное произведение пленит тебя больше, если ты будешь рассматривать его вблизи, а иное – если отойдешь подальше.
Флаганите цель и бот перестанет оставлять комментарии
О, спасибо, то что доктор прописал.
Сначала репост, а потом разберемся!
for rh in new_account.rawhistory(first=99999999999,limit=-1, only_ops=['comment'], exclude_ops=[])
- вот вместо этого я бы переписал весь скрипт просто на прослушивание блоков.не люблю real_time в этом случае иной подход к обработке информации и логике работы надо применять.
так же на сколько помню готового решения в пистоне на прослушку не было
Сканирование истории грузит ноду, а так же работает только на LOW_MEM=false нодах, а у меня именно lowmem ноды.
Ну как это. Вот например мой слушатель флагов:
думаю при масштабировании можно сначала просканировать при загрузке историю, закешировать ссылки, а потом запустить прослушку и добавлять в кеш новые ссылки.
скажем так, пока таких задач не стояло
Можно хранить последний обработанный блок ещё.