monnsutogatya_tool

ADBlock Reborn and Refresh tool.

当前为 2015-11-30 提交的版本,查看 最新版本

// ==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();
    }
    
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址