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

in Steem-BRU (BY-RU-UA)4 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

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

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

Sort:  

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

 4 years ago 

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

они на хайве)

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

 4 years ago 

Супер)

 4 years ago 

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

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

 4 years ago 

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

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

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

 4 years ago 

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

 4 years ago 

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

 4 years ago 

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

 4 years ago 

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

Спасибо

 4 years ago 

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

 4 years ago 

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

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

 4 years ago 

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