// ==UserScript== // @name free-ss.site 生成全部链接 // @version 0.3.3 // @description 将所有分享ss链接全部显示,方便统一复制使用 // @author dolacmeo // @match https://free-ss.site/ // @require https://cdn.jsdelivr.net/npm/js-base64@2.4.3/base64.min.js // @run-at document-end // @namespace http://tampermonkey.net/ // @downloadURL none // ==/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 = ""; var ssr_links = ""; var link_btn = ""; $(".main").append(''); $(".main").append(ss_links); $(".main").append(ssr_links); $(".main").prepend(link_btn); $("#link_num").html("等待数据加载,请稍后... "); 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+'
'); $("#ssr-links").append(ssr+'
'); 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('SS '); qrcode.qrcode({background:'#FFFFFF',ecLevel:'M',text:ssr}); qrcode.append('SSR'); }); $("#link_num").html("复制之后可使用剪贴板批量导入 (点击可选,当前已选择 0 条)"); },3000); }); })();