You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hkbak/SrcGetParse.js

121 lines
4.5 KiB

let 取随机列表 = function (arr, num) {
let sData = arr.slice(0), i = arr.length, min = i - num, item, index;
while (i-- > min) {
index = Math.floor((i + 1) * Math.random());
item = sData[index];
sData[index] = sData[i];
sData[i] = item;
}
return sData.slice(min);
};
function 取随机用户名(num) {
num = num || 6;
let arr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
return 取随机列表(arr, num).join("");
}
function 取随机QQ号(num) {
num = num || 6;
let arr = "0123456789".split("");
return 取随机列表(arr, num).join("");
}
let 注册账号 = {
A: function(regurl,regdata,jsonurl){
try{
let reg = request(regurl,
{headers: {'Referer': regurl },
body: regdata,
method: 'POST',
redirect:false,
withHeaders:true,
timeout: 3000
});
let regjg = JSON.parse(reg).headers.location || "";
if(/success/.test(regjg)){
let https = regurl.split('/');
let domain = https[0]+'//'+https[2];
let loginurl = domain+"/user/login";
let login = request(domain+'/user/login/checkUser',
{headers: {'Referer': loginurl, 'Cookie': getCookie(loginurl)},
body: "username="+username+"&password="+username,
method: 'POST',
timeout: 3000
});
if(JSON.parse(login).status == 200){
let html = request(domain+"/user/information", {headers: {'Referer': loginurl, 'Cookie': getCookie(loginurl)}});
let uid = html.split('<input type="number" class="form-control" value="')[1].split('"')[0];
let key = html.split('<input type="text" class="form-control" value="')[2].split('"')[0];
if(uid&&key){
return jsonurl.replace('@uid',uid).replace('@key',key);
}
}
}
}catch(e){
log(regurl+'>注册失败>'+e.message);
}
return "";
}
}
let username = 取随机用户名(10);
let qq = 取随机QQ号(10);
let 获取解析 = {
nxflv: function() {//诺讯
let regurl = "https://vip.nxflv.com/user/login/reg";
let regdata = "username="+username+"&qq="+qq+"&password="+username;
let jsonurl = "https://json.nxflv.com/?uid=@uid&key=@key&url=";
let result = 注册账号.A(regurl,regdata,jsonurl);
return result;
},
icu: function() {//爱酷
let regurl = "https://k.json.icu/user/login/reg";
let regdata = "username="+username+"&qq="+qq+"&inv=&password="+username;
let jsonurl = "https://k.json.icu/home/api?type=ys&uid=@uid&key=@key&url=";
let result = 注册账号.A(regurl,regdata,jsonurl);
return result;
},
m3u8: function() {//M3U8
let regurl = "https://api.m3u8.tv:5678/user/login/reg";
let regdata = "username="+username+"&qq="+qq+"&password="+username;
let jsonurl = "https://api.m3u8.tv:5678/home/api?type=ys&uid=@uid&key=@key&url=";
let result = 注册账号.A(regurl,regdata,jsonurl);
return result;
}
}
function bpParse(vipUrl,parsename) {
try{
if(!/聚影|帅助手/.test(MY_RULE.title)){
log('非法白嫖');
return "";
}
let parsefile = readFile('hiker://files/rules/Src/bpParse.json');
if(parsefile){
var parsejson = JSON.parse(aesDecode('Juying', parsefile));
}else{
var parsejson = {};
}
function getparse(parse){
parse = 获取解析[parsename]();
if(parse){
log('获得到新的白嫖解析!');
parsejson[parsename] = parse;
saveFile('hiker://files/rules/Src/bpParse.json', aesEncode('Juying', JSON.stringify(parsejson)));
}
return parse;
}
let parse = parsejson[parsename]?parsejson[parsename]:"";
parse = parse?parse:getparse(parse);
if(parse){
let json = JSON.parse(request(parse + vipUrl, {timeout: 10000 }));
if(json.code==300){
parse = getparse(parse);
json = JSON.parse(request(parse + vipUrl, {timeout: 10000 }));
}
return json.url || "";
}else{
return "";
}
}catch(e){
log(e.message);
return "";
}
}