Youtube block all, not interested in all, dismiss all

不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني, Не интересует, Não tenho interesse, No me interesa

目前为 2024-08-29 提交的版本。查看 最新版本

// ==UserScript==
// @name         Youtube block all, not interested in all, dismiss all
// @version      0.1
// @description  不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني, Не интересует, Não tenho interesse, No me interesa
// @author       evanlai
// @match        https://www.youtube.com/*
// @require            https://openuserjs.org/src/libs/sizzle/GM_config.js
// @require            https://cdn.jsdelivr.net/npm/[email protected]/dist/sweetalert.min.js
// @require            https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js
// @grant              GM_getValue
// @grant              GM_setValue
// @grant              none
// @namespace https://gf.qytechs.cn/users/732057
// ==/UserScript==
if (window.trustedTypes && window.trustedTypes.createPolicy) {
    window.trustedTypes.createPolicy('default', {
    createHTML: string => string,
    createScriptURL: string => string,
    createScript: string => string,
    });
}
function wait(ms) {
    return new Promise((resolve) => {
        setTimeout(resolve, ms);
    });
}
function inArray(array, element) {
  return array.indexOf(element) !== -1;
}


var runflag = true;
var firstEnterThisPage = true;
async function dismissCurrent() {
    let clickedSomething = false;
    let foundAusblenden = false;

    for (const item of document.querySelectorAll('ytd-menu-service-item-renderer')) {

        if (item.icon === (localStorage.getItem('videoOrCreator') === "video" ? "REMOVE" : "NOT_INTERESTED")) {
            clickedSomething = true;
            item.click();
        }
        // else if (item.icon === "__") {
        //     foundAusblenden = item;
        // }
    }
    if (!clickedSomething && foundAusblenden !== false) {
        foundAusblenden.click();
    }
    return true;
}
async function dismissAll() {
    let list = document.querySelectorAll('ytd-rich-grid-media button[aria-label]');

    while (firstEnterThisPage && list.length < 1) {
        await wait(1000);
        list = document.querySelectorAll('ytd-rich-grid-media button[aria-label]');
    }
    firstEnterThisPage = false;

    let i = 0;
    for (let item of list) {
        item.click();
        await wait(50);
        await dismissCurrent();
        await wait(100);
        i++;
        if (i >= parseInt(localStorage.getItem('maximumNumberOfBlocksPerSession'))) break;
    }
    if (runflag) {
        runflag = false;
        // await dismissAll();
    }
    window.location.reload();
}

window.dismissAll = function() {
    dismissAll();
}
window.openGmcSettings = function() {
    let settings = document.getElementById('J_settings');
    settings.style.display = '';

    swal({
        content: settings,
        buttons: {
            // confirm: {
            //     text: "save",
            //     value: 1
            // },
            cancel: "close",
        },
    }).then(async (value) => {
        settings.style.display = 'none';
        // if (value !== 1) return false

    });
}

function createButton() {
    var elementForInsertNewButton = document.querySelector('#start') || document.querySelector('#logo-icon') || document.querySelector('#country-code');

    var dismissAllLink = document.createElement('a');
    dismissAllLink.id = 'J_dismiss_all';
    dismissAllLink.href = 'javascript:';
    dismissAllLink.style.display = 'inline-flex';
    dismissAllLink.style.marginLeft = '2em';
    dismissAllLink.style.alignItems = 'center';
    dismissAllLink.style.verticalAlign = 'middle';
    dismissAllLink.style.color = 'gray';
    dismissAllLink.style.fontSize = '2em';
    dismissAllLink.style.lineHeight = '2em';
    dismissAllLink.style.textDecoration = 'none';
    dismissAllLink.onclick = window.dismissAll;
    dismissAllLink.textContent = '⟳';

    var openGmcSettingsLink = document.createElement('a');
    openGmcSettingsLink.id = 'J_open_settings';
    openGmcSettingsLink.href = 'javascript:';
    openGmcSettingsLink.style.display = 'inline-flex';
    openGmcSettingsLink.style.marginTop = '1px';
    openGmcSettingsLink.style.marginLeft = '16px';
    openGmcSettingsLink.style.alignItems = 'center';
    openGmcSettingsLink.style.verticalAlign = 'middle';
    openGmcSettingsLink.style.color = 'gray';
    openGmcSettingsLink.style.fontSize = '2em';
    openGmcSettingsLink.style.lineHeight = '2em';
    openGmcSettingsLink.style.textDecoration = 'none';
    openGmcSettingsLink.onclick = window.openGmcSettings;
    openGmcSettingsLink.textContent = '⋮';

    elementForInsertNewButton.appendChild(dismissAllLink);
    elementForInsertNewButton.appendChild(openGmcSettingsLink);
}

createButton();

// settings
document.addEventListener('alpine:init', () => {
    var maximumNumberOfBlocksPerSession = localStorage.getItem('maximumNumberOfBlocksPerSession');
    if(typeof maximumNumberOfBlocksPerSession === 'undefined') {
        maximumNumberOfBlocksPerSession = 12;
        localStorage.setItem('maximumNumberOfBlocksPerSession', maximumNumberOfBlocksPerSession);
    }
    Alpine.store('maximumNumberOfBlocksPerSession', {
        value: maximumNumberOfBlocksPerSession,
        valueHasChanged(){
            localStorage.setItem('maximumNumberOfBlocksPerSession', this.value);
        }
    })


    var autoMode = localStorage.getItem('autoMode');
    if(typeof autoMode === 'undefined') {
        autoMode = false;
        localStorage.setItem('autoMode', autoMode);
    }
    Alpine.store('autoMode', {
        on: autoMode,
        toggle() {
            this.on = ! this.on
            localStorage.setItem('autoMode', this.on);
        }
    })


    var videoOrCreator = localStorage.getItem('videoOrCreator');
    if(typeof videoOrCreator === 'undefined') {
        videoOrCreator = 'video';
        localStorage.setItem('videoOrCreator', videoOrCreator);
    }
    Alpine.store('videoOrCreator', {
        value: videoOrCreator,

        toggle() {
            this.value = this.value === "creator" ? "video" : "creator";
            localStorage.setItem('videoOrCreator', this.value);
        }
    })

     if(localStorage.getItem('autoMode') && localStorage.getItem('autoMode') !== 'false') window.dismissAll()
});

var gmcSettings = document.createElement('div');
gmcSettings.id = 'J_settings';

gmcSettings.innerHTML = `
    <span>Maximum number of blocks per session:<input type="text" x-data="$store.maximumNumberOfBlocksPerSession" x-model="value" x-init="$watch('value', value => $store.maximumNumberOfBlocksPerSession.valueHasChanged())"></span>
    <button x-data @click="$store.autoMode.toggle()">Automatically refresh the page and process all</button> ---> <span x-data="$store.autoMode" x-text="on"></span>
    <button x-data @click="$store.videoOrCreator.toggle()">Block video or creator</button> ---> <span x-data="$store.videoOrCreator" x-text="value"></span>

`;
document.querySelector('body').appendChild(gmcSettings);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址