// ==UserScript==
// @name Acfun过滤UP计划
// @namespace http://tampermonkey.net/
// @version 1.31
// @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 gf.qytechs.cn
// @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
// ==/UserScript==
function core() {
'use strict';
let version="1.31";
$.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) {
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){
let xhttp = !!GM_xmlhttpRequest ? GM_xmlhttpRequest : GM.xmlHttpRequest
xhttp({
method: "GET",
url: "https://gf.qytechs.cn/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://gf.qytechs.cn/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) {
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() {
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();
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();
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<allBig.length; i++){
let title = $(allBig[i]).attr("title");
let regx = /UP:(.+)/
let r = regx.exec(title);
let username = r[1];
let tag = $(allBig[i]).parent().parent();
let subtag = tag.prev();
let titlestr = titleByTitle(title)[0];
res.push({tag: subtag[0], subtag: tag[0], username: username, type: 5, title: titlestr});
}
// console.log("res",res);
return res;
}
function getListSelection() {
let res = [];
let sel = $("div.weblog-item");
for (let i = 0; i < sel.length; i++) {
let row = sel[i];
let aTag = $(row).find(".atc-up")[0];
let username = $(aTag).attr("title");
let title = $(row).find('a[title]').attr("title");
res.push({tag: row, username: username, type: 4, title: title});
}
return res;
}
let pageType = "home";
//显示/刷新屏蔽的UP主
function displayList() {
up((data)=>{
//console.log("up",data);
$("#blocklist1").empty();
for (let i=0;i<data.length;i++){
let style1 = "font-size:13px;display:inline-block;margin:2px;height:18px;background-color:white;"
let style2 = "width:18px; height:18px; line-height:18px; padding: 2px; background-color: rgb(255,120,120); border-width:0; font-size:15px";
let b = $("<div class='blockname' style='"+style1+"'><span>"+data[i]+"</span><button style='"+style2+"'>×</button></div>")
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.length;i++){
let style1 = "font-size:13px;display:inline-block;margin:2px;height:18px;background-color:white;"
let style2 = "width:18px; height:18px; line-height:18px; padding: 2px; background-color: rgb(255,120,120); border-width:0; font-size:15px";
let b = $("<div class='blockname' style='"+style1+"'><span>"+data[i]+"</span><button style='"+style2+"'>×</button></div>")
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 = "<div id='banana_"+i+"'class='bbanana' style='cursor: pointer;display:inline-block;height:20px; width:20px; background-image:"+banana_0+";background-position: center; background-repeat:no-repeat; background-size:contain'></div>";
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<all.length;i++){
let tid = $(all[i]).attr("id");
let tn = parseInt(tid.split("_")[1]);
if (tn<=n){
$(all[i]).css("background-image",banana_1)
}else{
$(all[i]).css("background-image",banana_0)
}
}
})
.on("click", function(){
let id = $(this).attr("id");
let n = parseInt(id.split("_")[1]);
feedBanana(n);
})
$("#banana_contain").on("mouseleave",function(){
$(".bbanana").css("background-image",banana_0)
})
}
function bindKeywordInputs(){
$('#keyword').keypress(function(e){
if(e.keyCode==13)
$('#enterKeyword').click();
});
$('#enterKeyword').on("click", function(){
let val = $("#keyword").val();
if (val.length>1){
$("#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 = $("<div id='blockbuttoncontainer' style=';z-index:999;position:fixed;left: 0; top: 0px;text-orientation:upright;'></div>");
let ppanel = $("<div style='position: relative;height: 100px; with: 22px;'></div>")
ppanelwrap.append(ppanel);
let dragbutton = $("<div id='blockdrag' style='height:22px; width: 23px; background-color:rgb(230, 121, 126);text-align:center;cursor:grab; user-select:none;-webkit-user-select:none'>|||||</div>")
let pbutton = $("<button id='blockbutton' style='height: 100px; padding: 3px; width: 23px;background-color:rgb(255, 193, 193); border-width:0;'>屏蔽设置</button>");
let pbtnImage = $("<div style='cursor:grab; position: absolute; left: 20px; height: 100px; width: 66px; background-image:"+btnImage+"; background-size:contain; background-repeat: no-repeat'></div>")
//panel container
ppanel.append(pbtnImage);
let p = $("<div id='blockpanel' style=' width: 218px;display:none; padding: 0px;z-index:998;position:fixed; background-color:rgb(255, 196, 196);left:23px; top: 0px;; '></div>");
//tabs
let ptabs=$("<div id='tabs' style='position:relative;height: 21px;border-bottom: solid white 1px; font-size: 13px'></div>")
let ptab1=$("<a style='padding: 1px;position:absolute; bottom:0; border-style:solid;display:inline-block; margin-left: 5px; height:16px; border-width: 1px 1px 0 1px; border-color: white; z-index: 9999; transform: translate(0,2px); background-color:#FFC4C4;'>UP主</a>")
let ptab2=$("<a style='padding: 1px;position:absolute; bottom:0; left:49px; border-style:solid;display:inline-block; height:16px; border-width: 1px 1px 0 1px; border-color: white; z-index: 9999; transform: translate(0,0px); background-color: #ffefa2;'>关键字</a>")
let ptab3=$("<a style='padding: 1px;position:absolute; bottom:0; right:5px; border-style:solid;display:inline-block; height:16px; border-width: 1px 1px 0 1px; border-color: white; z-index: 9999; transform: translate(0,0px); background-color: #ffefa2;'>公告</a>")
let plist1 = $("<div id='blocklist1' style='background-color:rgb(226, 185, 185);height: 220px; border: 0px solid white; width: 210px; margin: 3px;overflow-y:scroll'></div>")
let plist2 = $(`
<div id='blocklist2' style='background-color:#ffefa2;height: 220px; border: 0px solid white; width: 210px; margin: 3px; overflow:hidden; display:none'>
<div style='height: 22px'>
<input id='keyword' style='height: 18px;width: 120px; border: 0 solid black; padding: 0; margin: 0;' type='text' autocomplete="off" ></input>
<input type='submit' id='enterKeyword' style='line-height:18px; height: 18px;width: 60px; border: 0 solid black; margin: 0; padding: 0;' value='添加↵'></input>
</div>
<div id='keywords_list' style='height: 198px;overflow-y: scroll; background-color: #ffefa2;'>
</div>
</div>
`)
let plist3= $("<div id='announcement' style='background-color:black; color: white;height: 220px; border: 0px solid white; width: 210px; margin: 3px;overflow-y:scroll; display:none; '>正在加载公告....</div>")
let pAd = $("<div style='border: 1px solid white; margin:3px;padding: 2px; font-size: 11px;background-color:rgb(255, 217, 67); color: black'>喜欢的话 安利哟:<a target='_blank' style='color:rgb(71, 71, 138); text-decoration: underline' href='/a/ac10271618'>ac10271618</a></div>")
let bananas = "<a id='banana_contain'>"+banana(0)+banana(1)+banana(2)+banana(3)+banana(4)+"</a>";
let pinfo =$("<div style='border: 0px solid white; margin:3px;padding: 2px; font-size: 11px;background-color:rgb(234, 200, 65); color: rgb(50,50,50)'>当前版本:"+version+" "+ bananas+"</div>")
let pupdate = $("<div style='background-color: green; color: white; display: none; margin:3px; padding: 2px;' id='update_info'></div>")
checkUpdate((v)=>{
console.log(v,version);
if (parseFloat(v)> parseFloat(version)){
pupdate.css("display","block")
.html("<a style='color:white' target='_blank' href='https://gf.qytechs.cn/en/scripts/381476'>可以升级至:"+v+" 👉</a>");
$.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)=>{
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() {
let attach = function (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 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) {
e.preventDefault();
if (typeof window.currentTag !== "undefined" && window.currentTag !== null) {
addToList(window.currentUser, ()=>{
displayList();
if(pageType=="home"){
FilterHomePage();
}else{
FilterListPage();
}
});
}
})
.show();
})
$(tag).on("mouseleave",function () {
$(filterButton).detach();
window.currentTag = null;
window.currentUser = null;
$(filterButton).off("click").hide()
})
}
}
if (pageType == "home") {
let list = getHomeSelection();
attach(list);
} else {
let list = getListSelection();
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"){
$(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)){
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<list.length; i++){
let w= list[i];
if (title.indexOf(w)>=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 = $("<div style='z-index: 9999;position:fixed; left:0px; top: 200px; width:30px; padding: 5px; background-color: rgba(255,50,50,0.3);user-select:none;-webkit-user-select:none; cursor: pointer;'>屏蔽UP</div>");
$(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<t.length; i++){
if (url.indexOf(t[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();