free-ss.site 生成全部链接

将所有分享ss链接全部显示,方便统一复制使用

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

// ==UserScript==
// @name         free-ss.site 生成全部链接
// @version      0.3.3
// @description  将所有分享ss链接全部显示,方便统一复制使用
// @author       dolacmeo
// @match        https://free-ss.site/
// @require      https://cdn.jsdelivr.net/npm/[email protected]/base64.min.js
// @run-at       document-end
// @namespace http://tampermonkey.net/
// ==/UserScript==
// @0.3.3 2017-2-6    主站代码更新,旧版已不可用
// @0.3.2 2017-2-2    点击二维码按钮生成SS、SSR两种链接与二维码,方便使用
// @0.3.1 2017-2-2    可进行多选,再生成链接,不选择生成所有
// @0.3   2017-2-2    随站更新,现从表格直接读取数据生成链接
// @0.2.1 2017-1-31   修复bug,备注名称加入当前日期
// @0.2   2017-1-31   不直接显示连接,变为两个复制按钮,点击即可复制所有链接,新增SSR链接(带备注与分组信息)
// @0.1   2017-1-26   成功打开页面后直接展示所有ss链接

var ss_id = '#'+$("table").eq(0).attr("id");

(function() {
    $(document).ready(function() {
        // 载入HTML
        var ss_links = "<p id='ss-links' style='border-style:double;text-align:left;display:none'></p>";
        var ssr_links = "<p id='ssr-links' style='border-style:double;text-align:left;display:none'></p>";
        var link_btn = "<ul><li class='aff'><p style='margin: 0;' id='link_num'></p></li><li class='aff'><button id='btn_ss'>复制SS链接</button></li><li class='aff'><button id='btn_ssr'>复制SSR链接</button></li></ul>";
        $(".main").append('<textarea id="input" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;"> </textarea>');
        $(".main").append(ss_links);
        $(".main").append(ssr_links);
        $(".main").prepend(link_btn);
        $("#link_num").html("等待数据加载,请稍后... <span id='sel'></span>");
        var d = new Date();
        var date_str = d.toISOString().slice(0,10)+'_';
        // 将数据处理成链接
        function make_links(datas){
            ss_links_str = "";
            ssr_links_str = "";
            $.each(datas, function(i, data){
                var ss = 'ss://'+Base64.encodeURI(data[4]+':'+data[3]+'@'+data[1]+':'+data[2])+'#'+data[6]+'('+date_str+data[5]+')',
                    ssr = 'ssr://'+Base64.encodeURI(data[1]+':'+data[2]+':origin:'+data[4]+':plain:'+Base64.encodeURI(data[3])+'/?remarks='+Base64.encodeURI(data[6]+'('+date_str+data[5]+')')+'&group=ZnJlZS1zcy5zaXRl');
                $("#ss-links").append(ss+'<br>');
                $("#ssr-links").append(ssr+'<br>');
                ss_links_str = ss_links_str + ss + '\n';
                ssr_links_str = ssr_links_str + ssr + '\n';
            });
        }
        // 获取表格数据
        function ssdata(){
            if ($(ss_id).DataTable().rows('.selected').data().length) {
                return $(ss_id).DataTable().rows('.selected').data();
            } else {
                return $(ss_id).DataTable().data();
            }
        }
        function copy(str){
            var input = document.getElementById("input");
            input.value = str; // 修改文本框的内容
            input.select(); // 选中文本
            document.execCommand("copy"); // 执行浏览器复制命令
            alert("链接复制成功");
        }
        document.getElementById('btn_ss').addEventListener('click',function(ev){
            make_links(ssdata());
            copy(ss_links_str);
        });
        document.getElementById('btn_ssr').addEventListener('click',function(ev){
            make_links(ssdata());
            copy(ssr_links_str);
        });
        // 等待3s,数据加载后执行
        setTimeout(function(){
            //console.log($('#ss').DataTable().data());
            var ss_table = $(ss_id).DataTable();
            $(ss_id+' tbody').on( 'click', 'tr', function () {
                $(this).toggleClass('selected');
                $("#sel").html(ss_table.rows('.selected').data().length);
            });
            $(ss_id+' tbody').on('click','i',function(){
                var data = ss_table.row($(this).closest('tr')).data();
                var str = 'ss://'+btoa(data[4]+':'+data[3]+'@'+data[1]+':'+data[2]),
                    ssr = 'ssr://'+Base64.encodeURI(data[1]+':'+data[2]+':origin:'+data[4]+':plain:'+Base64.encodeURI(data[3])+'/?remarks='+Base64.encodeURI(data[6]+'('+data[0]+'@'+date_str+data[5]+')')+'&group=ZnJlZS1zcy5zaXRl');
                var qrcode = $('#qrcode');
                qrcode.children('canvas').remove();
                qrcode.children('br').remove();
                qrcode.children('a').remove();
                qrcode.qrcode({background:'#FFFFFF',ecLevel:'M',text:str});
                qrcode.append('<a href="'+str+'">SS </a>');
                qrcode.qrcode({background:'#FFFFFF',ecLevel:'M',text:ssr});
                qrcode.append('<a href="'+ssr+'">SSR</a>');
            });
            $("#link_num").html("复制之后可使用剪贴板批量导入 (点击可选,当前已选择 <span id='sel'>0</span> 条)");
        },3000);
    });
})();