Sleazy Fork is available in English.

Anime1.me Dislike Highlighter

Highlight disliked anime titles on Anime1.me

// ==UserScript==
// @name         Anime1.me Dislike Highlighter
// @namespace    http://tampermonkey.net/
// @version      1.0.2
// @license MIT
// @description  Highlight disliked anime titles on Anime1.me
// @author       CursorBot
// @match        https://anime1.me/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 添加CSS样式
    const style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = `
        .disliked-title { color: red !important; }
        .dislike-checkbox { margin-right: 5px; }
    `;
    document.head.appendChild(style);

    // 动态内容加载完成后的回调函数
    function addCheckboxes() {
        const titles = document.querySelectorAll('td > a');
        titles.forEach((title) => {
            const catMatch = title.href.match(/cat=(\d+)/);
            if (!catMatch) return;
            const catId = catMatch[1];

            if (title.previousSibling && title.previousSibling.classList.contains('dislike-checkbox')) {
                // 已经添加过复选框
                return;
            }

            // 创建复选框
            const checkbox = document.createElement('input');
            checkbox.type = 'checkbox';
            checkbox.className = 'dislike-checkbox';
            checkbox.dataset.catId = catId;

            // 检查localStorage中的标记状态
            checkbox.checked = localStorage.getItem('disliked_cat_' + catId) === 'true';
            if (checkbox.checked) {
                title.classList.add('disliked-title');
            }

            // 复选框状态改变事件
            checkbox.addEventListener('change', function() {
                if (this.checked) {
                    title.classList.add('disliked-title');
                    localStorage.setItem('disliked_cat_' + this.dataset.catId, 'true');
                } else {
                    title.classList.remove('disliked-title');
                    localStorage.setItem('disliked_cat_' + this.dataset.catId, 'false');
                }
            });

            // 将复选框添加到标题旁边
            title.parentNode.insertBefore(checkbox, title);
        });
    }

    // 使用MutationObserver监视动漫列表的加载
    const observer = new MutationObserver(function(mutations, me) {
        const container = document.querySelector('table'); // 假设动漫列表在一个<table>中
        if (container) {
            addCheckboxes();
        }
    });

    // 开始监视
    observer.observe(document, {
        childList: true,
        subtree: true
    });
})();