free_ss

原来的改版已经失效,另起炉灶搞个新的采集方式

目前为 2018-02-28 提交的版本。查看 最新版本

// ==UserScript==
// @name         free_ss
// @version      0.0.3
// @description  原来的改版已经失效,另起炉灶搞个新的采集方式
// @author       XSC
// @match        http*://free-ss.site/
// @match        http*://free-ss.gq/

// @require      https://cdn.jsdelivr.net/npm/[email protected]/base64.min.js
// @grant        GM_setClipboard
// @run-at       document-end
// @namespace https://greasyfork.org/users/163852
// ==/UserScript==
// @0.0.3   2018-2-28  修复失效
// @0.0.2   2018-2-24  修改表格判断方式
// @0.0.1   2018-2-7   初始版本
(function() {

    // Your code here...


    FREESS_NET = {
        ss_urls:[],
        ss_txt:'',
        ssnum:0,
        //弹窗1
        layer1: function () {
            layer.open({
                title:'服务器('+ssnum+'条)',
                area:['800px','550px'],
                btn:['复制'],
                yes:function(){
                    var txt = $('#SSUrls').val();
                    GM_setClipboard(txt);
                    layer.tips('已复制','.layui-layer-btn0',{
                        tips: [1, '#0FA6D8'] //还可配置颜色
                    });
                },
                content:"<textarea id='SSUrls' style='width:100%;height:100%;resize:none' rows='30' cols='100'>" + ss_txt + "</textarea>"
            });
        },

        //获取URL列表
        geturls:function(){
            ss_urls = new Array(0);
            ss_txt = '';
            ssnum = 0;
            var url = '';
            var i,j;

            var tab = document.getElementsByTagName("table");
            console.log('表格数:' + tab.length);

            var tabindex ,tabmax = 0, tabmaxnum = 0, test = 0;
            for(tabindex = 0; tabindex < tab.length; tabindex++)
            {
                console.log('表格' + tabindex + '长' + tab[tabindex].rows.length);
                if(tab[tabindex].rows.length > tabmaxnum)
                {
                    if(test == 0)
                    {
                        test = 1;
                    }else{
                        tabmax = tabindex;
                        tabmaxnum = tab[tabindex].rows.length;
                    }
                }
            }
            console.log('表格' + tabmax + '最长');
            var s3 = tab[tabmax]; //获取第一个表格
            console.log('表格行数:' + s3.rows.length);

            for(i = 1; i < s3.rows.length; i++){
                var data = new Array(0);
                for(j = 0; j < s3.rows[i].cells.length - 1; j++){
                    data.push(s3.rows[i].cells[j].innerHTML.toString());
                    //console.log(data[j]);
                }
                //url = data[4]+':'+data[3]+'@'+data[1]+':'+data[2]+'#'+data[6]+'('+data[0]+')';
                url = 'ss://'+Base64.encodeURI(data[4]+':'+data[3]+'@'+data[1]+':'+data[2])+'#'+data[6]+'('+data[0]+')';
                //url = 'ss://'+data[4]+':'+data[3]+'@'+data[1]+':'+data[2]+'#'+data[6]+'('+data[0]+'@'+date_str+data[5]+')';
                //ss_urls.push(url);
                console.log(url);

                if(ss_urls.length == 0){
                    ss_urls[0] = new Array(0);
                    ss_urls[0].push('【'+data[6]+'】');
                    ss_urls[0].push(url);
                }else{
                    for(j = 0; j < ss_urls.length; j++){
                        if(('【'+data[6]+'】') == ss_urls[j][0])
                        {
                            ss_urls[j].push(url);
                            break;
                        }
                    }
                    if(j == ss_urls.length) {
                        ss_urls[j] = new Array(0);
                        ss_urls[j].push('【'+data[6]+'】');
                        ss_urls[j].push(url);
                    }
                }
                ssnum++;
            }

            for(i = 0; i < ss_urls.length; i++){
                ss_txt +="\r\n"+ ss_urls[i].join("\r\n");
            }
        },

        run:function(){
            this.geturls();
            this.layer1();
        }
    };

    $(document).ready(function() {
        // 等待3s,数据加载后执行
        setTimeout(function(){
            FREESS_NET.run();
        },3000);
    });


})();