Создание интерактивного рейтинга сообщества Steem-BRU. Подсчет комментариев на NodeJs для STEEMIT

in hive-171319 •  3 years ago 

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

image.png

Предварительно разобью данную задачу на подзадачи.

  1. Необходимо получить список всех комментариев нужного пользователя. Затем отдельно я сделаю список всех пользователей и методом перебора определение количество комментариев каждого.

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

2.1) выделение нужного диапазона
2.2) проверка совпадения

  1. Подсчет нужного аккаунта

  2. Заведение рейтинга - сохранение данных для определения рейтинга.

  3. Проделывание для всего списка сообщества.
    5.1) Составление списка
    5.2) Передача списка в скрипт
    5.3) Обработка

  4. Вызов данных по комментарию (затем в иделает сделать в боте)
    6.1) Найти скрипт обработки комментариев
    6.2) Наладить
    6.3) Запустить

//Хотя думаю все равно это будет в ручном режиме пока бота не запустим либо не повесим скрипт на облачный сервер

Вроде бы все задачи?
Возможно вдальнейшем вношу коррективы.

И, идем по этим задачам.

Открываем NodeJS command promt
Напомню, что запуск скрипта командой "node"

Первый пункт. Открываем tutorial https://developers.steem.io/tutorials-javascript/get_account_comments

и слегка модифицируем.

  const query = '/@alexmove/comments';

    client.database.call('get_state', [query]).then(result => {

if (
    !(
        Object.keys(result.content).length === 0 &&
        result.content.constructor === Object
    )
) {
    var comments = [];
    Object.keys(result.content).forEach(key => {
        const comment = result.content[key];
        const parent_author = comment.parent_author;
        const parent_permlink = comment.parent_permlink;
        const created = new Date(comment.created).toDateString();
        const body =comment.body;
        const netvotes = comment.net_votes;
        console.log(created);

    });
   // document.getElementById('comments').style.display = 'block';
   // document.getElementById('comments').innerHTML = comments.join('');
}
});

Запускаем... работает, но почему-то показывает лишь 22 комментария. Почему?!.

И вот... препятствие, которое я никак не ожидал, и которое разумеется не указано в подзадача. Как получить следующие 22 комментария.

  • сделал перерыв в несколько часов *
  • 23:30 на часах, хочется продолжать *

function getAuthorsComments(pAuthor, pPermLink)
{
Steem.api.getDiscussionsByCommentsAsync({
"start_author": pAuthor,
"limit": 100
,"start_permlink": pPermLink
}).then((result) => {
//get the next 100 comments
getAuthorsComments(pAuthor, result[99].permlink);
});
}

//Loop though the comments of an author
getAuthorsComments("wakeupnd", null);

Вариантов реализации - уйма...

ого, что нашел:

function getPostsAndComments(username) {
return Promise.all([
steem.api.getDiscussionsByAuthorBeforeDate(username, '', '2100-01-01T00:00:00', 10),
steem.api.getDiscussionsByComments({start_author: username, limit: 10})
]).then(([posts, comments]) => posts.concat(comments));
}

https://github.com/steemit/steem-js/blob/master/doc/README.md

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

Всех благ.
Продолжу после.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Помню, раньше @arcange вроде увлекался такими рейтингами... Смотрю - пропал где-то...

У них там явно что-то произошло, потому что аккаунт пустой. (

они на хайве)

Точно...
Ну и ладно!

Супер)

Ага) Скоро уже будет рейтинг)

Оно, вот это ты могёшь!)

О да, меня это увлекает очень! :)
Делаю набегами.

Вот. прикрутил прототип телеграмм бота уже :)
https://steemit.com/hive-171319/@alexmove/sozdanie-interaktivnogo-reitinga-soobshestva-steem-bru-chast-2-telegram-bot-brustatbot

Какой же молодец ты. Благое дело делаешь)

интересно! ловите ап. и желаю вам не останавливаться, а побуксовав, успешно преодолеть все "темные места".

Да, да, я уже часть преодолел в следующему посте)
Спасибо!

Най все вийде)

Да! С поддержкой сообщества STEEMIT и нашего steembru шансы на успех огромны :)

Спасибо

У тебя все так просто, но для меня это так сложно 😅

Спасибо за комментарий )

Тоже подумала что так просто рассказываете, а для меня темный лес)

В лесу иногда очень хорошо :)