// ==UserScript== // @name Acfun过滤UP计划 // @namespace http://tampermonkey.net/ // @version 1.26 // @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.xmlHttpRequest // @grant unsafeWindow // @run-at document-idle // @downloadURL none // ==/UserScript== function core() { 'use strict'; let version="1.26"; $.info = unsafeWindow.$.info; let empty = (a) => { return typeof a=="undefined" ? ()=>{} : a; }; //TamperMonkey 和 GreaseMonkey兼容 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 checkUpdate(callback){ GM.xmlHttpRequest({ 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", []); } let up = function (callback) { GM_get("ACFUN_BLOCK_LIST", [], 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)(); }); }); } 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; } //获得所有主页的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{ json = JSON.parse(handleSpecialJSONstr(info)); let username = json.userName; res.push({tag: $(tag).parent()[0], 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) if (matches) { let username = matches[0].substring(3).trim(); //$(rowTag) res.push({tag: rowTag, 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) if (matches) { let username = matches[0].substring(3).trim(); res.push({tag: rowTag, 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]; //console.log(tag); res.push({tag: tag, username: upname, type: 1}); } return res; } function getListSelection() { let res = []; let sel = $("div.weblog-item"); //console.log("sel weblog") for (let i = 0; i < sel.length; i++) { let row = sel[i]; let aTag = $(row).find(".atc-up")[0]; let username = $(aTag).attr("title"); res.push({tag: row, username: username, type: 4}); } return res; } let pageType = "home"; function displayList() { up((data)=>{ $("#blocklist").empty(); for (let i=0;i"+data[i]+"") let str = data[i]; b.on("click", function(){ removeFromList(str, ()=>{ displayList(); if(pageType=="home"){ FilterVideos(); FilterArticles(); }else{ FilterListPage(); } }); }); $("#blocklist").append(b); } }); } let show = false; let dragging =false; function banana(i){ 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;i"); let dragbutton = $("
|||||
") let pbutton = $(""); let p = $(""); let plist = $("
") 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(ppanel); ppanel.append(dragbutton); ppanel.append(pbutton); p.append(plist); p.append(pAd); p.append(pinfo); p.append(pupdate); $(document.body).append(p); attachBananaEvent(); pbutton.on("click", function () { show = !show; p.css("display", show ? "block" : "none"); if (show) { displayList(); } }) 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)") } }) } 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; // console.log("debug tag",tag); $(tag).addClass("event-attached"); $(tag).on("mousemove",function () { if (window.currentTag == tag) return; let rect = tag.getBoundingClientRect(); let brect = filterButton.getBoundingClientRect(); let button = $(filterButton).detach(); $(tag) .css("white-space", "nowrap") .css("overflow", "visible") .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)") } $(filterButton) .on("click", function () { //console.log("current", window.currentTag, window.currentUser); if (typeof window.currentTag !== "undefined" && window.currentTag !== null) { addToList(window.currentUser, ()=>{ displayList(); if(pageType=="home"){ FilterVideos(); FilterArticles(); }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("ATTACHED"); attach(list); } else { let list = getListSelection("ATTACHED"); //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 usernameByTitle(title) { let regex = /UP:(.+)[\s\v\n]/g return title.match(regex); } function hideTag(tag){ if ($(tag).css("display")!=="none"){ $(tag).css("transition","0.5s") .css("-webkit-transition","0.5s") .css("overflow","hidden") let d=$(tag).css("display"); tag["_d"]=d; tag["_h"]=$(tag).css("height") 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"]); $(tag).css("height", tag["_h"]); }else{ $(tag).css("display", "block"); } let bar = $(tag).next(); if ($(bar).prop("tagName").toUpperCase()=="HR"){ $(bar).css("display", "block"); } } } function FilterVideos() { up((upList) => { //过滤主页视频 let selections = getHomeSelection("FILTER", false, false); for (let i = 0; i < selections.length; i++) { let tag = selections[i].tag; let username = selections[i].username; if (upList.indexOf(username) >= 0) { //console.log("hiding", tag); hideTag(tag); } else { showTag(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) if (matches) { let username = matches[0].substring(3).trim(); if (upList.indexOf(username) >= 0) { //找到了,隐藏本条 hideTag(rowTag); } else { showTag(rowTag); } } } } }); } //过滤主页文章区 function FilterArticles() { up((upList) => { let 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); if (matches) { let username = matches[0].substring(3).trim(); if (upList.indexOf(username) >= 0) { //找到了,隐藏本条 // console.log("过滤文脏区 rank=", i, "row=",ri,"username=",username); hideTag(rowTag); } else { showTag(rowTag); } } } } } }); } //过滤文章列表页 function FilterListPage() { 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; //console.log("username",username, window.currentUser); if (upList.indexOf(username) >= 0) { //console.log("过滤文脏区",username); //屏蔽 hideTag(row); } else { showTag(row); } } window.scrollTo(window.scrollX, window.scrollY + 1); })) } function HandleHomePage() { //屏蔽首页UP,包括视频和右边的文章区 FilterVideos(); FilterArticles(); //console.log("change buttons", changeButtons); //setTimeout(HandleHomePage, 1000); } 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..", typeof unsafeWindow.$); $=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();