Итак, по маленькому шажку буду реализовывать идею. Давно искал то, что можно реализовать, и вот наконец-то есть задача. Сделать рейтинг по количеству комментариев по недельно, с возможностью узнавать в любой момент свой рейтинг.
Предварительно разобью данную задачу на подзадачи.
Необходимо получить список всех комментариев нужного пользователя. Затем отдельно я сделаю список всех пользователей и методом перебора определение количество комментариев каждого.
Определение нужной даты. Проверка даты комментария с нужным нам диапазоном.
2.1) выделение нужного диапазона
2.2) проверка совпадения
Подсчет нужного аккаунта
Заведение рейтинга - сохранение данных для определения рейтинга.
Проделывание для всего списка сообщества.
5.1) Составление списка
5.2) Передача списка в скрипт
5.3) ОбработкаВызов данных по комментарию (затем в иделает сделать в боте)
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
Итак, затык в этом.
В каком-то смысле можно это пока оставить и двигаться дальше.
Особенно когда вот такие происходят моменты, когда я из-за азов не знаю тот или иной кусок, и начинаю буксовать.
Всех благ.
Продолжу после.
Помню, раньше @arcange вроде увлекался такими рейтингами... Смотрю - пропал где-то...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
У них там явно что-то произошло, потому что аккаунт пустой. (
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
они на хайве)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Точно...
Ну и ладно!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Супер)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ага) Скоро уже будет рейтинг)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Оно, вот это ты могёшь!)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
О да, меня это увлекает очень! :)
Делаю набегами.
Вот. прикрутил прототип телеграмм бота уже :)
https://steemit.com/hive-171319/@alexmove/sozdanie-interaktivnogo-reitinga-soobshestva-steem-bru-chast-2-telegram-bot-brustatbot
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Какой же молодец ты. Благое дело делаешь)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
интересно! ловите ап. и желаю вам не останавливаться, а побуксовав, успешно преодолеть все "темные места".
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Да, да, я уже часть преодолел в следующему посте)
Спасибо!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Най все вийде)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Да! С поддержкой сообщества STEEMIT и нашего steembru шансы на успех огромны :)
Спасибо
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
У тебя все так просто, но для меня это так сложно 😅
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Спасибо за комментарий )
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Тоже подумала что так просто рассказываете, а для меня темный лес)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
В лесу иногда очень хорошо :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit