您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
hides selected authors and disliked videos on COUB.COM
// ==UserScript== // @name COUB.COM - hide selected authors and disliked videos // @namespace https://coub.com // @version 1.2 // @description hides selected authors and disliked videos on COUB.COM // @author Rhoads // @license CC-BY-SA-4.0 // @icon https://cs14.pikabu.ru/avatars/2609/m2609364-1795047659.png // @match https://coub.com/* // @run-at document-start // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // ==/UserScript== (async function () { "use strict"; // author href with forward '/' let BLACKLIST = new Set(JSON.parse(GM_getValue("CoubBannedAuthors", "[]"))); BLACKLIST.forEach((coubAuthor) => { GM_registerMenuCommand(`Unban ${coubAuthor}`, function() { UnbanAuthor(coubAuthor); }); }); let lastCleanedPageID = "-1"; function cleanUp(targetNode) { const lastPage = document.querySelector(".coubs-list__inner .page:last-child"); if (lastCleanedPageID === lastPage.dataset.pageId) { return; } lastCleanedPageID = lastPage.dataset.pageId; const coubs = lastPage.querySelectorAll("div.coub--normal-card"); coubs.forEach((coub) => { //let coubTitle = coub.querySelector("h5.description__title > a")?.title; if (!!coub.querySelector(".coub__dislike-button.-on")) { //console.log(`[COUB.COM - BLACKLIST] Removed disliked coub: ${coubTitle}`); coub.remove(); return; } let coubDescription = coub.querySelector("div.coub-description__about__inner"); let coubAuthor = coubDescription.querySelector("a.hbold.coub-description__about__user")?.getAttribute("href"); if (BLACKLIST.has(coubAuthor)) { //console.log(`[COUB.COM - BLACKLIST] Removed blacklisted coub author: ${coubAuthor}`); coub.remove(); return; } // add BAN button var button = document.createElement('button'); button.setAttribute('id', 'ButtonBanAuthor'); button.innerHTML = "Ban!"; coubDescription.appendChild(button).addEventListener("click", function() { ButtonBanAuthorClickAction(coubAuthor); }, false); }); } function ButtonBanAuthorClickAction (coubAuthor) { //console.log(`[COUB.COM - BLACKLIST] Blacklist coub author: ${coubAuthor}`); BLACKLIST.add(coubAuthor); SaveBlacklist(); } function UnbanAuthor(coubAuthor) { //console.log(`[COUB.COM - BLACKLIST] Unban: ${coubAuthor}`); BLACKLIST.delete(coubAuthor); SaveBlacklist(); } function SaveBlacklist() { GM_setValue("CoubBannedAuthors", JSON.stringify([...BLACKLIST])); } async function waitUntilExists(selector) { return new Promise(function check(resolve, reject) { let el = document.querySelector(selector); if (el) { return resolve(el); } setTimeout(function () { check(resolve, reject); }, 100); }); } await waitUntilExists(".coubs-list__inner > .page"); cleanUp(); window.addEventListener("scroll", cleanUp); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址