// ==UserScript==
// @name LOR count-reactions
// @match https://www.linux.org.ru/notifications?filter=reaction
// @version 1.2
// @author CrX
// @description Show reaction count on reactions notifications page
// @grant GM_xmlhttpRequest
// ==/UserScript==
var res = {"🤡": 0, "👍": 0, "👎":0, "🤦": 0, "🔥": 0, "😊": 0, "🤔": 0, "😱":0, "☕☕":0, "🪗": 0};
let newdiv = document.createElement("div");
newdiv.setAttribute("id", "scriptedReactions");
h1 = document.getElementsByTagName("h1")[0];
h1.parentNode.insertBefore(newdiv, h1.nextSibling);
function countReactions(pageDom) {
Array.from(pageDom.getElementsByClassName('reaction')).forEach((e) => {
for (var r in res) {
if (e.innerText.search(r) != -1) { res[r]++; }
}
});
let reacttext = "| ";
var items = Object.keys(res).map(function(key) {
return [key, res[key]];
});
items.sort(function(first, second) { return second[1] - first[1];});
for (var r in items) {
reacttext += items[r][0] + ": " + items[r][1] + " | ";
}
document.getElementById("scriptedReactions").innerHTML = reacttext;
}
function scrapePage(pageurl) {
GM_xmlhttpRequest({
method: "GET",
url: pageurl,
onload: function(response) {
var parser = new DOMParser ();
var responseDoc = parser.parseFromString(response.responseText, "text/html");
countReactions(responseDoc)
let nextlink = responseDoc.querySelector('a[rel="next"]');
if (nextlink) {scrapePage(nextlink);}
}
});
}
countReactions(document);
scrapePage(document.querySelector('a[rel="next"]'));
(upd: скрипт обновлён, исправлены неверные результаты, если в настройках количество уведомлений отлично от 100)
Добавляем в ViolentMonkey, или что там у вас. Идём на страницу уведомлений о реакциях, смотрим, сколько каких, прямо под заголовком страницы.
Можно копипастить сюда, у кого что.
Топ клоунов — это хорошо, но там только «лучшие из лучших». А что у вас? А баянов кто-нибудь уже успел насобирать?
Моё на момент написания сообщения: | 🤡: 31 | 👍: 322 | 👎: 16 | 🤦: 11 | 🔥: 62 | 😊: 61 | 🤔: 9 | 😱: 13 | ☕☕: 157 | 🪗: 0 |