ADBlock Reborn and Refresh tool.
当前为
// ==UserScript==
// @name monnsutogatya_tool
// @namespace http://qqboxy.blogspot.com/
// @version 0.8
// @description ADBlock Reborn and Refresh tool.
// @author QQBoxy
// @match http://tw.monnsutogatya.com/*
// @grant none
// ==/UserScript==
(function() {
function $(id) {
switch(id.substr(0,1)) {
case '#':
return document.getElementById(id.substr(1));
case '.':
var elems = document.body.getElementsByTagName('*');
var target = id.substr(1);
var result=[];
for(i=0;j=elems[i];i++) {
if((j.className).indexOf(target)!=-1) result.push(j);
}
return result;
default:
return document.getElementsByTagName(id);
}
}
var getCookie = function(name) {
var n = name + "=";
var nlen = n.length;
var clen = document.cookie.length;
var i = 0;
while(i < clen) {
var j = i + nlen;
if(document.cookie.substring(i, j) == n) {
var endstr = document.cookie.indexOf(";", j);
if(endstr == -1)
endstr = clen;
return unescape(document.cookie.substring(j, endstr));
}
i = document.cookie.indexOf(" ", i) + 1;
if(i == 0) break;
}
return null;
};
//----- Clear other
var other = function() {
var i = 0;
var j = 0;
var adclass = ["adsbygoogle", "adsense"];
for(i=0;i<adclass.length;i++) {
var ads = $("."+adclass[i]);
for(j=0;j<ads.length;j++) {
ads[j].parentNode.removeChild(ads[j]);
}
}
};
//----- Refresh Tool -----
var refresh_tool = function() {
var ms = null;
var started = null;
var refreshTimmer = null;
var keyTimer = null;
var set = function() {
var c_started = getCookie("c_started");
var c_ms = getCookie("c_ms");
if(c_ms && ms==null) {
ms = c_ms;
} else if(!c_ms && ms==null) {
ms = 60000;
}
document.cookie = "c_ms=" + escape(ms);
document.getElementById('secboxy').value = ms/1000;
if(c_started && started==null) {
if(c_started=="true") {
started = true;
} else if(c_started=="false") {
started = false;
}
} else if(!c_started && started==null) {
started = false;
}
document.cookie = "c_started=" + escape(started);
clearTimeout(refreshTimmer);
if(started) {
document.getElementById('startboxy').innerHTML = "關閉自動重新整理";
refreshTimmer = setTimeout(function(){
location.reload();
}, ms);
} else {
document.getElementById('startboxy').innerHTML = "啟動自動重新整理";
}
};
var tbox = document.getElementById("t-box");
var ctrl = document.createElement("div");
ctrl.setAttribute("id", "ctrlboxy");
var start = document.createElement("button");
start.setAttribute("id", "startboxy");
start.onclick = function() {
if(started) {
started = false;
} else {
started = true;
}
set();
};
var sec = document.createElement("input");
sec.setAttribute("id", "secboxy");
sec.onkeyup = function() {
if(keyTimer) clearTimeout(keyTimer);
keyTimer = setTimeout(function() {
ms = parseInt(document.getElementById('secboxy').value, 10) * 1000;
if(ms>=5000) {
set();
} else {
alert("不允許小於5秒");
}
}, 500);
};
var txt = document.createElement("span");
txt.style.fontSize = "small";
txt.style.color = "white";
txt.innerHTML = "秒, 同時出現幾次提醒";
ctrl.appendChild(start);
ctrl.appendChild(sec);
ctrl.appendChild(txt);
tbox.parentNode.insertBefore(ctrl, tbox);
set();
};
//----- Alert Tool -----
var alert_tool = function() {
var mp3 = "https://dl.dropboxusercontent.com/u/12316009/ms/StrikeShot.mp3";
var i = 0;
var j = 0;
var c = 0;
var cardtime = {};
var tp = /(\d+)\:(\d+)/;
var cards = $("#c-box").getElementsByTagName("h1");
for(i=0;i<cards.length;i++) {
var m = cards[i].innerHTML.match(tp);
var n = parseInt(m[1], 10)*60+parseInt(m[2], 10);
if(cardtime[n]) {
cardtime[n]++;
} else {
cardtime[n] = 1;
}
}
console.log(JSON.stringify(cardtime));
var ctrlboxy = document.getElementById("ctrlboxy");
var count = document.createElement("input");
count.setAttribute("id", "countboxy");
count.onkeyup = function() {
c = parseInt(document.getElementById('countboxy').value, 10);
document.cookie = "c_count=" + escape(c);
};
var txt = document.createElement("span");
txt.style.fontSize = "small";
txt.style.color = "white";
txt.innerHTML = "次";
ctrlboxy.appendChild(count);
ctrlboxy.appendChild(txt);
var c_count = getCookie("c_count");
if(c_count) {
c = parseInt(c_count, 10);
} else {
c = 3; //預設值
document.cookie = "c_count=" + escape(c);
}
count.value = c;
var c_cardtime = getCookie("c_cardtime");
if(c_cardtime != JSON.stringify(cardtime)) {
for(j in cardtime) {
console.log(cardtime[j]);
if(cardtime[j] >= c) {
//alert(cardtime[j]);
var audio = document.createElement('audio');
audio.autoplay = "autoplay";
var source = document.createElement('source');
source.src = mp3;
source.type = "audio/mpeg";
audio.appendChild(source);
document.getElementsByTagName("body")[0].appendChild(audio);
break;
}
}
document.cookie = "c_cardtime=" + escape(JSON.stringify(cardtime));
}
};
// Remove AD
var del = function() {
for(var i = 1; i < 100; i++) {
clearTimeout(i);
}
$("#for-ad-blocker").style.display="none";
$("#site-box").style.display="";
};
if(navigator.userAgent.match("Firefox")) {
window.onload = function() {
del();
other();
refresh_tool();
alert_tool();
};
} else {
del();
other();
refresh_tool();
alert_tool();
}
})();