// ==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);
});
})();