Overseer - Hide Requested Items

Current "Fix" to https://github.com/sct/overseerr/issues/3681

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Overseer - Hide Requested Items
// @namespace    http://tampermonkey.net/
// @version      2024-12-18
// @description  Current "Fix" to https://github.com/sct/overseerr/issues/3681
// @author       You
// @match        https://yourdomain.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=github.com
// @grant        none
// @run-at       document-idle
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Function to hide specific list items
    const hideListItems = () => {
        document.querySelectorAll('li').forEach(li => {
            const parentDiv = li.querySelector('div.absolute.inset-0.h-full.w-full.overflow-hidden');
            if (parentDiv) {
                const targetDiv = parentDiv.querySelector('div.absolute.left-0.right-0.flex.items-center.justify-between.p-2');
                if (targetDiv) {
                    const additionalDiv = targetDiv.querySelector('div.pointer-events-none.z-40.flex.items-center');
                    if (additionalDiv) {
                        li.style.display = 'none';
                    }
                }
            }
        });
    };

    // Function to always show a specific button div
    const showButtonDiv = () => {
        document.querySelectorAll('div.absolute.bottom-0.left-0.right-0.flex.justify-between.px-2.py-2').forEach(buttonDiv => {
            buttonDiv.style.display = ''; // Removes any previous inline style that hides the element
        });
    };

    // Initial invocation
    hideListItems();
    showButtonDiv();

    // Observe for any added nodes to apply changes dynamically
    const observer = new MutationObserver(() => {
        hideListItems();
        showButtonDiv();
    });

    observer.observe(document.body, { childList: true, subtree: true });
})();