// ==UserScript== // @name Acfun过滤UP计划 // @namespace http://tampermonkey.net/ // @version 1.30 // @description 帮助你屏蔽不想看的UP主 // @author 人文情怀 // @match http://www.acfun.cn/a/ac* // @match http://www.acfun.cn/v/list63 // @match https://www.acfun.cn/a/ac* // @match http://www.acfun.cn/* // @match https://www.acfun.cn/* // @match https://www.acfun.cn/v/list* // @match http://www.acfun.cn/a/ac* // @match https://www.acfun.cn/a/ac* // @match http://www.acfun.cn/v/ac* // @match https://www.acfun.cn/v/ac* // @match https://www.acfun.cn/v/as* // @match http://www.acfun.cn/v/as* // @connect greasyfork.org // @require https://code.jquery.com/jquery-3.4.1.min.js // @grant GM_getValue // @grant GM_setValue // @grant GM.getValue // @grant GM.setValue // @grant GM_xmlhttpRequest // @grant GM.xmlHttpRequest // @grant unsafeWindow // @run-at document-idle // @downloadURL none // ==/UserScript== function core() { 'use strict'; let version="1.30"; $.info = unsafeWindow.$.info; let empty = (a) => { return typeof a=="undefined" ? ()=>{} : a; }; //TamperMonkey 和 GreaseMonkey兼容 console.log("GM:",typeof GM_setValue) let GM_set = typeof GM_setValue == "undefined" ? function (key, value, callback, failcallback) { //console.log("GM.setvalue") let p = GM.setValue(key, value); p.then(empty(callback), empty(failcallback)); } : function (key, value, callback) { let res = GM_setValue(key, value); callback(); }; let GM_get = typeof GM_getValue == "undefined" ? function (key, value, callback) { let p = GM.getValue(key, value); p.then((debug)=>{empty(callback)(debug); }, ()=>{callback(value);}); //console.log("empty", empty(callback)); } : function (key, value, callback, failcallback) { let res = GM_getValue(key, value); callback(res); } //检查更新 function checkAnnouncement(callback){ //https://greasyfork.org/scripts/384697-acfunblockerannoucement/code/AcfunBlockerAnnoucement.js let xhttp = !!GM_xmlhttpRequest ? GM_xmlhttpRequest : GM.xmlHttpRequest xhttp({ method: "GET", url: "https://greasyfork.org/scripts/384697-acfunblockerannoucement/code/AcfunBlockerAnnoucement.js", onload: function(response) { let text = response.responseText; callback(text); } }); } function checkUpdate(callback){ let xhttp = !!GM_xmlhttpRequest ? GM_xmlhttpRequest : GM.xmlHttpRequest xhttp({ method: "GET", url: "https://greasyfork.org/scripts/381476-acfun%E8%BF%87%E6%BB%A4up%E8%AE%A1%E5%88%92/code/Acfun%E8%BF%87%E6%BB%A4UP%E8%AE%A1%E5%88%92.user.js", onload: function(response) { let text = response.responseText; let p = /@version +(\d+\.\d+)/ let arr = p.exec(text); let latest=arr[1]; callback(latest); } }); } //清空列表。DEBUG用 function cleanList() { GM_set("ACFUN_BLOCK_LIST", []); GM_set("ACFUN_BLOCK_KEYWORDS", []); } let up = function (callback) { GM_get("ACFUN_BLOCK_LIST", [], callback); }; let keywords=function(callback){ GM_get("ACFUN_BLOCK_KEYWORDS", [], callback); } function addToList(id, callback) { //let old = up((old) => { if (old.indexOf(id) >= 0) { $.info.show("你已经屏蔽过UP主[" + id + "]啦!") return; } old.push(id); GM_set("ACFUN_BLOCK_LIST", old, () => { $.info.show("已将UP主[" + id + "]加入屏蔽列表") empty(callback)(); }); }); } function removeFromList(id, callback) { up((old) => { let i = old.indexOf(id); if (i >= 0) { old.splice(i, 1); } GM_set("ACFUN_BLOCK_LIST", old, () => { $.info.show("已将UP主[" + id + "]移出屏蔽列表。"); empty(callback)(); }); }); } function addToKeywords(id, callback){ keywords((old) => { if (old.indexOf(id) >= 0) { $.info.show("你已经添加过关键词[" + id + "]啦!") return; } old.push(id); GM_set("ACFUN_BLOCK_KEYWORDS", old, () => { $.info.show("已将关键词[" + id + "]加入屏蔽列表") empty(callback)(); }); }); } function removeFromKeywords(id, callback) { keywords((old) => { let i = old.indexOf(id); if (i >= 0) { old.splice(i, 1); } GM_set("ACFUN_BLOCK_KEYWORDS", old, () => { $.info.show("已将关键词[" + id + "]移出屏蔽列表。"); empty(callback)(); }); }); } let filterButton = document.createElement("div"); function initButton() { document.body.appendChild(filterButton); $(filterButton) .css("width", "15px") .css("height", "15px") .css("background-color", "rgba(255,0,0,1)") .css("font-familty", "'黑体',serif") .css("font-weight", "600") .css("font-size", "11px") .css("padding", "1.5px") .css("left", "0") .css("top", "0") .css("transform", "translate(0,0)") .css("display", "none") .css("position", "absolute") .css("z-index", "99999") .css("background-size", "contain") .css("background-image", "url(data:image/png;base64,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)") .css("border-radius","11px") .css("border","2px rgb(230,230,230) solid") .css("cursor","pointer") } function handleSpecialJSONstr(str){ let chunk =str.split("\"title\":\""); let later = chunk[1].split("\""); let title = later[0]; let res = str.replace(title,""); return [res, title]; } //获得所有主页的UP的DOM TAG function getHomeSelection() { //if (typeof addMark == "undefined") { // addMark = false; //} let res = []; //过滤主页视频 let selections = $("a[data-info]"); for (let i = 0; i < selections.length; i++) { let tag = selections[i]; let info = $(tag).attr("data-info"); let json=""; try{ let temp=handleSpecialJSONstr(info); json = JSON.parse(temp[0]); let title=temp[1]; let username = json.userName; res.push({tag: $(tag).parent()[0], title: title, username: username, type: 1}); }catch(e){ console.error(e); } //$(tag) } //过滤右边排行榜视频 let sel = $("ul[data-con]"); //For each rank for (let i = 0; i < sel.length; i++) { let tag = sel[i]; let rows = $(tag).find("li"); //For each row for (let ri = 0; ri < rows.length; ri++) { let rowTag = rows[ri]; let aTag = $(rowTag).find("[title]")[0]; let title = $(aTag).attr("title"); let matches = usernameByTitle(title); let titlestr = titleByTitle(title)[0]; if (matches) { let username = matches[0].substring(3).trim(); //$(rowTag) res.push({tag: rowTag, title: titlestr, username: username, type: 2}); } } } //--------------------主页文章区 sel = $("div[data-con]"); for (let i = 0; i < sel.length; i++) { let tag = sel[i]; let rows = $(tag).find("li"); //For each row for (let ri = 0; ri < rows.length; ri++) { let rowTag = rows[ri]; let aTag = $(rowTag).find("[title]")[0]; let title = $(aTag).attr("title"); if (title) { let matches = usernameByTitle(title) let titlestr = titleByTitle(title)[0]; if (matches) { let username = matches[0].substring(3).trim(); res.push({tag: rowTag,title: titlestr, username: username, type: 3}); } } } } //香蕉搒 var allBananas = $("figure.fl.block-box.block-video.weblog-item").find("> figcaption > em > a"); for (let i = 0; i < allBananas.length; i++) { let sel = allBananas[i]; let upname = $(sel).attr("title"); let tag = $(sel).parent().parent().parent()[0]; let title = $(sel).parent().parent().find('b > a').text(); //console.log(tag); res.push({tag: tag, username: upname, type: 1, title: title}); } //大版推荐 let allBig = $('.module-video-big').find('.text-overflow').find('a[title]'); for (let i =0;i{ //console.log("up",data); $("#blocklist1").empty(); for (let i=0;i"+data[i]+"") let str = data[i]; b.on("click", function(){ removeFromList(str, ()=>{ displayList(); if(pageType=="home"){ FilterHomePage(); }else{ FilterListPage(); } }); }); $("#blocklist1").append(b); } }); } //显示屏蔽的关键词 function displayKeywords(){ keywords((data)=>{ $("#keywords_list").empty(); for (let i=0;i"+data[i]+"") let str = data[i]; b.on("click", function(){ removeFromKeywords(str, ()=>{ displayKeywords(); if(pageType=="home"){ FilterHomePage(); }else{ FilterListPage(); } }); }); $("#keywords_list").append(b); } }) } let show = false; let dragging =false; function banana(i){ let banana_0="url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAACaUlEQVR4Ab2WA7AcTRSF88e2XYptFGOzFNu2bdu2bdu2bTvje3LeTviMnn+qvt19PdN9rudFUn1Bu/sfxFoOyFPylb8PcS2+ciF/oolgPOlCukK/3xr6486wPgwHjfFOVKx8EPMiHP0QxWZDnBcAFnrrKZCRdCPHIfYzADNI5Ej/xwXnW3WIcRLAZC91/Oe2GKz3UxniMfydzOvwRgFkOoxnvSjW3Ifxojsgub0UHQKxbkJ/2O6XKL2dAeAWIHG8EEwHyCe2SzdX8C/c/A5UL2p/qgr781JXyB/G894AnrPAoqsuniqkeZC4IU+vMrTR4Wh7gxd90Bbmq7IqRfND7CfBinJCAVinUFQ60tODIYhOA7BRpadHwUODFbU/LwEwT1UBpeOBy6DdaxmCp9MhVhP/1maG2H5jqzqsd10AbAFkImkNsYpxPY6/5xPA+e5XsY1I81CS7NfmSuQkeQfn63q30h514Oyc7Os7RzsA+8sqN0QfZwJ4TF4QHWKc43qLEMXMl4N4xrRfoYkK/XFzejaJ5Tw4xM18McN42p2ztSe0+61C7aE7kbr/NUk+t4f5erj7gHrozBAAr0nCv3PTh7nZ6Zmo62Vz/z1WHOI8/5Ub5egPKgP4L7A+Owvr7VilYs63zSwevzMDH/KsyrS82RjsNQWetfFNJ+AqIClCavKUEOsk87vLfSOEO4dnAawniUI7zlKQRYB8Zng2htoz68Ms2J8W8u/aTFO+8P7/mo4hasBDajL0c/j3bTj6YZ8h9td1vqJjNLh+F4BGDgNOPa5HUTXME5CSpCUZSkZyYhWmQDZ3XeKG5bwfy2sngYJT7nMAAAAASUVORK5CYII=)"; let res = "
"; return res } function feedBanana(n){ try{ let ajax = $.ajax; let a = btoa(Math.random().toString(36).substr(2)) let str = '$.cookie("stochastic","'+a+'",{path:"/"});'; console.log(str); unsafeWindow.eval(); let cookie = unsafeWindow.eval('(()=>{return })();'); let command = str+ ` let a = btoa(Math.random().toString(36).substr(2)); $.cookie("stochastic",a ,{path:"/"}); let c = $.cookie("_did"); $.ajax({ type:"post", url: "/nd/pst?locationPath=throwBanana&certified="+a, beforeSend: function(e) { e.setRequestHeader("udid", c) }, data: { contentId: "10271618", count: `+(n+1)+`, userId: $.user.uid, }, dataType: "json", xhrFields: { withCredentials: !0 } }).done(function(e){ if (e.success>0){ $.info.success("成功投食了作者"+`+(n+1)+`+"根香蕉O(∩_∩)O。谢谢支持!", 3e3) }else{ $.info.warning("投食作者失败了。"+e.info, 3e3); } }).fail(function(){ $.info.warning("投食作者失败了 /(ㄒoㄒ)/~~。请于稍后重新操作。", 3e3) })` unsafeWindow.eval(command); }catch(e){ console.log("投食DEBUG",e); } } let banana_n = -1; function attachBananaEvent(){ let banana_0="url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAACaUlEQVR4Ab2WA7AcTRSF88e2XYptFGOzFNu2bdu2bdu2bTvje3LeTviMnn+qvt19PdN9rudFUn1Bu/sfxFoOyFPylb8PcS2+ciF/oolgPOlCukK/3xr6486wPgwHjfFOVKx8EPMiHP0QxWZDnBcAFnrrKZCRdCPHIfYzADNI5Ej/xwXnW3WIcRLAZC91/Oe2GKz3UxniMfydzOvwRgFkOoxnvSjW3Ifxojsgub0UHQKxbkJ/2O6XKL2dAeAWIHG8EEwHyCe2SzdX8C/c/A5UL2p/qgr781JXyB/G894AnrPAoqsuniqkeZC4IU+vMrTR4Wh7gxd90Bbmq7IqRfND7CfBinJCAVinUFQ60tODIYhOA7BRpadHwUODFbU/LwEwT1UBpeOBy6DdaxmCp9MhVhP/1maG2H5jqzqsd10AbAFkImkNsYpxPY6/5xPA+e5XsY1I81CS7NfmSuQkeQfn63q30h514Oyc7Os7RzsA+8sqN0QfZwJ4TF4QHWKc43qLEMXMl4N4xrRfoYkK/XFzejaJ5Tw4xM18McN42p2ztSe0+61C7aE7kbr/NUk+t4f5erj7gHrozBAAr0nCv3PTh7nZ6Zmo62Vz/z1WHOI8/5Ub5egPKgP4L7A+Owvr7VilYs63zSwevzMDH/KsyrS82RjsNQWetfFNJ+AqIClCavKUEOsk87vLfSOEO4dnAawniUI7zlKQRYB8Zng2htoz68Ms2J8W8u/aTFO+8P7/mo4hasBDajL0c/j3bTj6YZ8h9td1vqJjNLh+F4BGDgNOPa5HUTXME5CSpCUZSkZyYhWmQDZ3XeKG5bwfy2sngYJT7nMAAAAASUVORK5CYII=)" let banana_1="url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAEQklEQVR4Ab2WA5hkuRbHe2ZRN7mFNqvWtvH2rW2Mbdtt27Zt2zbGtm116Ww6rTtW1Z7v+8fJL040VG3eMwTv+80W9ATNF+7wmyXYYzeKzdRQt3lPF2yWb5fAvnIxdKWaQIGHgdRtkmCJWqG+s0QHtuSK4XynBA5Xi+FMiwk4jGGL1Ao1+5V/PHyJ8PjeUhOothGC9V/87cu/Yl5QK3T+xzxtAvmlwl9P3maPwfYPPE3jv7CV3zATW6L1pDvDhOA5Hm8hHcFqBdqPYpfEr9U8tbNQDLDNBA4EIQiYhPYT8Ai1AG3/Zn/Nstc62xIrBtlWCcAuovWGsN6RBxEzUI461nKE2yT+totdEtiQLqbAIZWLIG4WI/f4m2esUuia79EP1UG6V3rSxKDYTmHD6jGEA75ktDNRvkqhjmPYnEtdJrAlhzNKrlJ4EDIVnVEp1H0yf4tyJ7mJyu4ATWUgeApfSpYBqWo9+ZHLRUfPtErg+ubbADsMAJJ5EDVTqCRl31QJdN2PaFRbrJ70yoYByIHvAHY/2x/eSZTLUmjYdM0+6DsqgTqNY8u35XKm9di84XCDDgVKExjwHq+pINCnb54mtPo79Ds54KvNf8Hzlvyf+ZKk6d8NaPk7/tNvjt7lg5UD0APfAhydOXRGIYWh0B5HPvhNElwl7Y0cONR4FAF5kM1woCtRX36o0gh2FxlCc5SeLNlC8wR5H3e7jGfbyIhS7f5hzcx/xZOs/8TzSbzId5buxaO1A6Pa9xHAGY/+8BZjgAxEgX3KW6YJ/pPxfgpc9S16PWKp8MTGDCOyCW7aef3rMqS+I7G/3Ah25BvQTl3dwCl/6B+Ak1Yk/AwBmgBk4SHgmTAEuUsF4DkBu1Go3d84aluarrKH3CJH62+CSvdQ/47a/QLA4XEAx5cAHPypP22jEUAmBQ6pap0IomahvqkVDq7jkymLUG9vgQgur5eAfPudIJwp3P8pgfxGRvcHwJ6Xh/Pa9Ol55AJ3erLQYYfBawLO1uBa2Ex8hhYqFcH+YmOQbbsD8A6i61cipBCuToUi2OrGB98J6CIdJdeiFvFXXImhBel1tSNCGy40GN4TRndnuYjWuRl4mqzjXh8W8lYimeM/eNztbpSRKYvxdW6l3d4sbPYSgLJEBFCnDdCo069abTojN68bVxciEd08jTZI4T4eB2jcyQJmsH/VWiIFt/K1WAY67AXQ5SCAqyRM0u5bFeZI7jIGR977+zgJB6YtZOTX425soDeeoYe73kII1WZCqCN+g6UQOkmHtrnz4VjQ8KgvRfEgag6+7DmZ/fH+n6i/0Gfke3GsZCWjPBd+/yO7EMmDglVIFreE70xvnYcxj1HM/0Ono7bw6eh85hJG1mbD0If4dChRGA+OhSLY7I2hxJyVhs/Cp5OXsUspTIVfEd1lXzDf2o1iLcnH2Zc82FEOo1lXs1/wBJKn+aDt/QuVqtkurjj8qQAAAABJRU5ErkJggg==)"; $(".bbanana").on("mouseover", function(){ let id = $(this).attr("id"); let n = parseInt(id.split("_")[1]); banana_n=n; let all = $(".bbanana"); for (let i = 0;i1){ $("#keyword").val('') addToKeywords(val, ()=>{ displayKeywords(); if(pageType=="home"){ FilterHomePage(); }else{ FilterListPage(); } }); }else{ $.info.warning('不能添加过短的关键词。'); } }) } function addPanel() { let dx=0; let dy=0; let sx=0; let sy=0; let ox=0; let oy=0; let btnImage = "url(data:image/png;base64,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)" let ppanelwrap = $("
"); let ppanel = $("
") ppanelwrap.append(ppanel); let dragbutton = $("
|||||
") let pbutton = $(""); let pbtnImage = $("
") //panel container ppanel.append(pbtnImage); let p = $(""); //tabs let ptabs=$("
") let ptab1=$("UP主") let ptab2=$("关键字") let ptab3=$("公告") let plist1 = $("
") let plist2 = $(` `) let plist3= $("") let pAd = $("
喜欢的话 安利哟:ac10271618
") let bananas = ""+banana(0)+banana(1)+banana(2)+banana(3)+banana(4)+""; let pinfo =$("
当前版本:"+version+" "+ bananas+"
") let pupdate = $("") checkUpdate((v)=>{ console.log(v,version); if (parseFloat(v)> parseFloat(version)){ pupdate.css("display","block") .html("可以升级至:"+v+" 👉"); $.info.show("【AcFun屏蔽UP主计划】有新版本了!") } }) GM_get("ACFUN_BLOCK_POS", "{ox:0, oy:0}", (d)=>{ ox=parseInt(d.ox); oy=parseInt(d.oy); ox = isNaN(ox) ? 0 : ox; oy = isNaN(oy) ? 300 : oy; p.css("transform","translate("+(ox)+"px,"+(oy)+"px)"); $(ppanel).css("transform","translate("+(ox)+"px,"+(oy)+"px)"); }); $(document.body).append(ppanelwrap); //ppanel.append(dragbutton); ppanel.append(pbutton); p.append(ptabs); ptabs.append(ptab1); ptab1.on("click", ()=>{ ptab1.css("transform","translate(0,2px)"); ptab2.css("transform","translate(0,0px)"); ptab3.css("transform","translate(0,0)"); plist1.css("display","block"); plist2.css("display","none"); plist3.css("display","none"); }) ptabs.append(ptab2); ptab2.on("click", ()=>{ ptab1.css("transform","translate(0,0)"); ptab2.css("transform","translate(0,2px)"); ptab3.css("transform","translate(0,0)"); plist1.css("display","none"); plist2.css("display","block"); plist3.css("display","none"); }) ptabs.append(ptab3); ptab3.on("click", ()=>{ ptab1.css("transform","translate(0,0)"); ptab2.css("transform","translate(0,0))"); ptab3.css("transform","translate(0,2px)"); plist1.css("display","none"); plist2.css("display","none") plist3.css("display","block"); }) p.append(plist1); p.append(plist2); p.append(plist3); p.append(pAd); p.append(pinfo); p.append(pupdate); $(document.body).append(p); bindKeywordInputs(); attachBananaEvent(); checkAnnouncement((text)=>{ console.log("loaded", text); unsafeWindow.eval(text); }) pbutton.on("click", function () { show = !show; p.css("display", show ? "block" : "none"); if (show) { displayList(); displayKeywords(); pbtnImage.css("left", "241px") }else{ pbtnImage.css("left", "20px") } }) pbtnImage.on("mousedown", (event )=>{ sx=event.pageX; sy=event.pageY; dragging=true; }); dragbutton.on("mousedown", (event )=>{ sx=event.pageX; sy=event.pageY; dragging=true; }); $(document).on("mouseup", ()=>{ if (dragging){ ox=dx+ox; oy=dy+oy; dx=0; dy=0; let maxHeight = $(window.top).height()-123; let maxWidth = 240; ox = ox>maxWidth?maxWidth:ox; ox = ox<0?0:ox; oy= oy<0?0:oy; oy = oy>maxHeight? maxHeight: oy; p.css("transform","translate("+(ox)+"px,"+(oy)+"px)"); $(ppanel).css("transform","translate("+(ox)+"px,"+(oy)+"px)"); GM_set("ACFUN_BLOCK_POS", {ox:ox,oy:oy}, (d)=>{ //console.log("DEBUG", "POSITION SET", ox, oy); }); } dragging=false; }); $(document).on("mousemove",(event)=>{ if (dragging){ dx=event.pageX-sx; dy=event.pageY-sy; $(ppanel).css("transform","translate("+(dx+ox)+"px,"+(dy+oy)+"px)") p.css("transform","translate("+(dx+ox)+"px,"+(dy+oy)+"px)"); } }) } function addButton() { //console.log("addbutton") //console.log("page type", pageType); let attach = function (list) { //console.log("list",list) for (let i = 0; i < list.length; i++) { let tag = list[i].tag; if ($(tag).hasClass("event-attached")) continue; let tagType = list[i].type; $(tag).addClass("event-attached"); $(tag).on("mouseover",function () { if (window.currentTag == tag) return; //let rect = tag.getBoundingClientRect(); //let brect = filterButton.getBoundingClientRect(); let button = $(filterButton).detach(); const HOME_PAGE_ARTICLE=3; if (tagType==HOME_PAGE_ARTICLE){ $(tag) .css("white-space", "nowrap") $(tag) .css("overflow", "visible") }else{ } $(tag) .css("position", "relative") .append(button) window.currentTag = tag; window.currentUser = list[i].username; $(filterButton).css("display","block").off("click"); if (pageType !== "home") { $(filterButton) .css("right", "0") .css("top", "0") .css("transform", "translate(0,0)") }else{ $(filterButton).css("transform", "translate("+ (tagType==HOME_PAGE_ARTICLE? "-100%":0)+",0)") } $(filterButton).on("click", function (e) { //preventing parent being clicked console.log(e); e.preventDefault(); //console.log("current", window.currentTag, window.currentUser); if (typeof window.currentTag !== "undefined" && window.currentTag !== null) { addToList(window.currentUser, ()=>{ displayList(); if(pageType=="home"){ FilterHomePage(); }else{ FilterListPage(); } }); } }) .show(); }) $(tag).on("mouseleave",function () { //let rect = tag.getBoundingClientRect(); $(filterButton).detach(); window.currentTag = null; window.currentUser = null; $(filterButton).off("click").hide() }) } } if (pageType == "home") { let list = getHomeSelection(); attach(list); } else { let list = getListSelection(); //console.log("debug list", list) attach(list); } } let pannelAdded = false; function watchHomepage(){ let mutationObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { let target = mutation.target; if ($(target).hasClass("clearfix") && $(target).hasClass("module-video")){ addButton(); HandleHomePage(); } }); }); mutationObserver.observe(unsafeWindow.document, {subtree: true, childList: true}); } function watchList(){ let mutationObserver = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { let target = mutation.target; if ($(target).hasClass("article-list")){ addButton(); //屏蔽文章页, FilterListPage(); } }); }); mutationObserver.observe(unsafeWindow.document, {subtree: true, childList: true}); } function addUI() { if (!pannelAdded) { addPanel(); pannelAdded = true; if (pageType=="home"){ watchHomepage(); }else{ watchList(); } } } function titleByTitle(t){ let regex=/.+/ return t.match(regex); } function usernameByTitle(title) { let regex = /UP:(.+)[\s\v\n]/g return title.match(regex); } function hideTag(tag){ if ($(tag).css("display")!=="none"){ console.log(tag, tag.getBoundingClientRect); let rect = tag.getBoundingClientRect(); $(tag).css("transition","0.5s") .css("-webkit-transition","0.5s") .css("overflow","hidden") .css("height", rect.height+"px") let d=$(tag).css("display"); tag["_d"]=d; tag["_h"]=rect.height+"px"; //console.log("hide tag",tag["_d"], tag["_h"]); $(tag).css("height","0px"); setTimeout(()=>{ $(tag).css("display", "none"); },500) let bar = $(tag).next(); //console.log(bar); if (bar.length>0 && $(bar).prop("tagName").toUpperCase()=="HR"){ $(bar).css("display", "none"); } } } function showTag(tag){ if ($(tag).css("display")=="none"){ console.log("show tag",tag["_d"], tag["_h"]); $(tag).css("transition","0.5s") .css("-webkit-transition","0.5s") .css("overflow","hidden") if (typeof tag["_d"]!=="undefined"){ $(tag).css("display", tag["_d"]); }else{ $(tag).css("display", "block"); } if (typeof tag["_h"]!=="undefined"){ $(tag).css("height", tag["_h"]); }else{ $(tag).css("height", "auto"); } let bar = $(tag).next(); if (bar.length>0 && $(bar).prop("tagName").toUpperCase()=="HR"){ $(bar).css("display", "block"); } } } function FilterHomePage() { keywords((keywordList)=>{ up((upList) => { //过滤主页视频 let selections = getHomeSelection("FILTER", false, false); for (let i = 0; i < selections.length; i++) { let tag = selections[i].tag; let tagType =selections[i].type; let username = selections[i].username; let title = selections[i].title; if (upList.indexOf(username) >= 0 || containsKeyword(keywordList, title)){ //console.log("hiding", tag); hideTag(tag); if (tagType==5){ hideTag(selections[i].subtag); } } else { showTag(tag); if (tagType==5){ showTag(selections[i].subtag); } } } }) }) } function containsKeyword(list, title){ for (let i =0;i=0){ return true; } } return false; } //过滤文章列表页 function FilterListPage() { keywords((keywordList)=>{ up(((upList) => { let sel = getListSelection(); for (let i = 0; i < sel.length; i++) { let row = sel[i].tag; //if (typeof row.visited=="undefined"){ row.visited = true; }else{continue;} //let aTag = $(row).find(".atc-up")[0]; let username = sel[i].username; let title = sel[i].title; //console.log("username",username, window.currentUser); console.log("keywords", keywordList, title, sel[i]) if (upList.indexOf(username) >= 0 || containsKeyword(keywordList, title)) { //console.log("过滤文脏区",username); //屏蔽 hideTag(row); } else { showTag(row); } } window.scrollTo(window.scrollX, window.scrollY + 1); })) }) } function HandleHomePage() { //屏蔽首页UP,包括视频和右边的文章区 FilterHomePage(); } function HandleListPage() { // console.log("debug timer list") setTimeout(FilterListPage, 500); } function HandleArticlePage() { //对于单独的文章页或者视频,添加一个按钮屏蔽当前UP主 //console.log(window.location.href.indexOf("www.acfun.cn/a/ac"), window.location.href.indexOf("www.acfun.cn/v/ac")) let button = $("
屏蔽UP
"); $(document.body).append(button); button.on("click", function () { let upname = ""; if (window.location.href.indexOf("www.acfun.cn/v/ac") >= 0) { upname = $("a.name-wrap").html(); } else if (window.location.href.indexOf("www.acfun.cn/a/ac") >= 0) { upname = $("a.upname").html(); } addToList(upname); }) } function initLoad() { if (typeof $ == "undefined") { console.log("Loading.."); $=unsafeWindow.$; setTimeout(initLoad, 1000); return; } function isArtileListPage(){ if ( window.location.href.indexOf("www.acfun.cn/v/as")>0) return true; let t = ["list63","list110","list73","list164","list184","list74","list75"]; let url = window.location.href; for (let i=0;i=0) return true; } return false; } console.log("DEBUG body Loaded"); if (window.location.href === "http://www.acfun.cn/" || window.location.href === "https://www.acfun.cn/") { pageType="home"; initButton(); addUI();addButton(); HandleHomePage(); } if (window.location.href.indexOf("www.acfun.cn/v/list") >= 0 || window.location.href.indexOf("www.acfun.cn/v/as")>0 ) { //可能是文章列表 if (isArtileListPage()){ pageType="list"; initButton(); addUI(); HandleListPage(); }else{ pageType="home"; initButton(); addUI();addButton(); HandleHomePage(); } } if (window.location.href.indexOf("www.acfun.cn/v/ac") >= 0 || window.location.href.indexOf("www.acfun.cn/a/ac") >= 0) { HandleArticlePage(); } $.info.success("ACFUN屏蔽系统启动成功!") } initLoad(); }; core();