Перебои в работе сервисов бота и что означает повышенный апвоут
Доброго всем дня. За последнюю неделю при работе бота наблюдались сбои. А именно при вычислении процента апа. Связано это с работой функции апи getDiscussionsByComments.
Периодически начала вылетать ошибка:
(node:49056) UnhandledPromiseRejectionWarning: Error: Assert Exception (10)
litr != lidx.end(): Comment is not in account's comments
(see err.payload for the full error payload)
at Golos.onMessage (c:\BOT\GOLOS\node_modules\golos-js\lib\api\index.js:183:19)
at WebSocket.<anonymous> (c:\BOT\GOLOS\node_modules\golos-js\lib\api\index.js:138:18)
at WebSocket.onMessage (c:\BOT\GOLOS\node_modules\ws\lib\WebSocket.js:442:14)
at WebSocket.emit (events.js:160:13)
at Receiver.ontext (c:\BOT\GOLOS\node_modules\ws\lib\WebSocket.js:841:10)
at c:\BOT\GOLOS\node_modules\ws\lib\Receiver.js:536:18
at Receiver.applyExtensions (c:\BOT\GOLOS\node_modules\ws\lib\Receiver.js:371:5)
at c:\BOT\GOLOS\node_modules\ws\lib\Receiver.js:508:14
at Receiver.flush (c:\BOT\GOLOS\node_modules\ws\lib\Receiver.js:347:3)
at Receiver.finish (c:\BOT\GOLOS\node_modules\ws\lib\Receiver.js:541:12)
at Receiver.expectHandler (c:\BOT\GOLOS\node_modules\ws\lib\Receiver.js:499:31)
at Receiver.add (c:\BOT\GOLOS\node_modules\ws\lib\Receiver.js:103:24)
at TLSSocket.realHandler (c:\BOT\GOLOS\node_modules\ws\lib\WebSocket.js:825:20)
at TLSSocket.emit (events.js:160:13)
at addChunk (_stream_readable.js:269:12)
at readableAddChunk (_stream_readable.js:256:11)
(node:49056) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:49056) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Поначалу вылетала рас в сутки, затем все чаще и чаще. И вот на выходных напрочь отказалась работать. В общем пришлось переписать часть кода. Теперь я ищу комментарии через getAccountHistory и дополнительно вычисляю посты, к которым эти комментарии через функцию getContent. Вместо одной функции теперь две - улучшение или "покращення" )
Кроме всего прочего, раз уж судьба заставила писать пост, раскрою немножко логику получения повышенных процентов при апвоуте.
Фраза: "Апайте посты блога: https://golos.io/@djimirji и будете получать апвоуты на 75%". Бот проверяет последние 10 постов на предмет апов, и, если находит хотя бы 7, Вы получаете 75%-й ап.
Фраза: "После АПОВ комментариев бот голосует с большей силой.". Бот проверяет все комментарии за последние 3 дня, находит те, за которые есть голоса (Учитываться апы только с 100%-й силой). Затем считается сколько таких апов оставил пользователь. Каждый апвоут дает +2%, но не более 20%. Замечу, что апвоутить можно НЕ только свои комментарии, главное, чтобы они были не старше 3-х дней.
Бот в steemit: https://steemit.com/@djimirji