// ==UserScript==
// @name free-ss
// @version 0.1.11
// @homepage http://xieshang.ren/2018/03/01/Tampermonkey_free_ss_plus/
// @description 服务器最新地址:www.free-ss.ooo
// @author XSC
// @include http://*free-ss.*/
// @include https://*free-ss.*/
// @match https://*free-ss.*/
// @match http://*free-ss.*/
// @require https://cdn.jsdelivr.net/npm/js-base64@2.4.3/base64.min.js
// @require https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js
// @grant GM_setClipboard
// @run-at document-end
// @home-url https://www.xieshang.ren
// @namespace https://greasyfork.org/users/163852
// @downloadURL https://update.greasyfork.icu/scripts/38235/free-ss.user.js
// @updateURL https://update.greasyfork.icu/scripts/38235/free-ss.meta.js
// ==/UserScript==
// @0.1.11 2019-3-28 修复因未引入jquery在新页面无法出现的BUG
// @0.1.10 2019-1-18 今天突然出现只刷出一个表格,并且是错误的情况,对此做了优化
// @0.1.9 2019-1-3 修改窗口从左下角弹出,窗口遮挡太讨厌
// @0.1.8 2019-1-3 增加对最新网址的支持 www.free-ss.tw
// @0.1.7 2018-5-11 修复对稳定性增加干扰的过滤
// @0.1.6 2018-4-8 选择界面增加失效报警
// @0.1.5 2018-4-8 闲来无事增加当只有一个有效时,自动进入国家和密码的选择
// @0.1.4 2018-4-3 去除不稳定的服务器信息
// @0.1.3 2018-3-28 修改判断长度
// @0.1.2 2018-3-28 修复作者改了IP地址名称
// @0.1.1 2018-3-28 尝试修复Userscript+不显示脚本问题
// @0.1.0 2018-3-26 增加对www的支持,chrome选择服务器时有侧边条,增大排版面积,增加反馈按钮,加快修复的速度
// @0.0.9 2018-3-19 少加了等号导致数据判断错误。。。最后改了下点点东西,就没测试了。。。果然不能偷懒。。。
// @0.0.8 2018-3-19 老师又淘气滴把加密和密码调了个gè,咱继续躲猫猫~~~
// @0.0.7 2018-3-13 去除错误的取消按键事件
// @0.0.6 2018-3-13 老师又更新了代码,表格也开始躲猫猫了,那么亲们,别偷懒了,自己选吧(┬_┬)
// @0.0.5 2018-3-8 更换界面,使用[国家][加密方式]双条件的方式进行复制,下一版本增加全选功能,先回家吃饭了:-)
// @0.0.4 2018-3-6 增加一条明文,用于判断脚本是否失效
// @0.0.3 2018-2-28 修复失效
// @0.0.2 2018-2-24 修改表格判断方式
// @0.0.1 2018-2-7 初始版本
(function() {
var $ = unsafeWindow.jQuery;
var ss_urls = new Array(0);
var ss_num=0;
var ss_txt='';
var ss_check='';
var ss_content='';
var data_table=new Array(0);
var countrylist=new Array(0);
var encryptlist=new Array(0);
var ss_selecttxt='';
var ss_setconfigtxt='';
var goodtab = new Array(0);
var tabchoicetxt = '';
var tabsequence=new Array(0);
var tabsequence_ip=0;
var tabsequence_port=0;
var tabsequence_pass=0;
var tabsequence_method=0;
var tabsequence_clock=0;
var tabsequence_globe=0;
// Your code here...
function print(str) {
console.log(str);
}
function loadconfig() {
}
function saveconfig() {
GM_setValue("EC_aes_cfb", document.querySelector("#ecset_cfb").checked);
}
function genCheckBox(id, name, value, showText, parentIndex, isCheck) {
var check1 = '';
if (!isCheck) {
check1 = "").concat(showText).concat("");
return check1;
} else {
check1 = "").concat(showText).concat("");
return check1;
}
}
function genradioBox(id, parentIndex, value, showText, name, isCheck) {
var check1 = '';
if (!isCheck) {
check1 = "").concat(showText).concat("");
return check1;
} else {
check1 = "").concat(showText).concat("");
return check1;
}
}
function layer_setconfig(){
var i = 0;
ss_setconfigtxt = "";
ss_setconfigtxt += "请勾选上自动勾起的协议类型
";
ss_setconfigtxt += "