您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
将所有分享ss链接全部显示,方便统一复制使用
当前为
// ==UserScript== // @name free-ss.site 生成全部链接 // @version 0.3.8 // @description 将所有分享ss链接全部显示,方便统一复制使用 // @author dolacmeo // @match https://free-ss.site/ // @match https://free-ss.gq/ // @require https://cdn.jsdelivr.net/npm/[email protected]/base64.min.js // @run-at document-idle // @namespace http://tampermonkey.net/ // ==/UserScript== // @0.3.8 2018-3-22 主站代码更新,旧版已不可用。代码中加入了被墙账号与假表格做混淆。 // @0.3.7 2018-3-3 主站代码更新,旧版已不可用。代码中加入了被墙账号与假表格做混淆。 // @0.3.6 2018-2-27 增加镜像站 free-ss.gq // @0.3.5 2018-2-24 主站代码更新,旧版已不可用。代码中加入了干扰隐藏表格。新年第一次摸鱼~ // @0.3.4 2018-2-13 整理脚本代码,年前最后一次摸鱼。祝大家新春快乐~ // @0.3.3 2018-2-6 主站代码更新,旧版已不可用 // @0.3.2 2018-2-2 点击二维码按钮生成SS、SSR两种链接与二维码,方便使用 // @0.3.1 2018-2-2 可进行多选,再生成链接,不选择生成所有 // @0.3 2018-2-2 随站更新,现从表格直接读取数据生成链接 // @0.2.1 2018-1-31 修复bug,备注名称加入当前日期 // @0.2 2018-1-31 不直接显示连接,变为两个复制按钮,点击即可复制所有链接,新增SSR链接(带备注与分组信息) // @0.1 2018-1-26 成功打开页面后直接展示所有ss链接 var ss_id; $("table").each(function (){ if ($("#"+this.id+"_wrapper").css("height") == undefined) { ss_id = "#"+this.id; console.info("real #"+this.id); } else { console.warn("fake #"+this.id); } }); var today_date = new Date(); var date_str = today_date.toISOString().slice(0,10)+'_'; var ss_links_str = "",ssr_links_str = ""; var gen = { // 将数据处理成链接 datas: function () { var ssdatas; if ($(ss_id).DataTable().rows('.selected').data().length) { ssdatas = $(ss_id).DataTable().rows('.selected').data(); } else { ssdatas = $(ss_id).DataTable().data(); } ss_links_str = ""; ssr_links_str = ""; $.each(ssdatas, function(i, data){ var ss = gen.ss(data), ssr =gen.ssr(data); $("#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'; }); return ssdatas; }, // 生成ss链接 ss: function (data) { return 'ss://'+Base64.encodeURI(data[4]+':'+data[3]+'@'+data[1]+':'+data[2])+'#'+data[6]+'('+date_str+data[5]+')'; }, // 生成ssr链接 ssr: function (data) { return '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'); }, qr: function (data) { var ss = gen.ss(data), ssr =gen.ssr(data); var qrcode = $('#qrcode'); qrcode.children('canvas').remove(); qrcode.children('br').remove(); qrcode.children('a').remove(); qrcode.qrcode({background:'#FFFFFF',ecLevel:'M',text:ss}); qrcode.append('<a href="'+ss+'">SS </a>'); qrcode.qrcode({background:'#FFFFFF',ecLevel:'M',text:ssr}); qrcode.append('<a href="'+ssr+'">SSR</a>'); } }; // 载入HTML function init_html(){ $(".main").append('<textarea id="input" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;"> </textarea>'); $(".main").append("<p id='ss-links' style='border-style:double;text-align:left;display:none'></p>"); $(".main").append("<p id='ssr-links' style='border-style:double;text-align:left;display:none'></p>"); $(".main").prepend("<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>"+ "<li class='aff'>"+ss_id+"</li></ul>"); $("#link_num").html("等待数据加载,请稍后... <span id='sel'></span>"); } function ready_ss() { $(ss_id+' tbody').on( 'click', 'tr', function () { $(this).toggleClass('selected'); $("#sel").html($(ss_id).DataTable().rows('.selected').data().length); }); $(ss_id+' tbody').on('click','i',function(){ gen.qr($(ss_id).DataTable().row($(this).closest('tr')).data()); }); function copy(str){ gen.datas(); var input = document.getElementById("input"); input.value = str; // 修改文本框的内容 input.select(); // 选中文本 document.execCommand("copy"); // 执行浏览器复制命令 alert("链接复制成功"); } $("#link_num").html("复制之后可使用剪贴板批量导入 (点击可选,当前已选择 <span id='sel'>0</span> 条),共"+gen.datas().length+"条"); document.getElementById('btn_ss').addEventListener('click',function(ev){ copy(ss_links_str); }); document.getElementById('btn_ssr').addEventListener('click',function(ev){ copy(ssr_links_str); }); } (function() { 'use strict'; init_html(); $(document).ready(function() { // 等待3s,数据加载后执行 setTimeout(function(){ var ss_table = $(ss_id).DataTable(); ready_ss(); },3000); }); })();