// ==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();

})();