您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa
当前为
// ==UserScript== // @name Youtube block all, not interested in all, dismiss all // @name:zh-CN Youtube block all, not interested in all, dismiss all // @name:zh-TW Youtube block all, not interested in all, dismiss all // @name:ja Youtube block all, not interested in all, dismiss all // @name:ko Youtube block all, not interested in all, dismiss all // @name:de Youtube block all, not interested in all, dismiss all // @name:es Youtube block all, not interested in all, dismiss all // @name:eo Youtube block all, not interested in all, dismiss all // @name:fr Youtube block all, not interested in all, dismiss all // @name:it Youtube block all, not interested in all, dismiss all // @name:ru Youtube block all, not interested in all, dismiss all // @name:vi Youtube block all, not interested in all, dismiss all // @name:pt-BR Youtube block all, not interested in all, dismiss all // @name:id Youtube block all, not interested in all, dismiss all // @name:ar Youtube block all, not interested in all, dismiss all // @name:bg Youtube block all, not interested in all, dismiss all // @name:cs Youtube block all, not interested in all, dismiss all // @name:tr Youtube block all, not interested in all, dismiss all // @name:el Youtube block all, not interested in all, dismiss all // @name:hu Youtube block all, not interested in all, dismiss all // @name:th Youtube block all, not interested in all, dismiss all // @version 0.1 // @description 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:zh-CN 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:zh-TW 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:ja 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:ko 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:de 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:es 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:eo 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:fr 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:it 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:ru 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:vi 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:pt-BR 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:id 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:ar 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:bg 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:cs 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:tr 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:el 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:hu 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, Não tenho interesse, No me interesa // @description:th 不感兴趣, दिलचस्पी नहीं है, 興味なし, 관심 없음, Kein Interesse,لا يهمني,Pas intéressé, Не интересует, 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://greasyfork.org/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);