Greasy Fork is available in English.

今年一定島 圖片log

汲汲營營大報社

2020/04/20時点のページです。最新版はこちら。

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @namespace    https://greasyfork.org/zh-TW/scripts/401499
// @name         今年一定島 圖片log
// @description  汲汲營營大報社
// @author       稻米
// @version      2020.04.20.0020.build16299
// @grant        none

// @include      *://*.komica.org/00/*
// @exclude      *://*.komica.org/00/src/*
// @exclude      *://*.komica.org/00/thumb/*
// @exclude      *.jpg
// @exclude      *.png
// @exclude      *.webm

// ==/UserScript==


try{}
catch(err){}
finally{}
//

$(document).ready(function(){
    window.FFF='';
    var aa=$("div.thread");
    //console.log( aa );
    if( aa.length == 1 ){
        poi(); //回文模式才執行
    }
});

function poi(){
    window.gg200414=[];

    //產生按鈕
    $(".thread").before('<poi><button type="reset">圖片log</button></poi>');
    $("poi >button:contains('圖片log')").click(function(){
        //console.log('按鈕');
        poi200406a();//產生右上角的區塊
    });
    poi200406_dataload();//使用window.localStorage
    //poi200406_testsave2();//使用window.indexedDB
    poi200406b();//收集網頁上的縮圖 //並存檔json
    //



}

function poi200406(){}
function poi200406a(){
    //產生右上角的區塊
    var aa = $('#id_poi200413_box01');
    //console.log( aa );
    if(aa.length>0){
        //存在
        $('#id_poi200413_box01').remove();

    }else{//if
        //不存在
        var div = $("<div>").html("").attr({
            'id':'id_poi200413_box01',
            'class':'cls_poi200413_box01',
        });
        $("#threads").after(div);//

        $("#id_poi200413_box01").css({
            "background-color":"rgba(255,255,0,0.5)",
            //"background-color":"yellow",
            "border": "1px solid blue",
            "display":"block",
            "width":"400",
            "height":"400",
            "position":"fixed",
            "top":"0",
            "right":"0",
            "overflow":"scroll",
        });
        //
        var div2 = $("<div>").html("html").attr({
            'id':'id_poi200413_box02',
        });
        $("#id_poi200413_box01").prepend(div2);//
        $("#id_poi200413_box02").html('點圖顯示紀錄');
        $("#id_poi200413_box02").css({
            "border": "1px solid blue",
            "background-color":"rgba(255,255,255,0.9)",
            "width":"100%",
            "height":"",
        });
        var btn = $("<button>").html("清空紀錄").attr({
            'type':'button',
            'id':'id_poi200413_clear',
        });
        //var poi = $("<poi>").html("ppp").attr({});
        //$("#id_poi200413_box02").html(poi);
        $("#id_poi200413_box02").prepend(btn);//加入按鈕
        $("#id_poi200413_box02>#id_poi200413_clear").click(function(){
            //console.log( 'click' );
            poi200406_dataclear();//清空紀錄

        });


        //

        poi200406_img();//縮圖

    }//if


}
function poi200406b(){
    //var bb=$(".post");
    var bb= document.querySelectorAll(".post");
    //querySelectorAll():返回靜態NodeList物件集合
    //console.log( bb );

    var json=window.localStorage.poi200413;
    json = JSON.parse( json );
    //console.log( '剛讀檔的json',json );



    $.each(bb,function(index,item){
        //console.log( index,item,this );
        let bb2c=item.cloneNode( true );//複製一份 避免影響網頁上的元素
        //console.log( bb2c );
        //let bb2=$(item).find('.file-text');
        //let bb2=item.querySelectorAll(".file-text");
        let bb2=bb2c.querySelector(".file-text");
        //console.log( bb2 );
        if(bb2){
            //有上傳附件
            let bb3=bb2.querySelector("a");
            //console.log( bb3 );
            let str=bb3.href;
            //bb3.remove();

            let bb4='';
            //bb4=str.indexOf("/"); //=5
            //console.log( bb4 );
            bb4=str.lastIndexOf("/"); //=29
            //console.log( bb4 );
            bb4=str.slice(bb4+1);
            //console.log( bb4 );//1586847346537.jpg
            str=bb4;
            bb4=str.split('.');
            //console.log( bb4 );//["1586847346537", "jpg"]
            var chk=poi200406_datacheck(json,bb4[0]);
            //console.log( chk );//沒找到會回傳undefined
            if(chk){
                return 1;//已經記錄過就continue
            }else{
            }


            //
            var thread_num=$('.post.threadpost').attr('data-no'); //首篇編號
            let thread_num2=$(item).attr('id');//id "18210442#r18210442"
            //console.log( thread_num2 );

            //console.log( bb2.innerText );
            //console.log( bb2.textContent );
            let bb5=bb2.innerText.match(/\((.*)\)/);
            //console.log( bb5[1] );
            bb5=bb5[1].split(',');
            //console.log( bb5 ); ["4271 KB", " 4032x3024"]
            bb5[0]=bb5[0].split(' ');
            bb5[1]=bb5[1].trim().split('x');
            //console.log( bb5 );

            let ww=bb5[1][0];
            let hh=bb5[1][1];
            ww=parseInt( ww );
            hh=parseInt( hh );
            //console.log( ww,hh );
            let rr='';
            if(ww > hh){
                //console.log( '大' );
                rr=( ww / hh );
            }else{
                //console.log( '小' );
                rr=( ww / hh );
            }
            //rr=rr.toFixed(3);
            rr=''+rr;
            rr=rr.substring(0,rr.indexOf('.')+6);
            //console.log( rr );//圖片長寬比例


            var feed = {
                filename: bb4[0],
                fileext: bb4[1],
                thread: thread_num+'#'+thread_num2,
                size:bb5[0][0],
                width:ww,
                height:hh,
                wh_rate:rr,
                };
            json.data.push(feed);
            //console.log( json );


        }
    });//each


    //console.log( '傳遞前的json',json );
    poi200406_datasave(json);
}
function poi200406_dataload(){
    var aa=window.localStorage;
    //console.log(aa);
    if(!aa){
        //console.log('不支援localStorage');
        $("poi >button:contains('圖片log')").css({
            'background-color':'red',
        });

        return;
    }else{
        //
    }
    var aa2=window.localStorage.poi200413;
    if(aa2){
        //console.log( '存在');
    }else{
        //console.log( '不存在');
        window.localStorage.setItem('poi200413', '{"ver":200414,"data":[]}');
    }
    //console.log( 'localStorage.poi200413',aa2 );
    //var json='{"ver":200414,"data":[]}';
    //window.localStorage.poi200413='{"ver":200414,"data":[]}';
    var json=window.localStorage.poi200413;
    json = JSON.parse( json );
    console.log( '剛讀檔的json',json );




}
function poi200406_dataclear(){
    window.localStorage.poi200413='{"ver":200414,"data":[]}';

}
function poi200406_datasave(in1){
    var json = in1;
    //


    //
    var tt=$.now();
    //console.log( tt );//時間戳記 1578385760139
    $.each(json.data, function( index, item ) {
        if(item){
            //沒事
        }else{
            return 0;//break
        }
        let tt2=Math.floor( (tt - item.filename)/1000 ) ; //
        //console.log( tt2 );
        if( tt2 > 24*3600){ //24小時 //超過時間的就移除
            //console.log( '找到' );
            //return 1;
            //console.log( json.data[index] );
            //delete json.data[index];
            json.data.splice(index, 1);
            //console.log( json.data[index] );

        }else{
            //console.log( '沒找到' );
            //return 0;
        }
    });//each



    var result=json.data.find(function(item,index){
        //console.log( item,index );
    });//find

    console.log( '存檔前的json',json );
    var json_str=JSON.stringify( json );
    window.localStorage.poi200413=json_str;
    //console.log( window.localStorage.poi200413 );
}

function poi200406_datacheck(in1,in2){
    //檢查是否已經記錄過
    var json=in1;
    var name=in2;
    var result=json.data.find(function(item,index){
        //console.log( item,index );
        if(item){
            //
        }else{
            return 0;//不存在
        }
        if( item.filename == name ){
            //console.log( '找到' );
            return 1;
        }else{
            //console.log( '沒找到' );
            return 0;
        }
    });//find
    return result;

}

function poi200406_img(){
    //return;
    console.log( 'poi200406_img' );
    var json=window.localStorage.poi200413;
    json = JSON.parse( json );
    console.log( '排序前',json );
    //
    json.data.sort(function(a,b){
        //console.log( a.filename,b.filename );
        var aa=parseInt( a.filename );
        var bb=parseInt( b.filename );
        //console.log( aa,bb );

        //return ( aa - bb );//舊的在前
        return ( bb - aa );//新的在前
    });
    console.log( '排序後',json );

    var str='';
    $.each(json.data, function( index, item ){
        str=str+'<img src="http://ram.komica2.net/00/thumb/'+item.filename+'s.jpg" data_filename="'+item.filename+'">';
    });
    $("#id_poi200413_box01").append(str);//產生縮圖
    //

    $("#id_poi200413_box01>img").css({ //設定圖片大小
        "width":"100",
        "height":"100",
        "box-sizing":"border-box",
    });
    //

    //
    $("#id_poi200413_box01>img").click(function(e){
        //console.log( '點擊圖片的反應' );
        //console.log( this );
        $("#id_poi200413_box01>img").css({
            "border": "0px",
        });
        $(this).css({
            "border": "5px solid blue",
        });

        let aa=$("#id_poi200413_box02").clone();//默认的clone中不包含事件处理器
        $("#id_poi200413_box02").remove();
        aa.insertAfter( $(this) );//在後面插入元素
        var aa2=$(this).attr('data_filename');
        //console.log( aa2 );

        var chk=json.data.find(function(item,index){
            //console.log( item,index );

            if(item.filename == aa2){
                //console.log( '找到' );
                return 1;
            }else{
                //console.log( '沒找到' );
                return 0;
            }
        });

        //console.log( chk );
        var FFF='';
        FFF=FFF+'<a href="http://sora.komica.org/00/pixmicat.php?res='+chk.thread+'">原串</a>,';
        FFF=FFF+'<a href="http://ram.komica2.net/00/src/'+chk.filename+'.'+chk.fileext+'">原圖</a>,';
        FFF=FFF+'類型'+chk.fileext+','
        FFF=FFF+'長寬'+chk.width+'x'+chk.height+','

        $("#id_poi200413_box02").html( FFF );//產生縮圖資料

    });



}