自动获取所有SSR

自动获取【SSR小工具】的所有可用SSR链接,你只需要复制后从剪贴板导入SSR工具即可,省去人工一个个添加节点,手机也可使用Yandex浏览器安装此脚本!此脚本仅用于交流学习之用,切不可用于违法用途,因此产生的所有责任与开发者无关,请于下载后24小时内删除脚本,谢谢配合!

目前為 2020-03-04 提交的版本,檢視 最新版本

// ==UserScript==
// @name         自动获取所有SSR
// @namespace    http://www.cichui.top/
// @version      1.1
// @description  自动获取【SSR小工具】的所有可用SSR链接,你只需要复制后从剪贴板导入SSR工具即可,省去人工一个个添加节点,手机也可使用Yandex浏览器安装此脚本!此脚本仅用于交流学习之用,切不可用于违法用途,因此产生的所有责任与开发者无关,请于下载后24小时内删除脚本,谢谢配合!
// @author       CiChui
// @match        *://ssrtool.us/tool/free_ssr*
// @match        *://usky.ml/tool/free_ssr*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // 域名配置,如果域名更新请手动修改上边@match的URL地址
    var domain = window.location.origin;
    var apiUrl = domain + "/tool/api/free_ssr"
    var ssrCount,isBase64;
    window.getSsrData = function (){
        ssrCount=0;
        isBase64=false;
        layer.open({
            id:'ssrWindow',
            type:1,
            title:'<span style="color: #fff;font-weight: bold;">全选复制后在任务栏SSR图标上点击右键选择剪贴板批量导入</span>',
            area:'800px',
            offset: 't',
            btn: ['转Base64','一键复制'],
            yes:function(index, layero){
                if(!isBase64){
                    $("#ssrStr").val(btoa($("#ssrStr").val()));
                    isBase64=true;
                    layer.msg("转换成功,可用于更新自建服务器的订阅文件!",{icon:6});
                    //此处可以发送Base64用于更新自己服务器的订阅文件,需要一定的动手能力编写服务端更新程序
                    //////////////////////////////////////////////////////////////////////////////////////
                    /**/var subscribeURL = localStorage.getItem("SubscribeURL")
                    /**/if(subscribeURL){
                    /**/    layui.$.post(subscribeURL,{ssrStr:$("#ssrStr").val()},function(data){
                    /**/        layer.msg("订阅内容已发送");
                    /**/    });
                    /**/}
                    //////////////////////////////////////////////////////////////////////////////////////
                }else{
                    layer.msg('已转换');
                }
            },
            btn2: function(index, layero){
                layui.$("#ssrStr").focus();
                $("#ssrStr").select();
                document.execCommand("Copy");
                layer.msg('复制成功!', {icon: 1});
                window.getSelection().empty();
                return false;
            },
            skin: 'layui-layer-molv',
            content: '<textarea class="layui-textarea" style="width:100%;height:600px;background-color: #eaeaea;" id="ssrStr" readonly></textarea>'
        });
        layer.load(1, {time: 10*1000});
        window.GetData(1);
    }
    window.GetData = function (inPage){
        layui.$.ajax({
            type:"GET",
            url: apiUrl+"?page="+inPage+"&limit=90",
            dataType: "json",
            async: true,
            success: function(data) {
                var outPage = parseInt(data.count/90+(data.count%90>0?1:0));
                var min_ms = parseInt(document.getElementById("ms").value || 4000);
                for(var j=0; j<data.data.length;j++){
                    if(data.data[j].m_station_cn_status=="true" && data.data[j].ms<min_ms)
                    {
                        $("#ssrStr").append(data.data[j].ssrlink+"\n\n");
                        ssrCount++;
                    }
                }
                if(inPage<outPage){
                    window.GetData(++inPage);
                }
                else{
                    layer.closeAll('loading');
                    layer.msg("共提取到"+ssrCount+"条节点信息");
                }
            }
        });
    }
    window.UpSubscribe = function(){
        layer.prompt({title: '输入更新订阅内容的URL,清除输入0', formType: 0,value:localStorage.getItem("SubscribeURL")}, function(text, index){
            if(text==0)
            {
                localStorage.removeItem("SubscribeURL");
                layer.msg("已取消自动更新订阅");
            }
            else{
                localStorage.setItem("SubscribeURL",text);
                layer.msg("你设置的URL是:"+text);
            }
            layer.close(index);
        });
    }
    layui.$("#data").append(
' <div class="layui-form-pane layui-form-item">'+
        '<button class="layui-btn" type="button" onclick="window.getSsrData()">查看所有节点</button>'+
'   <label class="layui-form-label" style="width:130px;">延迟少于(ms)</label>'+
'   <div class="layui-input-inline" style="width:80px;">'+
'     <input type="number" id="ms" autocomplete="on" class="layui-input" min=0 max=4000 value="400" ondblclick="window.UpSubscribe()">'+
'   </div>'+
' </div>');

  //window.getSsrData();
})();