エロアニメ折りたたみフィルター

特定のワードが含まれる記事を折りたたむ

// ==UserScript==
// @name         エロアニメ折りたたみフィルター
// @namespace    http://tampermonkey.net/
// @version      0.6
// @license       adsamalu4kia
// @description  特定のワードが含まれる記事を折りたたむ
// @match        http://blog-mougenda.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 折りたたむ対象のワードリスト
    const targetWords = ["エロアニメ", "OVA", "THE ANIMATION"];

    // 記事の要素を取得
    const articles = document.querySelectorAll('article.article');

    articles.forEach(article => {
        // 記事タイトルと本文のテキストを取得
        const titleText = article.querySelector('.article-title')?.textContent || "";
        const bodyText = article.querySelector('.article-body-inner')?.textContent || "";

        // タイトルまたは本文にターゲットワードが含まれているかを確認
        const containsTargetWord = targetWords.some(word => titleText.includes(word) || bodyText.includes(word));

        if (containsTargetWord) {
            // 折りたたみ処理(display: noneで完全に非表示)
            article.style.display = "none";

            // ボタンを作成して「表示」オプションを追加
            const toggleButton = document.createElement('button');
            toggleButton.textContent = "表示";
            toggleButton.style.cursor = "pointer";
            toggleButton.onclick = () => {
                // 記事の表示・非表示を切り替え
                if (article.style.display === "none") {
                    article.style.display = "block";
                    toggleButton.textContent = "折りたたむ";
                } else {
                    article.style.display = "none";
                    toggleButton.textContent = "表示";
                }
            };

            // ボタンを記事の前に追加
            article.parentNode.insertBefore(toggleButton, article);
        }
    });
})();