restore subscribers counter on reddit
当前为
// ==UserScript==
// @name Reddit - Restore subscribers counter
// @namespace https://greasyfork.org/users/821661
// @version 1.0.2
// @description restore subscribers counter on reddit
// @author hdyzen
// @match https://www.reddit.com/*
// @icon https://www.google.com/s2/favicons?domain=www.reddit.com/&sz=64
// @grant GM.xmlHttpRequest
// @license GPL-3.0-only
// ==/UserScript==
function setCountersDesktop() {
const observer = new MutationObserver(() => {
const node = document.querySelector("shreddit-subreddit-header:not([subscribers])");
if (!node) return;
const membersCount = document.querySelector("#subgrid-container div.xs\\:hidden > :nth-child(1) [number]")?.getAttribute("number");
const onlineCount = document.querySelector("#subgrid-container div.xs\\:hidden > :nth-child(2) [number]")?.getAttribute("number");
node.setAttribute("subscribers", membersCount);
node.setAttribute("active", onlineCount);
node.removeAttribute("activity-indicators-enabled");
});
observer.observe(document.body, { childList: true });
}
async function setCounterMobile() {
const observer = new MutationObserver(async () => {
const node = document.querySelector("#subgrid-container div.lowercase:not([processing])");
if (!node) return;
node.setAttribute("processing", "");
node.outerHTML = await getCountersHTML();
});
observer.observe(document.body, { childList: true });
}
async function getCountersHTML() {
const res = await GM.xmlHttpRequest({
url: window.location.href,
responseType: "document",
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0) Gecko/20100101 Firefox/143.0",
},
});
const doc = res.response;
const counters = doc.querySelector("#subgrid-container div.xs\\:hidden");
return counters.outerHTML;
}
const isMobile = GM_info.platform.mobile;
if (isMobile) {
setCounterMobile();
} else {
setCountersDesktop();
}