Komica poi171216

metadata description

目前为 2017-12-16 提交的版本。查看 最新版本

// ==UserScript==
// @name         Komica poi171216
// @name:zh      今年一定島 書籤
// @namespace    https://greasyfork.org/
// @description  metadata description
// @description:zh  汲汲營營大報社
// @author       稻米
// @include      http://*.komica2.net/00/*
// @include      https://*.komica2.net/00/*
// @include      http://*.komica2.net/*/pixmicat.php?res=*
// @include      https://*.komica2.net/*/pixmicat.php?res=*
// @version      2017.12.0.0000.build16299
// @grant        none
// ==/UserScript==

//jquery
try{
    $(document).ready(function() {
        //console.log( 'jquery ready' );
        //全域變數//global
        time = new Date();
        gg=[];
        //gg.poi='123';
        //gg.poi.ypa='456';
        gg['poi']='123';
        gg.ypa='456';
        //console.log( gg );
        //
        poi();
    });
    //throw "is empty";
}
catch(err){
    console.log( ''+err.message );
}
finally {
    //console.log( 'try-catch-finally' );
}

function poi(){//搜尋每個首篇
    //console.log(''+$("div.thread").length);
    //遍歷元素01
    $("div.thread").each(function(index, value){ // div.post-head
        //$(this).after('[01]'+cc1);
        //console.log(index);
        //console.log(value);
        //console.log($(this));
        //console.log($(this).attr("data-no"));
        //.first().parent();
        $(this).find("div.post-head").first().css( "background-color", "#ddd");
        var idno=$(this).attr("data-no");
        $(this).find("div.post-head").first().append('<span class="cls_poi171213" idno="'+idno+'"></span>');
        //$(this).prepend('prepend');
    });
    //
    ypa();
    //
}//function poi(){

function ypa(){//建立按鈕
    div = $("<div>").html("prepend").attr({
        'id':'id_poi171214_box01',
        'class':'class_poi171214_box01',
    });//{attribute:value, attribute:value ...}
    $("#threads").prepend(div);//#page_switch

    $(".class_poi171214_box01").html('');
    $(".class_poi171214_box01").append('<poi qwq="button">按鈕用的區塊</poi>');
    $(".class_poi171214_box01").append('<poi qwq="add">新增用的區塊</poi>');
    $(".class_poi171214_box01").append('<poi qwq="list">清單用的區塊</poi>');
    $(".class_poi171214_box01").css({
        "background-color":"rgba(255,255,0,0.5)",
        //"background-color":"yellow",
        "border": "1px solid blue",
        "display":"block",
        "width":"200",
        "height":"200",
        "position":"fixed",
        "top":"0",
        "left":"0",
        "overflow":"scroll",
    });
    $(".class_poi171214_box01x").css({
        "display":"none",
    });


    $(".cls_poi171213").prepend('<button type="button">書籤</button>');
    $(".cls_poi171213 > button").on('click', function(event) {
        //console.log( $(this) );
        //console.log( event.originalEvent );
        var idno='';
        idno=$(this).parent().attr("idno");//.attr("data-no")
        //console.log( tmp );//.attr("data-no")
        if($(this).html() =='書籤'){//開啟左上角
            $(".class_poi171214_box01").css({
                "display":"block",
            });//"background-color","yellow"
            $(this).html('開啟中'+idno);
            //
            ouo(idno);//點擊後的反應(自訂函式)
        }else{//關閉左上角
            $(".class_poi171214_box01").css({
                "display":"none",
            });//"background-color","yellow"
            $(this).html('書籤');
        }
    });

    //console.log( $("poi[qwq=button]") );
    //console.log( $(".class_poi171214_box01") );
    //console.log( $(".class_poi171214_box01").find("poi[qwq=button]") );
    $(".class_poi171214_box01").find("poi[qwq=button]").html('');
    $(".class_poi171214_box01").find("poi[qwq=button]").append('<button type="button" qwq="close">收合</button>');
    $(".class_poi171214_box01").find("poi[qwq=button]").append('<button type="button" qwq="edit">編輯</button>');
    //點擊收合按鈕的反應
    $(".class_poi171214_box01 >poi> button[qwq=close]").on('click', function() {
        //console.log( $(this).parent() );
        $(this).parent().parent().css({
            "display":"none",
        });//"background-color","yellow"
    });
    //點擊編輯按鈕的反應
    $(".class_poi171214_box01 >poi> button[qwq=edit]").on('click', function() {
        if( $("button[qwq=edit]").css('background-color') == "rgb(255, 0, 0)" ){
            $("button[qwq=edit]").css({
                "background-color":"",
            });
            cookie_list();//列出cookie(自訂函式)
            $(this).html('編輯');
        }else{//編輯模式
            $(".class_poi171214_box01 > poi[qwq=list] >span.cls_poi171216_2010").append('<button type="button" qwq="del">刪除</button>');
            $(this).html('返回');
            ppp();
        }

    });
    //
}//function ypa(){

function ppp(){//
    $(".class_poi171214_box01 > poi[qwq=list]>span").css({
        "border-right":"10px solid red",
        "border-left":"10px solid red",
    });
    $("button[qwq=edit]").css({
        "background-color":"red",
    });
    $("span.cls_poi171216_2010 > button[qwq=del]").on('click', function() {
        var idno='';
        idno=$(this).parent().attr('idno');
        //console.log( idno );
        cookie_del(idno);
        $(this).html('(已刪除)');
        $(this).css({
            "background-color":"#FFF",
            "color":"#000",
            "font-weight":"bold",
        });
    });
}//function ppp(){//
function cookie_del(x){//
    var del_idno=x;
    console.log( del_idno );
    var tmp='';
    var array_tmp = [];
    var cookie_time = fnc_cookie_time();
    //
    if(document.cookie !== ""){  //有coolkie執行這部份
        array_tmp=document.cookie.split(";");
        array_tmp.forEach(function(element,index){
            array_tmp[index]=array_tmp[index].trim();//去掉頭尾空白
            array_tmp[index]=array_tmp[index].split("=");
            if( /poi[0-9]+/.test( array_tmp[index] ) ){
                array_tmp[index][1]=array_tmp[index][1].split(",");//分解字串
                var i = array_tmp[index][1].indexOf(del_idno);//找出元素位置
                //console.log( array_tmp[index][1] );
                array_tmp[index][1].splice(i,1);//移除陣列元素
                //console.log( array_tmp[index][1] );
                array_tmp[index][1]=array_tmp[index][1].join();//組合字串//預設用逗號分隔
                tmp=array_tmp[index][1];
            }//if
        });//foreach
        document.cookie = "poi001="+tmp+cookie_time.addtime;//寫入新的cookie
    }//if
}//function cookie_del(){//

function ouo(x){//產生cookie
    var idno=x;//傳入的id編號
    //
    cookie_list();//列出cookie(自訂函式)
    //
    $(".class_poi171214_box01 > poi").css({
        "display":"block",
        "border": "1px solid blue",
        //"background-color":"#ddd",
    });//"background-color","yellow"

    //
    $(".class_poi171214_box01 > poi[qwq=add]").html('');
    $(".class_poi171214_box01 > poi[qwq=add]").append('<button type="button" qwq="add" idno="'+idno+'">新增'+idno+'</button>');
    //點擊按鈕的反應
    $(".class_poi171214_box01 >poi> button[qwq=add]").on('click', function() {
        //console.log( $(this).attr('idno') );
        $(this).attr("disabled", true);
        $(this).html('(完成)');
        cookie_add( $(this).attr('idno') );//

    });

}//function ouo(){

function fnc_cookie_time(){//
    var day7 = 3600*24*7;//7天的秒數
    //
    today = new Date();
    today.setTime(today.getTime()-1000*60);	// 刪除用的過期時間
    var deltime=";expires="+ today.toUTCString(); // 刪除用的過期時間
    //console.log( deltime );
    today = new Date();
    today.setTime(today.getTime()+1000*day7);	// 新增用的時間
    var addtime=";expires="+ today.toUTCString(); // 新增用的時間
    //console.log( addtime );
    today = new Date();
    //console.log( today );
    //console.log( today.toISOString() );
    //console.log( today.toUTCString() );
    //console.log( today.toLocaleString() ); //2017/12/16 上午6:11:21
    var array_tmp = [
        today.getFullYear(),
        today.getMonth()+1,
        today.getDate(),
        today.getHours(),
        today.getMinutes(),
        today.getSeconds(),
        today.getTime(),//時間戳
    ];
    //console.log( array_tmp );
    array_tmp.forEach(function(element,index) {
        array_tmp[index]=element.toString();
        //console.log( index );
        //console.log( element );
        //console.log( element.toString().length );
        if(0<element && element<10){
            array_tmp[index]='0'+array_tmp[index];
        }
        //str.substring(3,7);
        //str.slice(-4,2);
    });
    //console.log( array_tmp ); //["2017", "12", "16", "06", "11", "21", "1513375881786"]
    //console.log("可讀時間: "+array_tmp[0]+"/"+array_tmp[1]+"/"+array_tmp[2]+" "+array_tmp[3]+":"+array_tmp[4]+":"+array_tmp[5]+"");
    //
    //this.deltime=deltime;
    //this.addtime=addtime;
    //
    x=[];
    x.deltime=deltime;
    x.addtime=addtime;
    return x;
}//function cookie_time(){//

function cookie_list(){//
    if(document.cookie !== ""){  //有coolkie執行這部份
        $(".class_poi171214_box01 > poi[qwq=list]").html('');
        var tmp = '';
        var array_tmp = [];
        var array_tmp2 = [];
        array_tmp = document.cookie.split(";");
        array_tmp.forEach(function(element,index) {
            array_tmp[index]=array_tmp[index].trim();//去掉頭尾空白
            array_tmp[index]=array_tmp[index].split("=");
            if( /poi[0-9]+/.test( array_tmp[index] ) ){
                array_tmp[index][1]=array_tmp[index][1].split(",");
                array_tmp[index][1].forEach(function(element,index){
                    $(".class_poi171214_box01 > poi[qwq=list]").append('<span class="cls_poi171216_2010" idno="'+element+'"><a href="http://rem.komica2.net/00/pixmicat.php?res='+element+'" target="_blank">'+element+'</a></span>');
                    //console.log( element );
                });
            }//if
        });//foreach
        //繪製
        $(".cls_poi171216_2010").css({
            "display":"block",
            "border": "1px solid #999999",
        });//"background-color","yellow"        //


    }
}//function cookie_list(){//
function cookie_add(x){//
    var idno=x;//傳入的id編號
    //
    //事先處理過的時間字串
    //var cookie_time = new fnc_cookie_time(); //this
    //console.log( cookie_time.addtime );
    var cookie_time = fnc_cookie_time();
    //console.log( fnc_cookie_time().addtime );
    //console.log( cookie_time.addtime );
    //
    //document.cookie="poi123=0123456789"+cookie_time.addtime;//測試_建立cookie
    document.cookie="poi000=poi";//測試_建立cookie
    if(document.cookie !== ""){  //有coolkie執行這部份
        //console.log( document.cookie );
        document.cookie = "poi000=000"+cookie_time.deltime;//測試_刪除cookie
        //console.log( document.cookie );
        //cookie清單
        var tmp = '';
        var array_tmp = [];
        var array_tmp2 = [];
        array_tmp = document.cookie.split(";");
        for(i=0;i<array_tmp.length; i++) {
            array_tmp[i]=array_tmp[i].trim();//去掉頭尾空白
            //console.log( array_tmp[i] );
            array_tmp[i] = array_tmp[i].split("=");
            //console.log( array_tmp[i][0] );
            //console.log( array_tmp[i][0].search(/poi[0-9]+/) ); //找到=大於等於0 沒找到=-1
            //console.log( array_tmp[i][0].match(/poi[0-9]+/) ); //找到=回傳陣列 沒找到=null
            //console.log( /poi[0-9]+/.test( array_tmp[i][0] ) ); //找到=true 沒找到=false
            //if( array_tmp[i][0].search(/poi[0-9]+/) >=0 ){
            //if( array_tmp[i][0].match(/poi[0-9]+/)  ){
            if( /poi[0-9]+/.test( array_tmp[i][0] ) ){
                //console.log( '找到'+array_tmp[i][0] );
                //console.log( array_tmp[i][0]+'/'+array_tmp[i][1] );
                if(array_tmp[i][0] == 'poi001'){
                    //console.log( '找到'+array_tmp[i][0] );
                    array_tmp[i][1]=array_tmp[i][1].split(",");
                    console.log( array_tmp[i][1] );
                    array_tmp[i][1].sort();//排序
                    array_tmp[i][1]=array_unique(array_tmp[i][1]);//刪除重複的(自訂函式)
                    console.log( array_tmp[i][1] );
                    if( array_tmp[i][1].includes(idno) ){
                        console.log( '已存在' );
                    }else{
                        array_tmp[i][1].push(idno);//加入資料
                        console.log( '已加入' );
                    }
                    //console.log( array_tmp[i][1] );
                    array_tmp[i][1].reverse();//反轉排序
                    array_tmp[i][1]=array_tmp[i][1].join();//預設用逗號分隔
                    console.log( array_tmp[i][1] );
                    tmp=array_tmp[i][1];
                }
            }//if
        }//for
        //console.log( tmp );
        document.cookie = "poi001="+tmp+cookie_time.addtime;//寫入新的cookie
        //更新清單
        cookie_list();//列出cookie(自訂函式)

    }

}//function cookie_time(){//

function array_unique(x){//
    var array_tmp=x;//傳入的陣列
    var array_tmp2=[];
    //
    array_tmp.push('poi');
    array_tmp.forEach(function(element,index){
        if(array_tmp2.includes(element)){//沒重複才加入
            //沒事
        }else{
            if( /[0-9]+/.test( array_tmp[i][0] ) ){//只允許全數字
                array_tmp2.push(element);//加入資料
            }
        }
    });//forEach
    x=array_tmp2;
    return x;
}