您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A supplement for an adblocker
// ==UserScript== // @name Facebook Unsponsored // @version 3.3 // @namespace AAAAAAAA.com // @description A supplement for an adblocker // @author ducktrshessami // @match *://www.facebook.com/* // @run-at document-end // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js // ==/UserScript== (function () { var language = document.documentElement.lang; // Borrowing some stuff from solskido's Facebook unsponsored var sponsorText = { 'af': ['Geborg'], 'am': ['የተከፈለበት ማስታወቂያ'], 'ar': ['إعلان مُموَّل'], 'as': ['পৃষ্ঠপোষকতা কৰা'], 'ay': ['Yatiyanaka'], 'az': ['Sponsor dəstəkli'], 'be': ['Рэклама'], 'bg': ['Спонсорирано'], 'br': ['Paeroniet'], 'bs': ['Sponzorirano'], 'bn': ['সৌজন্যে'], 'ca': ['Patrocinat'], 'cb': ['پاڵپشتیکراو'], 'co': ['Spunsurizatu'], 'cs': ['Sponzorováno'], 'cx': ['Giisponsoran'], 'cy': ['Noddwyd'], 'da': ['Sponsoreret'], 'de': ['Gesponsert'], 'el': ['Χορηγούμενη'], 'en': ['Sponsored', 'Chartered'], 'eo': ['Reklamo'], 'es': ['Publicidad', 'Patrocinado'], 'et': ['Sponsitud'], 'eu': ['Babestua'], 'fa': ['دارای پشتیبانی مالی'], 'fi': ['Sponsoroitu'], 'fo': ['Stuðlað'], 'fr': ['Commandité', 'Sponsorisé'], 'fy': ['Sponsore'], 'ga': ['Urraithe'], 'gl': ['Patrocinado'], 'gn': ['Oñepatrosinapyre'], 'gx': ['Χορηγούμενον'], 'hi': ['प्रायोजित'], 'hu': ['Hirdetés'], 'id': ['Bersponsor'], 'it': ['Sponsorizzata'], 'ja': ['広告'], 'jv': ['Disponsori'], 'kk': ['Демеушілік көрсеткен'], 'km': ['បានឧបត្ថម្ភ'], 'lo': ['ໄດ້ຮັບການສະໜັບສະໜູນ'], 'mk': ['Спонзорирано'], 'ml': ['സ്പോൺസർ ചെയ്തത്'], 'mn': ['Ивээн тэтгэсэн'], 'mr': ['प्रायोजित'], 'ms': ['Ditaja'], 'ne': ['प्रायोजित'], 'nl': ['Gesponsord'], 'or': ['ପ୍ରଯୋଜିତ'], 'pa': ['ਸਰਪ੍ਰਸਤੀ ਪ੍ਰਾਪਤ'], 'pl': ['Sponsorowane'], 'ps': ['تمويل شوي'], 'pt': ['Patrocinado'], 'ru': ['Реклама'], 'sa': ['प्रायोजितः |'], 'si': ['අනුග්රහය දක්වන ලද'], 'so': ['La maalgeliyey'], 'sv': ['Sponsrad'], 'te': ['స్పాన్సర్ చేసినవి'], 'th': ['ได้รับการสนับสนุน'], 'tl': ['May Sponsor'], 'tr': ['Sponsorlu'], 'tz': ['ⵉⴷⵍ'], 'uk': ['Реклама'], 'ur': ['تعاون کردہ'], 'vi': ['Được tài trợ'], 'zh-Hans': ['赞助内容'], 'zh-Hant': ['贊助'] }; var headerText = [ // Sorry this doesn't have localization. Feel free to edit this array as you see fit. "Coronavirus (COVID-19) Information", "Happening Now", "Paid for by", "Similar to Posts You've Interacted With", "Suggested Live", "Suggested Page to Follow", "Suggested for You", "Suggested Events" ]; function textAssemble(elem) { return $(elem) .contents() .filter(function () { return this.nodeType == 3; }) .add($("*", elem) .filter(function () { let jq = $(this); return jq.is(":visible") && this.childNodes.length === 1 && this.childNodes[0].nodeType == 3 && jq.css("position") == "relative"; }) ) .text(); } async function hitlist() { list = $("span:parent:visible,div:parent:visible").filter(function () { if (this.getBoundingClientRect().bottom > 0) { let text = textAssemble(this).trim(); return sponsorText[language].includes(text) || sponsorText[language].some(sponsor => text.includes(sponsor)); } }); } function side() { // Things to hide once at the start let foo = $(single_selector).has(list); if (foo.length) { foo.hide(); } } function helpthething() { // Help filter posts if (this.getBoundingClientRect().bottom > 0) { let subtitle, header; subtitle = Boolean($(this).has(list).length); header = Boolean($(header_selector, this).length); return subtitle || header; } } function dothething() { // Get and hide posts let targets = $("[role='feed'] > div[data-pagelet]:visible").filter(helpthething); side(); if (targets.length) { targets.remove(); console.log("Target(s) destroyed"); } } function withCooldown(callback, ms) { let ready = true; return function (...params) { if (ready) { ready = false; setTimeout(() => { ready = true; }, ms); return callback(...params); } }; } function main() { if ($("[role='feed']").length) { getHitlist(); doThing(); } } var list = $(); var getHitlist = withCooldown(hitlist, 1000); var doThing = withCooldown(dothething, 500); var observer = new MutationObserver(main); var single_selector = "[data-pagelet='RightRail'] > div:visible"; // var label_selector = sponsorText[language].map(text => "a[aria-label='" + text + "']:visible").join(", ") + ", a > span[aria-labelledby]:visible"; // Store parsed selectors for continuous use var header_selector = headerText.map(text => "div:first-child:not(:only-child):contains('" + text + "'):visible").join(", "); observer.observe(document.body, { // Wait for page change childList: true, subtree: true }); })();