// ==UserScript==
// @name Collapse NSFW
// @namespace http://tampermonkey.net/
// @version 0.1.1
// @description Collapses NSFW posts on pikabu.ru
// @author Parkad
// @match https://pikabu.ru/*
// @icon https://www.google.com/s2/favicons?domain=pikabu.ru
// @grant none
// ==/UserScript==
(function () {
'use strict';
function handle(elem) {
if (!elem.matches || !elem.matches("article.story")) {
return;
}
let nsfw = elem.querySelector("a[data-tag='NSFW']");
if (nsfw === null) {
return;
}
elem.classList.add('story_tags-at-top')
elem.classList.add('story_collapse');
let content = elem.querySelector('.story__content');
if (content !== null) {
content.style.display = "none";
}
let button = elem.querySelector(".collapse-button:not(.collapse-button_active)");
if (button !== null) {
button.classList.add('collapse-button_active');
}
}
function mutate(changes) {
for (let change of changes) {
for (let node of change.addedNodes) {
handle(node);
}
}
}
function run() {
let observer = new window.MutationObserver(mutate);
let feed = document.querySelector(".stories-feed__container");
observer.observe(feed, {
childList: true,
});
for (let post of document.querySelectorAll("article.story")) {
handle(post);
}
}
run();
})();