This commit is contained in:
Liu committed 2025-06-25 00:18:49 +08:00
1 parent 645cb0f8e1
commit edec9033cf
180 files changed
+58735 -69206

No files matched your search

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

-40
View File
@@ -1,40 +0,0 @@
var rule = {
title: '56动漫',
host: 'https://www.56dm.cc/',
url: 'https://www.56dm.cc/type/fyclass-fypage.html',
searchUrl: 'https://www.56dm.cc/search/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA', // "Cookie": ""
}, // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
class_parse: '.snui-header-menu-nav li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: `js:
if(/\\.(m3u8|mp4)/.test(input)){
input = {parse:0,url:input}
}else{
if(rule.parse_url.startsWith('json:')){
let purl = rule.parse_url.replace('json:','')+input;
let html = request(purl);
input = {parse:0,url:JSON.parse(html).url}
}else{
input= rule.parse_url+input;
}
}
`,
limit: 6,
推荐: '.cCBf_FAAEfbc;li;a&&title;.lazyload&&data-original;.dAD_BBCI&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.cCBf_FAAEfbc li;a&&title;a&&data-original;.dAD_BBCI&&Text;a&&href',
二级: {
"title": "h1&&Text",
"img": ".stui-content__thumb .lazyload&&data-original",
"desc": ".cCBf_DABCcac__hcIdeE p:eq(0)&&Text;.cCBf_DABCcac__hcIdeE p:eq(1)&&Text;.cCBf_DABCcac__hcIdeE p:eq(2)&&Text;.cCBf_DABCcac__hcIdeE p:eq(3)&&Text;.cCBf_DABCcac__hcIdeE p:eq(4)&&Text",
"content": ".detail&&Text",
"tabs": ".channel-tab li",
"lists": ".play-list-content:eq(#id) li"
},
搜索: '.cCBf_FAAEfbc__dbD;a&&title;.lazyload&&data-original;.dAD_BBCI&&Text;a&&href;.cCBf_FAAEfbc__hcIdeE&&p:eq(0) p&&Text',
}
-109
View File
@@ -1,109 +0,0 @@
/**
* 传参 ?type=url&params=http://122.228.85.203:1000@泽少1
* 传参 ?type=url&params=http://122.228.85.203:1000@泽少2
*/
var rule = {
title: 'APPV2[模板]',
author: '道长',
version: '20241012 beta1',
update_info: `
20241012:
1.根据群友嗷呜的appv2模板修改成可传参源,类似采集之王用法传参
`.trim(),
host: '',
url: '/api.php/app/video?tid=fyclassfyfilter&limit=20&pg=fypage',
filter_url: '',
filter: {},
homeUrl: '/api.php/app/index_video',
detailUrl: '/api.php/app/video_detail?id=fyid',
searchUrl: '/api.php/app/search?text=**&pg=fypage',
parseUrl: '',
searchable: 2,
quickSearch: 1,
filterable: 1,
headers: {
'User-Agent': 'okhttp/4.1.0'
},
params: 'http://122.228.85.203:1000$http://122.228.85.203:1000/play?url=',
hostJs: $js.toString(() => {
HOST = rule.params.split('$')[0];
}),
预处理: $js.toString(() => {
log(`传入参数:${rule.params}`);
let _host = rule.params.split('$')[0];
rule.parseUrl = rule.params.split('$')[1];
let _url = _host.rstrip('/') + '/api.php/app/nav?token';
let _headers = {'User-Agent': 'Dart/2.14 (dart:io)'};
let html = request(_url, {headers: _headers});
let data = JSON.parse(html);
let _classes = [];
let _filter = {};
let _filter_url = '';
let dy = {"class": "类型", "area": "地区", "lang": "语言", "year": "年份", "letter": "字母", "by": "排序"};
let jsonData = data.list;
for (let k = 0; k < jsonData.length; k++) {
let hasNonEmptyField = false;
let _obj = {
type_name: jsonData[k].type_name,
type_id: jsonData[k].type_id,
};
_classes.push(_obj);
for (let key in dy) {
if (key in jsonData[k].type_extend && jsonData[k].type_extend[key].trim() !== "") {
hasNonEmptyField = true;
break
}
}
if (hasNonEmptyField) {
_filter[String(jsonData[k].type_id)] = [];
for (let dkey in jsonData[k].type_extend) {
if (dkey in dy && jsonData[k].type_extend[dkey].trim() !== "") {
if (k === 0) {
_filter_url += `&${dkey}={{fl.${dkey}}}`
}
let values = jsonData[k].type_extend[dkey].split(',');
let valueArray = values.map(value => ({"n": value.trim(), "v": value.trim()}));
_filter[String(jsonData[k].type_id)].push({"key": dkey, "name": dy[dkey], "value": valueArray})
}
}
}
}
rule.classes = _classes;
rule.filter = _filter;
rule.filter_url = _filter_url;
}),
class_parse: $js.toString(() => {
input = rule.classes;
}),
play_parse: true,
lazy: $js.toString(() => {
if (!/^http/.test(input)) {
input = rule.parseUrl + input
} else {
input = {
url: input,
parse: 0,
header: ''
}
}
}),
推荐: $js.toString(() => {
let data = JSON.parse(request(input)).list;
let com = [];
data.forEach(item => {
if (Array.isArray(item.vlist) && item.vlist.length !== 0) {
com = com.concat(item.vlist)
}
})
VODS = com
}),
一级: $js.toString(() => {
VODS = JSON.parse(request(input)).list
}),
二级: $js.toString(() => {
VOD = JSON.parse(request(input)).data
}),
搜索: '*',
}
+1 -169
View File
@@ -1,169 +1 @@
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
// 3个set-Cookie
var rule = {
title:'Anime1动畫',
host:'https://anime1.me',
url: '/fyclass',
detailUrl:'/?cat=fyid',
searchUrl: '/page/fypage?s=**',
searchable:2,
quickSearch:0,
headers:{'User-Agent': 'PC_UA'},
timeout:5000,
class_name:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&更早',
class_url:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&2017',
play_parse:true,
lazy:`js:
var apiurl = 'https://v.anime1.me/api';
var html = request(apiurl, {
headers: {
'Referer': HOST,
},
body: 'd=' + input,
method: 'POST',
withHeaders: true
});
let json = JSON.parse(html);
print(json);
log(Object.keys(json));
let setCk = Object.keys(json).filter(it => it.toLowerCase() === "set-cookie");
let cookie = setCk ? json[setCk] : "";
// 3个set-Cookie
if (Array.isArray(cookie)) {
cookie = cookie.join(';');
}
cookie = cookie.split(';').filter(function(it) {
return ['e', 'p', 'h'].includes(it.split('=')[0])
}).join(';');
log(cookie);
var purl = JSON.parse(json.body).s[0].src;
if (purl.startsWith('/')) {
purl = 'https:' + purl
}
input = {
jx: 0,
url: purl,
parse: 0,
header: JSON.stringify({
'referer': HOST,
'Cookie': cookie,
'user-agent': PC_UA
}),
}
`,
limit:6,
推荐: `js:
var d = [];
function stripHtmlTag(src) {
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
}
var timestamp = new Date().getTime();
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
var list = JSON.parse(json);
let playKeys = Object.values(list).filter(function(x) {
return x[2].includes('連載中');
});
playKeys.forEach(function(it) {
d.push({
title: stripHtmlTag(it[1]),
img: 'https://sta.anicdn.com/playerImg/8.jpg',
desc: it[2],
url: it[0],
});
});
setResult(d);
`,
一级: `js:
var d = [];
function stripHtmlTag(src) {
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
}
var timestamp = new Date().getTime();
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
var list = JSON.parse(json);
let playKeys = Object.values(list).filter(function(x) {
if (MY_CATE === '連載中') return x[2].includes(MY_CATE);
else if (MY_CATE === '2017') return x[3] <= MY_CATE;
else return x[3] == MY_CATE;
});
playKeys.forEach(function(it) {
d.push({
title: stripHtmlTag(it[1]),
img: 'https://sta.anicdn.com/playerImg/8.jpg',
desc: it[2],
url: it[0],
});
});
setResult(d);
`,
二级: `js:
pdfh = jsp.pdfh; pdfa = jsp.pdfa; pd = jsp.pd;
var html = request(input);
var timestamp = new Date().getTime();
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
var list = JSON.parse(json);
var vid = input.split('=')[1];
let playKeys = Object.values(list).find(function(x) {
return x[0] === parseInt(vid);
});
VOD = {
vod_pic: 'https://sta.anicdn.com/playerImg/8.jpg',
vod_id: playKeys[0],
vod_name: playKeys[1],
vod_content: playKeys[2],
vod_year: playKeys[3],
type_name: playKeys[4],
vod_actor: playKeys[5],
};
var pageurl = pd(html, '.cat-links&&a&&href');
var pagenum = 1;
let vod_tab_list = [];
let vlist = [];
for (let p = 1; p < parseInt(pagenum) + 1; p++) {
let phtml = request(pageurl + '/page/' + pagenum);
let new_vod_list = [];
let vodList = [];
vodList = pdfa(phtml, '.site-main&&article');
for (let i = 0; i < vodList.length; i++) {
let it = vodList[i];
let ptitle = pdfh(it, '.entry-title&&Text').replace(/\\[(.*)\\]/, '$1');
let purl = pd(it, '.video-js&&data-apireq');
new_vod_list.push(ptitle + '$' + purl);
}
vlist = vlist.concat(new_vod_list);
try {
pagenum = pd(phtml, '.nav-previous&&a&&href').split('/page/')[1];
} catch(e) {}
}
let vlist2 = vlist.reverse().join("#");
vod_tab_list.push(vlist2);
VOD.vod_play_from = '在线播放';
VOD.vod_play_url = vod_tab_list.join("$$$");
`,
搜索: `js:
var d = [];
function stripHtmlTag(src) {
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
}
var timestamp = new Date().getTime();
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
var list = JSON.parse(json);
var wd = input.split('=')[1];
let playKeys = Object.values(list).filter(function(x) {
return x[1].includes(wd);
});
log(playKeys);
playKeys.forEach(function(it) {
d.push({
title: stripHtmlTag(it[1]),
img: 'https://sta.anicdn.com/playerImg/8.jpg',
desc: it[2],
url: it[0],
});
});
setResult(d);
`,
}
Ly8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8gM+S4qnNldC1Db29raWUKCnZhciBydWxlID0gewoJdGl0bGU6J0FuaW1lMeWKqOeVqycsCglob3N0OidodHRwczovL2FuaW1lMS5tZScsCgl1cmw6ICcvZnljbGFzcycsCglkZXRhaWxVcmw6Jy8/Y2F0PWZ5aWQnLAoJc2VhcmNoVXJsOiAnL3BhZ2UvZnlwYWdlP3M9KionLAoJc2VhcmNoYWJsZToyLAoJcXVpY2tTZWFyY2g6MCwKCWhlYWRlcnM6eydVc2VyLUFnZW50JzogJ1BDX1VBJ30sCgl0aW1lb3V0OjUwMDAsCiAgICBjbGFzc19uYW1lOifpgKPovInkuK0mMjAyNSYyMDI0JjIwMjMmMjAyMiYyMDIxJjIwMjAmMjAxOSYyMDE4JuabtOaXqScsCiAgICBjbGFzc191cmw6J+mAo+i8ieS4rSYyMDI1JjIwMjQmMjAyMyYyMDIyJjIwMjEmMjAyMCYyMDE5JjIwMTgmMjAxNycsCglwbGF5X3BhcnNlOnRydWUsCglsYXp5OmBqczoKCQl2YXIgYXBpdXJsID0gJ2h0dHBzOi8vdi5hbmltZTEubWUvYXBpJzsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoYXBpdXJsLCB7CgkJCWhlYWRlcnM6IHsKCQkJCSdSZWZlcmVyJzogSE9TVCwKCQkJfSwKCQkJYm9keTogJ2Q9JyArIGlucHV0LAoJCQltZXRob2Q6ICdQT1NUJywKCQkJd2l0aEhlYWRlcnM6IHRydWUKCQl9KTsKCQlsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CgkJcHJpbnQoanNvbik7CgkJbG9nKE9iamVjdC5rZXlzKGpzb24pKTsKCQlsZXQgc2V0Q2sgPSBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoaXQgPT4gaXQudG9Mb3dlckNhc2UoKSA9PT0gInNldC1jb29raWUiKTsKCQlsZXQgY29va2llID0gc2V0Q2sgPyBqc29uW3NldENrXSA6ICIiOwoJCS8vIDPkuKpzZXQtQ29va2llCgkJaWYgKEFycmF5LmlzQXJyYXkoY29va2llKSkgewoJCQljb29raWUgPSBjb29raWUuam9pbignOycpOwoJCX0KCQljb29raWUgPSBjb29raWUuc3BsaXQoJzsnKS5maWx0ZXIoZnVuY3Rpb24oaXQpIHsKCQkJcmV0dXJuIFsnZScsICdwJywgJ2gnXS5pbmNsdWRlcyhpdC5zcGxpdCgnPScpWzBdKQoJCX0pLmpvaW4oJzsnKTsKCQlsb2coY29va2llKTsKCQl2YXIgcHVybCA9IEpTT04ucGFyc2UoanNvbi5ib2R5KS5zWzBdLnNyYzsKCQlpZiAocHVybC5zdGFydHNXaXRoKCcvJykpIHsKCQkJcHVybCA9ICdodHRwczonICsgcHVybAoJCX0KCQlpbnB1dCA9IHsKCQkJang6IDAsCgkJCXVybDogcHVybCwKCQkJcGFyc2U6IDAsCgkJCWhlYWRlcjogSlNPTi5zdHJpbmdpZnkoewoJCQkJJ3JlZmVyZXInOiBIT1NULAoJCQkJJ0Nvb2tpZSc6IGNvb2tpZSwKCQkJCSd1c2VyLWFnZW50JzogUENfVUEKCQkJfSksCgkJfQoJYCwKCWxpbWl0OjYsCgnmjqjojZA6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlyZXR1cm4geFsyXS5pbmNsdWRlcygn6YCj6LyJ5LitJyk7CgkJfSk7CgkJcGxheUtleXMuZm9yRWFjaChmdW5jdGlvbihpdCkgewoJCQlkLnB1c2goewoJCQkJdGl0bGU6IHN0cmlwSHRtbFRhZyhpdFsxXSksCgkJCQlpbWc6ICdodHRwczovL3N0YS5hbmljZG4uY29tL3BsYXllckltZy84LmpwZycsCgkJCQlkZXNjOiBpdFsyXSwKCQkJCXVybDogaXRbMF0sCgkJCX0pOwoJCX0pOwoJCXNldFJlc3VsdChkKTsKCWAsCgnkuIDnuqc6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlpZiAoTVlfQ0FURSA9PT0gJ+mAo+i8ieS4rScpIHJldHVybiB4WzJdLmluY2x1ZGVzKE1ZX0NBVEUpOwoJCQllbHNlIGlmIChNWV9DQVRFID09PSAnMjAxNycpIHJldHVybiB4WzNdIDw9IE1ZX0NBVEU7CgkJCWVsc2UgcmV0dXJuIHhbM10gPT0gTVlfQ0FURTsKCQl9KTsKCQlwbGF5S2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGl0KSB7CgkJCWQucHVzaCh7CgkJCQl0aXRsZTogc3RyaXBIdG1sVGFnKGl0WzFdKSwKCQkJCWltZzogJ2h0dHBzOi8vc3RhLmFuaWNkbi5jb20vcGxheWVySW1nLzguanBnJywKCQkJCWRlc2M6IGl0WzJdLAoJCQkJdXJsOiBpdFswXSwKCQkJfSk7CgkJfSk7CgkJc2V0UmVzdWx0KGQpOwoJYCwKCeS6jOe6pzogYGpzOgoJCXBkZmggPSBqc3AucGRmaDsgcGRmYSA9IGpzcC5wZGZhOyBwZCA9IGpzcC5wZDsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoaW5wdXQpOwoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJdmFyIHZpZCA9IGlucHV0LnNwbGl0KCc9JylbMV07CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maW5kKGZ1bmN0aW9uKHgpIHsKCQkJcmV0dXJuIHhbMF0gPT09IHBhcnNlSW50KHZpZCk7CgkJfSk7CgkJVk9EID0gewoJCQl2b2RfcGljOiAnaHR0cHM6Ly9zdGEuYW5pY2RuLmNvbS9wbGF5ZXJJbWcvOC5qcGcnLAoJCQl2b2RfaWQ6IHBsYXlLZXlzWzBdLAoJCQl2b2RfbmFtZTogcGxheUtleXNbMV0sCgkJCXZvZF9jb250ZW50OiBwbGF5S2V5c1syXSwKCQkJdm9kX3llYXI6IHBsYXlLZXlzWzNdLAoJCQl0eXBlX25hbWU6IHBsYXlLZXlzWzRdLAoJCQl2b2RfYWN0b3I6IHBsYXlLZXlzWzVdLAoJCX07CgkJdmFyIHBhZ2V1cmwgPSBwZChodG1sLCAnLmNhdC1saW5rcyYmYSYmaHJlZicpOwoJCXZhciBwYWdlbnVtID0gMTsKCQlsZXQgdm9kX3RhYl9saXN0ID0gW107CgkJbGV0IHZsaXN0ID0gW107CgkJZm9yIChsZXQgcCA9IDE7IHAgPCBwYXJzZUludChwYWdlbnVtKSArIDE7IHArKykgewoJCQlsZXQgcGh0bWwgPSByZXF1ZXN0KHBhZ2V1cmwgKyAnL3BhZ2UvJyArIHBhZ2VudW0pOwoJCQlsZXQgbmV3X3ZvZF9saXN0ID0gW107CgkJCWxldCB2b2RMaXN0ID0gW107CgkJCXZvZExpc3QgPSBwZGZhKHBodG1sLCAnLnNpdGUtbWFpbiYmYXJ0aWNsZScpOwoJCQlmb3IgKGxldCBpID0gMDsgaSALine truncated
File diff suppressed because it is too large. Load diff
-13
View File
@@ -1,13 +0,0 @@
muban.短视2.二级.img = '.detail-pic&&img&&data-src';
var rule = {
title: 'NyaFun',
模板:'短视2',
host: 'https://www.nyafun.net',
homeUrl:'/map.html',
url: '/index.php/api/vod#type=fyclass&page=fypage',
class_name:'番剧&剧场',
class_url:'2&1',
detailUrl:'/bangumi/fyid.html',
推荐:'.border-box .public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
double: false, // 推荐内容是否双层定位
}
-70
View File
@@ -1,70 +0,0 @@
[
{
"share_name": "优品阁",
"share_id": "uWa9gbM3RJ7"
},
{
"share_name": "阿里1T",
"share_id": "mxAfB6eRgY4"
},
{
"share_name": "平凡中的",
"share_id": "4ydLxf7VgH7"
},
{
"share_name": "tacit0924",
"share_id": "DNgnCudf4cD?pwd=6666"
},
{
"share_name": "黄妈",
"share_id": "4bGRVUdUtct"
},
{
"share_name": "YYDSVIP",
"share_id": "dieULBdYP3D"
},
{
"share_name": "优源阁",
"share_id": "RnjUi1urdb2"
},
{
"share_name": "风流动漫",
"share_id": "WdaaeX7HK44"
},
{
"share_name": "风流剧集",
"share_id": "kgxWjZsK6bq"
},
{
"share_name": "xiaaluo",
"share_id": "sg8CdGUwmUr"
},
{
"share_name": "4K影视",
"share_id": "wHPKUENKFsS"
},
{
"share_name": "诺兰全集",
"share_id": "gf2GebXnZHh"
},
{
"share_name": "纪录片",
"share_id": "fSNHaYST47s"
},
{
"share_name": "掌灯者|港",
"share_id": "wHPKUENKFsS"
},
{
"share_name": "掌灯者|一",
"share_id": "wHPKUENKFsS"
},
{
"share_name": "掌灯者|二",
"share_id": "wHPKUENKFsS"
},
{
"share_name": "掌灯者|三",
"share_id": "wHPKUENKFsS"
}
]
-10945
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
-3862
View File
File diff suppressed because it is too large. Load diff
-69
View File
@@ -1,69 +0,0 @@
/***
* gbk编码解码函数
* strTool = gbkTool() strTool.encode(key)
* @returns {{encode: (function(*): *), decode: (function(*): *)}}
*/
export function gbkTool() {
var data = function(zipData) {
var re = zipData
.replace(/#(\d+)\$/g, function(a, b) {
return Array(+b + 3).join('#');
})
.replace(/#/g, '####')
.replace(/(\w\w):([\w#]+)(?:,|$)/g, function(a, hd, dt) {
return dt.replace(/../g, function(a) {
if (a != '##') {
return hd + a;
} else {
return a;
}
});
});
return re;
}('4e:020405060f12171f20212326292e2f313335373c40414244464a5155575a5b6263646567686a6b6c6d6e6f727475767778797a7b7c7d7f808182838485878a#909697999c9d9ea3aaafb0b1b4b6b7b8b9bcbdbec8cccfd0d2dadbdce0e2e6e7e9edeeeff1f4f8f9fafcfe,4f:00020304050607080b0c12131415161c1d212328292c2d2e31333537393b3e3f40414244454748494a4b4c525456616266686a6b6d6e7172757778797a7d8081828586878a8c8e909293959698999a9c9e9fa1a2a4abadb0b1b2b3b4b6b7b8b9babbbcbdbec0c1c2c6c7c8c9cbcccdd2d3d4d5d6d9dbe0e2e4e5e7ebecf0f2f4f5f6f7f9fbfcfdff,50:000102030405060708090a#0b0e1011131516171b1d1e20222324272b2f303132333435363738393b3d3f404142444546494a4b4d5051525354565758595b5d5e5f6061626364666768696a6b6d6e6f70717273747578797a7c7d818283848687898a8b8c8e8f909192939495969798999a9b9c9d9e9fa0a1a2a4a6aaabadaeafb0b1b3b4b5b6b7b8b9bcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d7d8d9dbdcdddedfe0e1e2e3e4e5e8e9eaebeff0f1f2f4f6f7f8f9fafcfdfeff,51:00010203040508#090a0c0d0e0f1011131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e42474a4c4e4f5052535758595b5d5e5f606163646667696a6f727a7e7f838486878a8b8e8f90919394989a9d9e9fa1a3a6a7a8a9aaadaeb4b8b9babebfc1c2c3c5c8cacdced0d2d3d4d5d6d7d8d9dadcdedfe2e3e5e6e7e8e9eaeceef1f2f4f7fe,52:0405090b0c0f101314151c1e1f2122232526272a2c2f313234353c3e4445464748494b4e4f5253555758#595a5b5d5f6062636466686b6c6d6e7071737475767778797a7b7c7e808384858687898a8b8c8d8e8f91929495969798999a9ca4a5a6a7aeafb0b4b5b6b7b8b9babbbcbdc0c1c2c4c5c6c8cacccdcecfd1d3d4d5d7d9dadbdcdddee0e1e2e3e5e6e7e8e9eaebecedeeeff1f2f3f4f5f6f7f8fbfcfd,53:0102030407090a0b0c0e11121314181b1c1e1f2224252728292b2c2d2f3031323334353637383c3d404244464b4c4d505458595b5d65686a6c6d7276797b7c7d7e80818387888a8e8f#90919293949697999b9c9ea0a1a4a7aaabacadafb0b1b2b3b4b5b7b8b9babcbdbec0c3c4c5c6c7cecfd0d2d3d5dadcdddee1e2e7f4fafeff,54:000205070b1418191a1c2224252a303336373a3d3f4142444547494c4d4e4f515a5d5e5f6061636567696a6b6c6d6e6f7074797a7e7f8183858788898a8d919397989c9e9fa0a1a2a5aeb0b2b5b6b7b9babcbec3c5cacbd6d8dbe0e1e2e3e4ebeceff0f1f4f5f6f7f8f9fbfe,55:0002030405080a0b0c0d0e121315161718191a1c1d1e1f212526#28292b2d3234353638393a3b3d40424547484b4c4d4e4f515253545758595a5b5d5e5f60626368696b6f7071727374797a7d7f85868c8d8e9092939596979a9b9ea0a1a2a3a4a5a6a8a9aaabacadaeafb0b2b4b6b8babcbfc0c1c2c3c6c7c8cacbcecfd0d5d7d8d9dadbdee0e2e7e9edeef0f1f4f6f8f9fafbfcff,56:0203040506070a0b0d1011121314151617191a1c1d202122252628292a2b2e2f30333537383a3c3d3e404142434445464748494a4b4f5051525355565a5b5d5e5f6061#636566676d6e6f70727374757778797a7d7e7f80818283848788898a8b8c8d9091929495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b8b9babbbdbebfc0c1c2c3c4c5c6c7c8c9cbcccdcecfd0d1d2d3d5d6d8d9dce3e5e6e7e8e9eaeceeeff2f3f6f7f8fbfc,57:00010205070b0c0d0e0f101112131415161718191a1b1d1e202122242526272b313234353637383c3d3f414344454648494b52535455565859626365676c6e707172747578797a7d7e7f80#818788898a8d8e8f90919495969798999a9c9d9e9fa5a8aaacafb0b1b3b5b6b7b9babbbcbdbebfc0c1c4c5c6c7c8c9cacccdd0d1d3d6d7dbdcdee1e2e3e5e6e7e8e9eaebeceef0f1f2f3f5f6f7fbfcfeff,58:0103040508090a0c0e0f101213141617181a1b1c1d1f222325262728292b2c2d2e2f31323334363738393a3b3c3d3e3f4041424345464748494a4b4e4f505253555657595a5b5c5d5f6061626364666768696a6d6e6f707172737475767778797a7b7c7d7f82848687888a8b8c#8d8e8f909194959697989b9c9da0a1a2a3a4a5a6a7aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbdbebfc0c2c3c4c6c7c8c9cacbcccdcecfd0d2d3d4d6d7d8d9dadbdcdddedfe0e1e2e3e5e6e7e8e9eaedeff1f2f4f5f7f8fafbfcfdfeff,59:000103050608090a0b0c0e1011121317181b1d1e2021222326282c30323335363b3d3e3f404345464a4c4d505253595b5c5d5e5f616364666768696a6b6c6d6e6f70717275777a7b7c7e7f8085898b8c8e8f90919495989a9b9c9d9fa0a1a2a6#a7acadb0b1b3b4b5b6b7b8babcbdbfc0c1c2c3c4c5c7c8c9cccdcecfd5d6d9dbdedfe0e1e2e4e6e7e9eaebedeeeff0f1f2f3f4f5f6f7f8fafcfdfe,5a:00020a0b0d0e0f101214151617191a1b1d1e2122242627282a2b2c2d2e2f3033353738393a3b3d3e3f414243444547484b4c4d4e4f5051525354565758595b5c5d5e5f60616364656668696b6c6d6e6f7071727378797b7c7d7e808182838485868788898a8b8c8d8e8f9091939495969798999c9d9e9fa0a1a2a3a4a5a6a7a8a9abac#adaeafb0b1b4b6b7b9babbbcbdbfc0c3c4c5c6c7c8cacbcdcecfd0d1d3d5d7d9dadbdddedfe2e4e5e7e8eaecedeeeff0f2f3f4f5f6f7f8f9fafbfcfdfeff,5b:0001020304050607080a0b0c0d0e0f10111213141518191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303133353638393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f52565e606167686b6d6e6f7274767778797b7c7e7f82868a8d8e90919294969fa7a8a9acadaeafb1b2b7babbbcc0c1c3c8c9cacbcdcecf#d1d4d5d6d7d8d9dadbdce0e2e3e6e7e9eaebecedeff1f2f3f4f5f6f7fdfe,5c:0002030507080b0c0d0e10121317191b1e1f2021232628292a2b2d2e2f303233353637434446474c4d5253545657585a5b5c5d5f62646768696a6b6c6d70727374757677787b7c7d7e808384858687898a8b8e8f9293959d9e9fa0a1a4a5a6a7a8aaaeafb0b2b4b6b9babbbcbec0c2c3c5c6c7c8c9cacccdcecfd0d1d3d4d5d6d7d8dadbdcdddedfe0e2e3e7e9ebeceeeff1f2f3f4f5f6f7f8f9fafcfdfeff,5d:00#01040508090a0b0c0d0f10111213151718191a1c1d1f2021222325282a2b2c2f3031323335363738393a3b3c3f4041424344454648494d4e4f5051525354555657595a5c5e5f6061626364656667686a6d6e7071727375767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f90Line truncated
U2Ghash = {},
G2Uhash = {};
! function(data) {
var k = 0;
data = data.match(/..../g);
for (var i = 0x81; i <= 0xfe; i++) {
for (var j = 0x40; j <= 0xFE; j++) {
U2Ghash[data[k++]] = ('%' + i.toString(16) + '%' + j.toString(16))
.toUpperCase();
}
}
for (var key in U2Ghash) {
G2Uhash[U2Ghash[key]] = key;
}
}(data);
function isAscii(unicode) {
return ((unicode == 0x20AC) || (unicode <= 0x007F && unicode >= 0x0000));
}
return {
encode: function(str) {
return str.replace(/./g, function(a) {
var code = a.charCodeAt(0);
if (isAscii(code)) {
return encodeURIComponent(a);
} else {
var key = code.toString(16);
if (key.length != 4) key = ('000' + key).match(/....$/)[0];
return U2Ghash[key] || a;
}
});
},
decode: function(str) {
return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g, function(a) {
if (a in G2Uhash) {
return String.fromCharCode('0x' + G2Uhash[a]);
} else {
return a;
}
}).replace(/%[\w]{2}/g, function(a) {
return decodeURIComponent(a);
});
}
};
}
-504
View File
@@ -1,504 +0,0 @@
(function(global, factory) {
typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.jinja = {}))
})(this, function(jinja) {
"use strict";
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
var IDENTIFIERS = /[$_a-z][$\w]*/gi;
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
var ACCESSOR = /(\.i|\[[@#i]\])/g;
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
var LEADING_SPACE = /^\s+/;
var TRAILING_SPACE = /\s+$/;
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
var TAGS = {
"{{{": /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
"{{": /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
"{%": /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
"{#": /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
};
var delimeters = {
"{%": "directive",
"{{": "output",
"{#": "comment"
};
var operators = {
and: "&&",
or: "||",
not: "!",
is: "==",
isnot: "!="
};
var constants = {
true: true,
false: false,
null: null
};
function Parser() {
this.nest = [];
this.compiled = [];
this.childBlocks = 0;
this.parentBlocks = 0;
this.isSilent = false
}
Parser.prototype.push = function(line) {
if (!this.isSilent) {
this.compiled.push(line)
}
};
Parser.prototype.parse = function(src) {
this.tokenize(src);
return this.compiled
};
Parser.prototype.tokenize = function(src) {
var lastEnd = 0,
parser = this,
trimLeading = false;
matchAll(src, START_TOKEN, function(open, index, src) {
var match = src.slice(index + open.length).match(TAGS[open]);
match = match ? match[0] : "";
var simplified = match.replace(STRINGS, "@");
if (!match || ~simplified.indexOf(open)) {
return index + 1
}
var inner = match.slice(0, 0 - open.length);
if (inner.charAt(0) === "-") var wsCollapseLeft = true;
if (inner.slice(-1) === "-") var wsCollapseRight = true;
inner = inner.replace(/^-|-$/g, "").trim();
if (parser.rawMode && open + inner !== "{%endraw") {
return index + 1
}
var text = src.slice(lastEnd, index);
lastEnd = index + open.length + match.length;
if (trimLeading) text = trimLeft(text);
if (wsCollapseLeft) text = trimRight(text);
if (wsCollapseRight) trimLeading = true;
if (open === "{{{") {
open = "{{";
inner += "|safe"
}
parser.textHandler(text);
parser.tokenHandler(open, inner)
});
var text = src.slice(lastEnd);
if (trimLeading) text = trimLeft(text);
this.textHandler(text)
};
Parser.prototype.textHandler = function(text) {
this.push("write(" + JSON.stringify(text) + ");")
};
Parser.prototype.tokenHandler = function(open, inner) {
var type = delimeters[open];
if (type === "directive") {
this.compileTag(inner)
} else if (type === "output") {
var extracted = this.extractEnt(inner, STRINGS, "@");
extracted.src = extracted.src.replace(/\|\|/g, "~").split("|");
extracted.src = extracted.src.map(function(part) {
return part.split("~").join("||")
});
var parts = this.injectEnt(extracted, "@");
if (parts.length > 1) {
var filters = parts.slice(1).map(this.parseFilter.bind(this));
this.push("filter(" + this.parseExpr(parts[0]) + "," + filters.join(",") + ");")
} else {
this.push("filter(" + this.parseExpr(parts[0]) + ");")
}
}
};
Parser.prototype.compileTag = function(str) {
var directive = str.split(" ")[0];
var handler = tagHandlers[directive];
if (!handler) {
throw new Error("Invalid tag: " + str)
}
handler.call(this, str.slice(directive.length).trim())
};
Parser.prototype.parseFilter = function(src) {
src = src.trim();
var match = src.match(/[:(]/);
var i = match ? match.index : -1;
if (i < 0) return JSON.stringify([src]);
var name = src.slice(0, i);
var args = src.charAt(i) === ":" ? src.slice(i + 1) : src.slice(i + 1, -1);
args = this.parseExpr(args, {
terms: true
});
return "[" + JSON.stringify(name) + "," + args + "]"
};
Parser.prototype.extractEnt = function(src, regex, placeholder) {
var subs = [],
isFunc = typeof placeholder == "function";
src = src.replace(regex, function(str) {
var replacement = isFunc ? placeholder(str) : placeholder;
if (replacement) {
subs.push(str);
return replacement
}
return str
});
return {
src: src,
subs: subs
}
};
Parser.prototype.injectEnt = function(extracted, placeholder) {
var src = extracted.src,
subs = extracted.subs,
isArr = Array.isArray(src);
var arr = isArr ? src : [src];
var re = new RegExp("[" + placeholder + "]", "g"),
i = 0;
arr.forEach(function(src, index) {
arr[index] = src.replace(re, function() {
return subs[i++]
})
});
return isArr ? arr : arr[0]
};
Parser.prototype.replaceComplex = function(s) {
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, "v");
parsed.src = parsed.src.replace(NON_PRIMITIVES, "~");
return this.injectEnt(parsed, "v")
};
Parser.prototype.parseExpr = function(src, opts) {
opts = opts || {};
var parsed1 = this.extractEnt(src, STRINGS, "@");
parsed1.src = parsed1.src.replace(EOPS, function(s, before, op, after) {
return op in operators ? before + operators[op] + after : s
});
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function(s) {
return s in constants || NUMBER.test(s) ? "#" : null
});
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, "i");
parsed3.src = parsed3.src.replace(/\s+/g, "");
var simplified = parsed3.src;
while (simplified !== (simplified = this.replaceComplex(simplified)));
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, "v")));
simplified = simplified.replace(/[iv]\[v?\]/g, "x");
simplified = simplified.replace(/[@#~v]/g, "i");
simplified = simplified.replace(OPERATORS, "%");
simplified = simplified.replace(/!+[i]/g, "i");
var terms = opts.terms ? simplified.split(",") : [simplified];
terms.forEach(function(term) {
while (term !== (term = term.replace(/\(i(%i)*\)/g, "i")));
if (!term.match(/^i(%i)*/)) {
throw new Error("Invalid expression: " + src + " " + term)
}
});
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
parsed2.src = this.injectEnt(parsed3, "i");
parsed1.src = this.injectEnt(parsed2, "#");
return this.injectEnt(parsed1, "@")
};
Parser.prototype.parseVar = function(src) {
var args = Array.prototype.slice.call(arguments);
var str = args.pop(),
index = args.pop();
if (src === "i" && str.charAt(index + 1) === ":") {
return '"i"'
}
var parts = ['"i"'];
src.replace(ACCESSOR, function(part) {
if (part === ".i") {
parts.push('"i"')
} else if (part === "[i]") {
parts.push('get("i")')
} else {
parts.push(part.slice(1, -1))
}
});
return "get(" + parts.join(",") + ")"
};
Parser.prototype.escName = function(str) {
return str.replace(/\W/g, function(s) {
return "$" + s.charCodeAt(0).toString(16)
})
};
Parser.prototype.parseQuoted = function(str) {
if (str.charAt(0) === "'") {
str = str.slice(1, -1).replace(/\\.|"/, function(s) {
if (s === "\\'") return "'";
return s.charAt(0) === "\\" ? s : "\\" + s
});
str = '"' + str + '"'
}
return JSON.parse(str)
};
var tagHandlers = {
if: function(expr) {
this.push("if (" + this.parseExpr(expr) + ") {");
this.nest.unshift("if")
},
else: function() {
if (this.nest[0] === "for") {
this.push("}, function() {")
} else {
this.push("} else {")
}
},
elseif: function(expr) {
this.push("} else if (" + this.parseExpr(expr) + ") {")
},
endif: function() {
this.nest.shift();
this.push("}")
},
for: function(str) {
var i = str.indexOf(" in ");
var name = str.slice(0, i).trim();
var expr = str.slice(i + 4).trim();
this.push("each(" + this.parseExpr(expr) + "," + JSON.stringify(name) + ",function() {");
this.nest.unshift("for")
},
endfor: function() {
this.nest.shift();
this.push("});")
},
raw: function() {
this.rawMode = true
},
endraw: function() {
this.rawMode = false
},
set: function(stmt) {
var i = stmt.indexOf("=");
var name = stmt.slice(0, i).trim();
var expr = stmt.slice(i + 1).trim();
this.push("set(" + JSON.stringify(name) + "," + this.parseExpr(expr) + ");")
},
block: function(name) {
if (this.isParent) {
++this.parentBlocks;
var blockName = "block_" + (this.escName(name) || this.parentBlocks);
this.push("block(typeof " + blockName + ' == "function" ? ' + blockName + " : function() {")
} else if (this.hasParent) {
this.isSilent = false;
++this.childBlocks;
blockName = "block_" + (this.escName(name) || this.childBlocks);
this.push("function " + blockName + "() {")
}
this.nest.unshift("block")
},
endblock: function() {
this.nest.shift();
if (this.isParent) {
this.push("});")
} else if (this.hasParent) {
this.push("}");
this.isSilent = true
}
},
extends: function(name) {
name = this.parseQuoted(name);
var parentSrc = this.readTemplateFile(name);
this.isParent = true;
this.tokenize(parentSrc);
this.isParent = false;
this.hasParent = true;
this.isSilent = true
},
include: function(name) {
name = this.parseQuoted(name);
var incSrc = this.readTemplateFile(name);
this.isInclude = true;
this.tokenize(incSrc);
this.isInclude = false
}
};
tagHandlers.assign = tagHandlers.set;
tagHandlers.elif = tagHandlers.elseif;
var getRuntime = function runtime(data, opts) {
var defaults = {
autoEscape: "toJson"
};
var _toString = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty;
var getKeys = Object.keys || function(obj) {
var keys = [];
for (var n in obj)
if (_hasOwnProperty.call(obj, n)) keys.push(n);
return keys
};
var isArray = Array.isArray || function(obj) {
return _toString.call(obj) === "[object Array]"
};
var create = Object.create || function(obj) {
function F() {}
F.prototype = obj;
return new F
};
var toString = function(val) {
if (val == null) return "";
return typeof val.toString == "function" ? val.toString() : _toString.call(val)
};
var extend = function(dest, src) {
var keys = getKeys(src);
for (var i = 0, len = keys.length; i < len; i++) {
var key = keys[i];
dest[key] = src[key]
}
return dest
};
var get = function() {
var val, n = arguments[0],
c = stack.length;
while (c--) {
val = stack[c][n];
if (typeof val != "undefined") break
}
for (var i = 1, len = arguments.length; i < len; i++) {
if (val == null) continue;
n = arguments[i];
val = _hasOwnProperty.call(val, n) ? val[n] : typeof val._get == "function" ? val[n] = val._get(n) : null
}
return val == null ? "" : val
};
var set = function(n, val) {
stack[stack.length - 1][n] = val
};
var push = function(ctx) {
stack.push(ctx || {})
};
var pop = function() {
stack.pop()
};
var write = function(str) {
output.push(str)
};
var filter = function(val) {
for (var i = 1, len = arguments.length; i < len; i++) {
var arr = arguments[i],
name = arr[0],
filter = filters[name];
if (filter) {
arr[0] = val;
val = filter.apply(data, arr)
} else {
throw new Error("Invalid filter: " + name)
}
}
if (opts.autoEscape && name !== opts.autoEscape && name !== "safe") {
val = filters[opts.autoEscape].call(data, val)
}
output.push(val)
};
var each = function(obj, loopvar, fn1, fn2) {
if (obj == null) return;
var arr = isArray(obj) ? obj : getKeys(obj),
len = arr.length;
var ctx = {
loop: {
length: len,
first: arr[0],
last: arr[len - 1]
}
};
push(ctx);
for (var i = 0; i < len; i++) {
extend(ctx.loop, {
index: i + 1,
index0: i
});
fn1(ctx[loopvar] = arr[i])
}
if (len === 0 && fn2) fn2();
pop()
};
var block = function(fn) {
push();
fn();
pop()
};
var render = function() {
return output.join("")
};
data = data || {};
opts = extend(defaults, opts || {});
var filters = extend({
html: function(val) {
return toString(val).split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;")
},
safe: function(val) {
return val
},
toJson: function(val) {
if (typeof val === "object") {
return JSON.stringify(val)
}
return toString(val)
}
}, opts.filters || {});
var stack = [create(data || {})],
output = [];
return {
get: get,
set: set,
push: push,
pop: pop,
write: write,
filter: filter,
each: each,
block: block,
render: render
}
};
var runtime;
jinja.compile = function(markup, opts) {
opts = opts || {};
var parser = new Parser;
parser.readTemplateFile = this.readTemplateFile;
var code = [];
code.push("function render($) {");
code.push("var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;");
code.push.apply(code, parser.parse(markup));
code.push("return $.render();");
code.push("}");
code = code.join("\n");
if (opts.runtime === false) {
var fn = new Function("data", "options", "return (" + code + ")(runtime(data, options))")
} else {
runtime = runtime || (runtime = getRuntime.toString());
fn = new Function("data", "options", "return (" + code + ")((" + runtime + ")(data, options))")
}
return {
render: fn
}
};
jinja.render = function(markup, data, opts) {
var tmpl = jinja.compile(markup);
return tmpl.render(data, opts)
};
jinja.templateFiles = [];
jinja.readTemplateFile = function(name) {
var templateFiles = this.templateFiles || [];
var templateFile = templateFiles[name];
if (templateFile == null) {
throw new Error("Template file not found: " + name)
}
return templateFile
};
function trimLeft(str) {
return str.replace(LEADING_SPACE, "")
}
function trimRight(str) {
return str.replace(TRAILING_SPACE, "")
}
function matchAll(str, reg, fn) {
reg = new RegExp(reg.source, "g" + (reg.ignoreCase ? "i" : "") + (reg.multiline ? "m" : ""));
var match;
while (match = reg.exec(str)) {
var result = fn(match[0], match.index, str);
if (typeof result == "number") {
reg.lastIndex = result
}
}
}
});
-360
View File
@@ -1,360 +0,0 @@
/*
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(function webpackUniversalModuleDefinition(root, factory) {
if (typeof exports === 'object' && typeof module === 'object') {
// CommonJS
module.exports = exports = factory();
} else if (typeof define === 'function' && define.amd) {
// AMD
define([], factory);
} else {
// Global (browser)
globalThis.JSEncrypt = factory();
}
})(this, () => {
return /******/ (() => { // webpackBootstrap
/******/
var __webpack_modules__ = ({
/***/
"./lib/JSEncrypt.js":
/*!**************************!*\
!*** ./lib/JSEncrypt.js ***!
\**************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* binding */ JSEncrypt)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JSEncryptRSAKey */ \"./lib/JSEncryptRSAKey.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\nvar _a;\n\n\nvar version = typeof process !== 'undefined'\n ? (_a = process.env) === null || _a === void 0 ? void 0 : \"3.3.2\"\n : undefined;\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n if (options === void 0) { options = {}; }\n options = options || {};\n this.default_key_size = options.default_key_size\n ? parseInt(options.default_key_size, 10)\n : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt((0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n Line truncated
/***/
}),
/***/
"./lib/JSEncryptRSAKey.js":
/*!********************************!*\
!*** ./lib/JSEncryptRSAKey.js ***!
\********************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncryptRSAKey\": () => (/* binding */ JSEncryptRSAKey)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/asn1js/hex */ \"./lib/lib/asn1js/hex.js\");\n/* harmony import */ var _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/asn1js/base64 */ \"./lib/lib/asn1js/base64.js\");\n/* harmony import */ var _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/asn1js/asn1 */ \"./lib/lib/asn1js/asn1.js\");\n/* harmony import */ var _lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/jsbn/rsa */ \"./lib/lib/jsbn/rsa.js\");\n/* harmony import */ var _lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/jsrsasign/asn1-1.0 */ \"./lib/lib/jsrsasign/asn1-1.0.js\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n\n\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__.Hex.decode(pem) : _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.unarmor(pem);\n var asn1 = _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__.ASN1.decode(der);\n // Fixes a bug with OpenSSL Line truncated
/***/
}),
/***/
"./lib/index.js":
/*!**********************!*\
!*** ./lib/index.js ***!
\**********************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* reexport safe */ _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JSEncrypt */ \"./lib/JSEncrypt.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/index.js?");
/***/
}),
/***/
"./lib/lib/asn1js/asn1.js":
/*!********************************!*\
!*** ./lib/lib/asn1js/asn1.js ***!
\********************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ASN1\": () => (/* binding */ ASN1),\n/* harmony export */ \"ASN1Tag\": () => (/* binding */ ASN1Tag),\n/* harmony export */ \"Stream\": () => (/* binding */ Stream)\n/* harmony export */ });\n/* harmony import */ var _int10__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./int10 */ \"./lib/lib/asn1js/int10.js\");\n// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\n\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shoLine truncated
/***/
}),
/***/
"./lib/lib/asn1js/base64.js":
/*!**********************************!*\
!*** ./lib/lib/asn1js/base64.js ***!
\**********************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Base64\": () => (/* binding */ Base64)\n/* harmony export */ });\n// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder['-'] = 62; //+\n decoder['_'] = 63; //-\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/base64.js?");
/***/
}),
/***/
"./lib/lib/asn1js/hex.js":
/*!*******************************!*\
!*** ./lib/lib/asn1js/hex.js ***!
\*******************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Hex\": () => (/* binding */ Hex)\n/* harmony export */ });\n// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/hex.js?");
/***/
}),
/***/
"./lib/lib/asn1js/int10.js":
/*!*********************************!*\
!*** ./lib/lib/asn1js/int10.js ***!
\*********************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Int10\": () => (/* binding */ Int10)\n/* harmony export */ });\n// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/int10.js?");
/***/
}),
/***/
"./lib/lib/jsbn/base64.js":
/*!********************************!*\
!*** ./lib/lib/jsbn/base64.js ***!
\********************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"b64toBA\": () => (/* binding */ b64toBA),\n/* harmony export */ \"b64tohex\": () => (/* binding */ b64tohex),\n/* harmony export */ \"hex2b64\": () => (/* binding */ hex2b64)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop);\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop << 2);\n }\n return ret;\n}\n// convert a base64 string to a byte/number array\nfunction b64toBA(s) {\n // piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = [];\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/base64.js?");
/***/
}),
/***/
"./lib/lib/jsbn/jsbn.js":
/*!******************************!*\
!*** ./lib/lib/jsbn/jsbn.js ***!
\******************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BigInteger\": () => (/* binding */ BigInteger),\n/* harmony export */ \"intAt\": () => (/* binding */ intAt),\n/* harmony export */ \"nbi\": () => (/* binding */ nbi),\n/* harmony export */ \"nbits\": () => (/* binding */ nbits),\n/* harmony export */ \"nbv\": () => (/* binding */ nbv),\n/* harmony export */ \"parseBigInt\": () => (/* binding */ parseBigInt)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.protot Line truncated
/***/
}),
/***/
"./lib/lib/jsbn/prng4.js":
/*!*******************************!*\
!*** ./lib/lib/jsbn/prng4.js ***!
\*******************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Arcfour\": () => (/* binding */ Arcfour),\n/* harmony export */ \"prng_newstate\": () => (/* binding */ prng_newstate),\n/* harmony export */ \"rng_psize\": () => (/* binding */ rng_psize)\n/* harmony export */ });\n// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\n\n// Plug in your RNG constructor here\nfunction prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nvar rng_psize = 256;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/prng4.js?");
/***/
}),
/***/
"./lib/lib/jsbn/rng.js":
/*!*****************************!*\
!*** ./lib/lib/jsbn/rng.js ***!
\*****************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SecureRandom\": () => (/* binding */ SecureRandom)\n/* harmony export */ });\n/* harmony import */ var _prng4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./prng4 */ \"./lib/lib/jsbn/prng4.js\");\n// Random number generator - requires a PRNG backend, e.g. prng4.js\n\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = (0,_prng4__WEBPACK_IMPORTED_MODULE_0__.prng_newstate)();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rng.js?");
/***/
}),
/***/
"./lib/lib/jsbn/rsa.js":
/*!*****************************!*\
!*** ./lib/lib/jsbn/rsa.js ***!
\*****************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RSAKey\": () => (/* binding */ RSAKey)\n/* harmony export */ });\n/* harmony import */ var _jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _rng__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng */ \"./lib/lib/jsbn/rng.js\");\n// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\n\n\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = pkcs1pad2(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, Line truncated
/***/
}),
/***/
"./lib/lib/jsbn/util.js":
/*!******************************!*\
!*** ./lib/lib/jsbn/util.js ***!
\******************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"cbit\": () => (/* binding */ cbit),\n/* harmony export */ \"int2char\": () => (/* binding */ int2char),\n/* harmony export */ \"lbit\": () => (/* binding */ lbit),\n/* harmony export */ \"op_and\": () => (/* binding */ op_and),\n/* harmony export */ \"op_andnot\": () => (/* binding */ op_andnot),\n/* harmony export */ \"op_or\": () => (/* binding */ op_or),\n/* harmony export */ \"op_xor\": () => (/* binding */ op_xor)\n/* harmony export */ });\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nfunction op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nfunction op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/util.js?");
/***/
}),
/***/
"./lib/lib/jsrsasign/asn1-1.0.js":
/*!***************************************!*\
!*** ./lib/lib/jsrsasign/asn1-1.0.js ***!
\***************************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KJUR\": () => (/* binding */ KJUR)\n/* harmony export */ });\n/* harmony import */ var _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _yahoo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./yahoo */ \"./lib/lib/jsrsasign/yahoo.js\");\n/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\n\n\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license <a href=\"https://kjur.github.io/jsrsasign/license/\">MIT License</a>\n */\n/**\n * kjur's class library name space\n * <p>\n * This name space provides following name spaces:\n * <ul>\n * <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>\n * <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>\n * <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nvar KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n * <p>\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n * <h4>PROVIDING ASN.1 PRIMITIVES</h4>\n * Here are ASN.1 DER primitive classes.\n * <ul>\n * <li>0x01 {@link KJUR.asn1.DERBoolean}</li>\n * <li>0x02 {@link KJUR.asn1.DERInteger}</li>\n * <li>0x03 {@link KJUR.asn1.DERBitString}</li>\n * <li>0x04 {@link KJUR.asn1.DEROctetString}</li>\n * <li>0x05 {@link KJUR.asn1.DERNull}</li>\n * <li>0x06 {@link KJUR.asn1.DERObjectIdentifier}</li>\n * <li>0x0a {@link KJUR.asn1.DEREnumerated}</li>\n * <li>0x0c {@link KJUR.asn1.DERUTF8String}</li>\n * <li>0x12 {@link KJUR.asn1.DERNumericString}</li>\n * <li>0x13 {@link KJUR.asn1.DERPrintableString}</li>\n * <li>0x14 {@link KJUR.asn1.DERTeletexString}</li>\n * <li>0x16 {@link KJUR.asn1.DERIA5String}</li>\n * <li>0x17 {@link KJUR.asn1.DERUTCTime}</li>\n * <li>0x18 {@link KJUR.asn1.DERGeneralizedTime}</li>\n * <li>0x30 {@link KJUR.asn1.DERSequence}</li>\n * <li>0x31 {@link KJUR.asn1.DERSet}</li>\n * </ul>\n * <h4>OTHER ASN.1 CLASSES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.ASN1Object}</li>\n * <li>{@link KJUR.asn1.DERAbstractString}</li>\n * <li>{@link KJUR.asn1.DERAbstractTime}</li>\n * <li>{@link KJUR.asn1.DERAbstractStructured}</li>\n * <li>{@link KJUR.asn1.DERTaggedObject}</li>\n * </ul>\n * <h4>SUB NAME SPACES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.cades} - CAdES long term signature format</li>\n * <li>{@link KJUR.asn1.cms} - Cryptographic Message Syntax</li>\n * <li>{@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)</li>\n * <li>{@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format</li>\n * <li>{@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n Line truncated
/***/
}),
/***/
"./lib/lib/jsrsasign/yahoo.js":
/*!************************************!*\
!*** ./lib/lib/jsrsasign/yahoo.js ***!
\************************************/
/***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"YAHOO\": () => (/* binding */ YAHOO)\n/* harmony export */ });\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nvar YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function (subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/yahoo.js?");
/***/
}),
/***/
"./node_modules/process/browser.js":
/*!*****************************************!*\
!*** ./node_modules/process/browser.js ***!
\*****************************************/
/***/
((module) => {
eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess Line truncated
/***/
})
/******/
});
/************************************************************************/
/******/ // The module cache
/******/
var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/
function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/
var cachedModule = __webpack_module_cache__[moduleId];
/******/
if (cachedModule !== undefined) {
/******/
return cachedModule.exports;
/******/
}
/******/ // Create a new module (and put it into the cache)
/******/
var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/
exports: {}
/******/
};
/******/
/******/ // Execute the module function
/******/
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/
return module.exports;
/******/
}
/******/
/************************************************************************/
/******/
/* webpack/runtime/define property getters */
/******/
(() => {
/******/ // define getter functions for harmony exports
/******/
__webpack_require__.d = (exports, definition) => {
/******/
for (var key in definition) {
/******/
if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/
Object.defineProperty(exports, key, {
enumerable: true,
get: definition[key]
});
/******/
}
/******/
}
/******/
};
/******/
})();
/******/
/******/
/* webpack/runtime/hasOwnProperty shorthand */
/******/
(() => {
/******/
__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/
})();
/******/
/******/
/* webpack/runtime/make namespace object */
/******/
(() => {
/******/ // define __esModule on exports
/******/
__webpack_require__.r = (exports) => {
/******/
if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/
Object.defineProperty(exports, Symbol.toStringTag, {
value: 'Module'
});
/******/
}
/******/
Object.defineProperty(exports, '__esModule', {
value: true
});
/******/
};
/******/
})();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval devtool is used.
/******/
var __webpack_exports__ = __webpack_require__("./lib/index.js");
/******/
__webpack_exports__ = __webpack_exports__["default"];
/******/
/******/
return __webpack_exports__;
/******/
})();
});
-1277
View File
File diff suppressed because it is too large. Load diff
-1
View File
@@ -1 +0,0 @@
(function(global){var re={starts_with_slashes:/^\/+/,ends_with_slashes:/\/+$/,pluses:/\+/g,query_separator:/[&;]/,uri_parser:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*)(?::([^:@]*))?)?@)?(\[[0-9a-fA-F:.]+\]|[^:\/?#]*)(?::(\d+|(?=:)))?(:)?)((((?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/};if(!Array.prototype.forEach){Array.prototype.forEach=function(callback,thisArg){var T,k;if(this==null){throw new TypeError(' this is null or not defined');}var O=Object(this);var len=O.length>>>0;if(typeof callback!=="function"){throw new TypeError(callback+' is not a function');}if(arguments.length>1){T=thisArg}k=0;while(k<len){var kValue;if(k in O){kValue=O[k];callback.call(T,kValue,k,O)}k++}}}function decode(s){if(s){s=s.toString().replace(re.pluses,'%20');s=decodeURIComponent(s)}return s}function parseUri(str){var parser=re.uri_parser;var parserKeys=["source","protocol","authority","userInfo","user","password","host","port","isColonUri","relative","path","directory","file","query","anchor"];var m=parser.exec(str||'');var parts={};parserKeys.forEach(function(key,i){parts[key]=m[i]||''});return parts}function parseQuery(str){var i,ps,p,n,k,v,l;var pairs=[];if(typeof(str)==='undefined'||str===null||str===''){return pairs}if(str.indexOf('?')===0){str=str.substring(1)}ps=str.toString().split(re.query_separator);for(i=0,l=ps.length;i<l;i++){p=ps[i];n=p.indexOf('=');if(n!==0){k=decode(p.substring(0,n));v=decode(p.substring(n+1));pairs.push(n===-1?[p,null]:[k,v])}}return pairs}function Uri(str){this.uriParts=parseUri(str);this.queryPairs=parseQuery(this.uriParts.query);this.hasAuthorityPrefixUserPref=null}['protocol','userInfo','host','port','path','anchor'].forEach(function(key){Uri.prototype[key]=function(val){if(typeof val!=='undefined'){this.uriParts[key]=val}return this.uriParts[key]}});Uri.prototype.hasAuthorityPrefix=function(val){if(typeof val!=='undefined'){this.hasAuthorityPrefixUserPref=val}if(this.hasAuthorityPrefixUserPref===null){return(this.uriParts.source.indexOf('//')!==-1)}else{return this.hasAuthorityPrefixUserPref}};Uri.prototype.isColonUri=function(val){if(typeof val!=='undefined'){this.uriParts.isColonUri=!!val}else{return!!this.uriParts.isColonUri}};Uri.prototype.query=function(val){var s='',i,param,l;if(typeof val!=='undefined'){this.queryPairs=parseQuery(val)}for(i=0,l=this.queryPairs.length;i<l;i++){param=this.queryPairs[i];if(s.length>0){s+='&'}if(param[1]===null){s+=param[0]}else{s+=param[0];s+='=';if(typeof param[1]!=='undefined'){s+=encodeURIComponent(param[1])}}}return s.length>0?'?'+s:s};Uri.prototype.getQueryParamValue=function(key){var param,i,l;for(i=0,l=this.queryPairs.length;i<l;i++){param=this.queryPairs[i];if(key===param[0]){return param[1]}}};Uri.prototype.getQueryParamValues=function(key){var arr=[],i,param,l;for(i=0,l=this.queryPairs.length;i<l;i++){param=this.queryPairs[i];if(key===param[0]){arr.push(param[1])}}return arr};Uri.prototype.deleteQueryParam=function(key,val){var arr=[],i,param,keyMatchesFilter,valMatchesFilter,l;for(i=0,l=this.queryPairs.length;i<l;i++){param=this.queryPairs[i];keyMatchesFilter=decode(param[0])===decode(key);valMatchesFilter=param[1]===val;if((arguments.length===1&&!keyMatchesFilter)||(arguments.length===2&&(!keyMatchesFilter||!valMatchesFilter))){arr.push(param)}}this.queryPairs=arr;return this};Uri.prototype.addQueryParam=function(key,val,index){if(arguments.length===3&&index!==-1){index=Math.min(index,this.queryPairs.length);this.queryPairs.splice(index,0,[key,val])}else if(arguments.length>0){this.queryPairs.push([key,val])}return this};Uri.prototype.hasQueryParam=function(key){var i,len=this.queryPairs.length;for(i=0;i<len;i++){if(this.queryPairs[i][0]==key)return true}return false};Uri.prototype.replaceQueryParam=function(key,newVal,oldVal){var index=-1,len=this.queryPairs.length,i,param;if(arguments.length===3){for(i=0;i<len;i++){param=this.queryPairs[i];if(decode(param[0])===decode(key)&&decodeURIComponent(param[1])===decode(oldVal)){index=i;break}}if(index>=0){this.deleteQueryParam(key,decode(oldVal)).addQueryParam(key,newVal,index)}}else{for(i=0;i<len;i++){param=this.queryPairs[i];if(decode(param[0])===decode(key)){index=i;break}}this.deleteQueryParam(key);this.addQueryParam(key,newVal,index)}return this};['protocol','hasAuthorityPrefix','isColonUri','userInfo','host','port','path','query','anchor'].forEach(function(key){var method='set'+key.charAt(0).toUpperCase()+key.slice(1);Uri.prototype[method]=function(val){this[key](val);return this}});Uri.prototype.scheme=function(){var s='';if(this.protocol()){s+=this.protocol();if(this.protocol().indexOf(':')!==this.protocol().length-1){s+=':'}s+='//'}else{if(this.hasAuthorityPrefix()&&this.host()){s+='//'}}return s};Uri.prototype.origin=function(){var s=this.scheme();if(this.userInfo()&&this.host()){s+=this.userInfo();if(this.userInfo().indexOf('@')!==this.userInfo().length-1){s+='@'}}if(this.host()){s+=this.host();if(this.port()||(this.pathLine truncated
-12
View File
@@ -1,12 +0,0 @@
Object.assign(muban.mxpro.二级, {
tab_text: 'div--small&&Text',
});
var rule = {
模板: 'mxpro',
title: '剧圈圈',
host: 'https://www.jqqzx.cc/',
url: '/vodshow/id/fyclass/page/fypage.html',
searchUrl: '/vodsearch**/page/fypage.html',
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;.*/(.*?)\.html',
cate_exclude: '今日更新|热榜',
}
File diff suppressed because it is too large. Load diff
-64
View File
@@ -1,64 +0,0 @@
var rule = {
author: '小可乐/240526/第一版',
title: '动漫巴士[漫]',
host: 'http://dm84.site',
hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}});let src= jsp.pdfh(html,"ul&&a:eq(0)&&href");print(src);HOST=src',
headers: {
'User-Agent': 'MOBILE_UA'
},
编码: 'utf-8',
timeout: 5000,
homeUrl: '/',
url: '/show-fyclass--fyfilter-fypage.html',
filter_url: '{{fl.by}}-{{fl.class}}--{{fl.year}}',
detailUrl: '',
searchUrl: '/s-**---------fypage.html',
searchable: 1,
quickSearch: 1,
filterable: 1,
class_name: '国产动漫&日本动漫&欧美动漫&电影',
class_url: '1&2&3&4',
filter_def: {},
proxy_rule: '',
sniffer: 0,
isVideo: '',
play_parse: true,
parse_url: '',
lazy: `js:
let html = request(input);
let kurl = pdfh(html,'body&&iframe').match(/src="(.*?)"/)[1];
input= kurl
`,
limit: 9,
double: false,
推荐: '*',
//列表;标题;图片;描述;链接;详情(可不写)
一级: '.v_list li;a&&title;a&&data-bg;.desc&&Text;a&&href',
二级: {
//名称;类型
"title": "h1&&Text;meta[name*=class]&&content",
//图片
"img": "img&&src",
//主要描述;年份;地区;演员;导演
"desc": "meta[name*=update_date]&&content;meta[name*=release_date]&&content;meta[name*=area]&&content;meta[name*=actor]&&content;meta[name*=director]&&content",
//简介
"content": "p:eq(-2)&&Text",
//线路数组
"tabs": ".tab_control&&li",
//线路标题
"tab_text": "body&&Text",
//播放数组 选集列表
"lists": ".play_list:eq(#id)&&a",
//选集标题
"list_text": "body&&Text",
//选集链接
"list_url": "a&&href"
},
搜索: '*',
filter: 'H4sIAAAAAAAAA+2WbUsqQRTH3+/HmNe+0LWn21eJXlgIRU+Q3UBEsLTaCrYtSm9cb2RQ2YOVFUFa9mWcGf0Wjc6cMxPFstDlcgXf7e/39+zo2XPUlEUiZHTMSpGZeJKMksnZWCJBQmQ+NhcXyKt1erQteDk2+1OIsRSZF5quldvZckcLIOmQsqcb9LmurALImPOL5QsqUwAZd3O6TgFmF2+tpy3IJGB2vmvUScDzKmfNxjGcJwHrspVWKQN1EiBrZV55w1WZArynd8Svd+GeEvCzb5VZZoW9XPF97ICp0uPpEDY5GY8t6h6zwlO78Biwx3bYHlCue2n4qPZR00e0j5je1t42fVj7sOEjP9CLS8OPaD9i+mHth00/pP2Q6Qe1H/zYr4mk0S13j9Z2PnVLN1HA0rR4Kdy5Wauxu32VTE0vJfSzvs1RZ10licmFxXjnWGs8ZBH7r+3E+l778AImQkKQnfDbJeq59OYKMgl6Dqv0rYAT2AU877hEf1fgPAlBdoIVa+LdQZ2EIDvBVq95HjMJmN3XWc6BTAK+l8MG9SBTgHUrHsvkoU4CZm6Ze/A8Fei6be5Usa4LmD2U2n9O+MElxMj9re2prY3+z1vr92vlW+e3mT7b9+UW9ee5l+Z54F/Ms/ib0nwt6v8sHfj2POeLdPMc6iQE+eb3nWenyrJrcJ6E/jz3zjxb6XeqCRqqbAwAAA=='
}
-28
View File
@@ -1,28 +0,0 @@
var rule = {
title: '动画片大全',
host: 'https://www.dhpdq2.com/',
url: 'https://www.dhpdq2.com/katong/fyclass-fypage/',
searchUrl: '/vodsearch/**----------fypage---/',
class_parse: '.c_class li;a&&Text;a&&href;.*/(.*?)/',
searchable: 2,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
play_parse: true,
lazy: '',
limit: 6,
推荐: '.stui-vodlist;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
double: true,
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
title: 'h1&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(2)&&Text',
img: '.vodlist_thumb&&data-original',
desc: '.playinfo&&p:eq(0)&&Text;.playinfo&&p:eq(1)&&Text;.playinfo&&p:eq(2)&&Text;.playinfo&&p:eq(3)&&Text',
content: '.content:eq(1)',
tabs: '.relatesdh .title h3',
lists: '.relatesdh:eq(#id) li',
},
搜索: '*',
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
-29
View File
@@ -1,29 +0,0 @@
var rule = {
title: '好看动漫',
host: 'https://www.youjiula.com/',
url: 'https://www.youjiula.com/youjiu/fyclass-fypage.html',
searchUrl: 'https://www.youjiula.com/search.php?page=fypage&searchword=**&searchtype=',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA', // "Cookie": ""
}, // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
"title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
"img": ".stui-content__thumb .lazyload&&data-original",
"desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
"content": "#desc&&Text",
"tabs": ".stui-pannel-box h3",
"lists": ".stui-content__playlist:eq(#id) li"
},
搜索: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
}
-278
View File
@@ -1,278 +0,0 @@
var rule = {
title: '异世界动漫',
host: 'https://www.dmmiku.com/',
homeUrl: '/index.php/vod/show/id/22.html',
// url:'/index.php/vod/show/class/fyclass/id/20/page/fypage.html',
url: '/index.php/vod/show/fyclassfyfilter.html',
filterable: 1,
filter_url: '{{fl.type}}/id/20/page/fypage{{fl.year}}',
filter: {
"area/日本": [{
"key": "type",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "OVA",
"v": "/class/OVA"
}, {
"n": "剧场版",
"v": "/class/剧场版"
}, {
"n": "无修",
"v": "/class/BD无修"
}, {
"n": "萝莉",
"v": "/class/萝莉"
}, {
"n": "学園",
"v": "/class/学園"
}, {
"n": "后宫",
"v": "/class/后宫"
}, {
"n": "恋爱",
"v": "/class/恋爱"
}, {
"n": "热血",
"v": "/class/热血"
}, {
"n": "神魔",
"v": "/class/神魔"
}, {
"n": "奇幻",
"v": "/class/奇幻"
}, {
"n": "治愈",
"v": "/class/治愈"
}, {
"n": "搞笑",
"v": "/class/搞笑"
}, {
"n": "百合",
"v": "/class/百合"
}, {
"n": "冒险",
"v": "/class/冒险"
}, {
"n": "魔法",
"v": "/class/魔法"
}, {
"n": "机战",
"v": "/class/机战"
}, {
"n": "战争",
"v": "/class/战争"
}, {
"n": "犯罪",
"v": "/class/犯罪"
}, {
"n": "悬疑",
"v": "/class/悬疑"
}, {
"n": "推理",
"v": "/class/推理"
}, {
"n": "科幻",
"v": "/class/科幻"
}, {
"n": "竞技",
"v": "/class/竞技"
}, {
"n": "运动",
"v": "/class/运动"
}, {
"n": "耽美",
"v": "/class/耽美"
}, {
"n": "其他",
"v": "/class/其他"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "2014",
"v": "/year/2014"
}, {
"n": "2013",
"v": "/year/2013"
}, {
"n": "2012",
"v": "/year/2012"
}, {
"n": "2011",
"v": "/year/2011"
}, {
"n": "2010",
"v": "/year/2010"
}, {
"n": "2009",
"v": "/year/2009"
}, {
"n": "2008",
"v": "/year/2008"
}]
}],
"area/中國": [{
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "2014",
"v": "/year/2014"
}, {
"n": "2013",
"v": "/year/2013"
}, {
"n": "2012",
"v": "/year/2012"
}, {
"n": "2011",
"v": "/year/2011"
}, {
"n": "2010",
"v": "/year/2010"
}, {
"n": "2009",
"v": "/year/2009"
}, {
"n": "2008",
"v": "/year/2008"
}]
}]
},
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2,
quickSearch: 0,
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000, //网站的全局请求超时,默认是3000毫秒
class_name: '日漫&国漫',
class_url: 'area/日本&area/中國',
play_parse: true,
lazy: `js:
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
var url = html.url;
var from = html.from;
if (html.encrypt == '1') {
url = unescape(url)
} else if (html.encrypt == '2') {
url = unescape(base64Decode(url))
}
if (/m3u8|mp4/.test(url)) {
input = url
} else {
var MacPlayerConfig={};
eval(fetch(HOST + "/static/js/playerconfig.js").replace('var Mac','Mac'));
var jx = MacPlayerConfig.player_list[from].parse;
if (jx == '') {
jx = MacPlayerConfig.parse
};
if (jx.startsWith("/")) {
jx = "https:" + jx;
}
input={
jx:0,
url:jx+url,
parse:1,
header: JSON.stringify({
'referer': HOST
})
}
}
`,
limit: 6,
// 图片来源:'@Referer=https://api.douban.com/@User-Agent=Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/113.0.0.0%20Safari/537.36',
推荐: '*',
一级: '.vodlist_wi&&li;.lazyload&&title;.lazyload&&data-original;.pic_text&&Text;a&&href',
二级: {
"title": "h2&&Text;li.data--span:eq(0)&&Text",
"img": ".lazyload&&data-original",
"desc": "li.data--span:eq(1)&&Text;;;li.data--span:eq(2)&&Text;li.data--span:eq(3)&&Text",
"content": ".full_text&&span&&Text",
"tabs": `js:
TABS = [];
let tabs = pdfa(html, '#NumTab&&a');
tabs.forEach((it) => {
TABS.push(pdfh(it, 'a&&alt'))
});
`,
// "lists": ".content_playlist:not(.list_scroll):eq(#id) a"
"lists": "div.playlist_full:eq(#id) li"
},
搜索: 'li.searchlist_item;*;*;*;*',
}
-44
View File
@@ -1,44 +0,0 @@
var rule = {
类型: '影视',
title: '思古影视',
host: 'https://siguyy.cn',
url: '/show/fyclass--------fypage---/',
searchUrl: 'https://siguyy.cn/search/-------------/?wd=**',
searchable: 2,
quickSearch: 0,
timeout: 5000,
play_parse: true,
filterable: 0,
class_name: '电影&电视剧&综艺&动漫',
class_url: '1&2&3&4',
lazy: `js:
if(/\\.(m3u8|mp4)/.test(input)){
input = {parse:0,url:input}
}else{
if(rule.parse_url.startsWith('json:')){
let purl = rule.parse_url.replace('json:','')+input;
let html = request(purl);
input = {parse:0,url:JSON.parse(html).url}
}else{
input= rule.parse_url+input;
}
`,
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0",
},
推荐: '*',
一级: '.container .flex.desktop-hover-effect;span&&Text;img&&data-original;p.truncate&&Text;a&&href',
二级: {
title: '.p-3.mobile&&Text',
img: 'img&&data-original',
desc: '.text-sm.py-1&&Text',
content: '.text-secondary&&Text',
tabs: '.flex.flex-row.gap-1.items-center',
lists: '.flex.flex-column.overflow-auto.no-scrollbar&&li',
tab_text: 'body&&Text',
list_text: 'a&&Text',
list_url: 'a&&href',
},
double: false,
搜索: '.col-lg-6.col-md-12.mt-2.mb-2.cursor-pointer;.topic-details-title-sub.text-secondary&&Text;img&&data-original;.topic-details-title&&Text;a&&href',
}
-773
View File
@@ -1,773 +0,0 @@
// 发布页 https://acgfans.org/pub.html
var rule = {
title: '怡萱动漫',
// host:'https://www.yxdmlove.com',
host: 'https://acgfans.org/pub.html',
hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src = jsp.pdfh(html,"p:eq(0)&&a&&Text");print(src);HOST=src', //网页域名根动态抓取js代码。通过HOST=赋值
// url:'/category.html?channel=17&zhonglei=fyclass&orderby=pubdate&totalresult=2999&pageno=fypage',
url: '/category.html?channel=17&zhonglei=fyclassfyfilter&pageno=fypage',
filterable: 1, //是否启用分类筛选,
filter_url: '&{{fl.by or "orderby=pubdate"}}&{{fl.year}}&{{fl.area}}&{{fl.sta}}&{{fl.class}}',
filter: {
"TV": [{
"key": "sta",
"name": "进度",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "连载中",
"v": "status=连载中"
}, {
"n": "已完结",
"v": "status=已完结"
}, {
"n": "未播放",
"v": "status=未播放"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日本",
"v": "area=日本"
}, {
"n": "中国",
"v": "area=中国"
}, {
"n": "欧美",
"v": "area=欧美"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "year=2025"
}, {
"n": "2024",
"v": "year=2024"
}, {
"n": "2023",
"v": "year=2023"
}, {
"n": "2022",
"v": "year=2022"
}, {
"n": "2021",
"v": "year=2021"
}, {
"n": "2020",
"v": "year=2020"
}, {
"n": "2019",
"v": "year=2019"
}, {
"n": "2018",
"v": "year=2018"
}, {
"n": "2017",
"v": "year=2017"
}, {
"n": "2016",
"v": "year=2016"
}, {
"n": "2015",
"v": "year=2015"
}, {
"n": "2014",
"v": "year=2014"
}, {
"n": "2013",
"v": "year=2013"
}, {
"n": "2012",
"v": "year=2012"
}, {
"n": "2011",
"v": "year=2011"
}, {
"n": "2010",
"v": "year=2010"
}, {
"n": "更早",
"v": "year=2010前"
}]
}, {
"key": "class",
"name": "剧情",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "冒险",
"v": "jqlx=冒险"
}, {
"n": "热血",
"v": "jqlx=热血"
}, {
"n": "爱情",
"v": "jqlx=爱情"
}, {
"n": "搞笑",
"v": "jqlx=搞笑"
}, {
"n": "后宫",
"v": "jqlx=后宫"
}, {
"n": "校园",
"v": "jqlx=校园"
}, {
"n": "机战",
"v": "jqlx=机战"
}, {
"n": "幻想",
"v": "jqlx=幻想"
}, {
"n": "科幻",
"v": "jqlx=科幻"
}, {
"n": "竞技",
"v": "jqlx=竞技"
}, {
"n": "百合",
"v": "jqlx=百合"
}, {
"n": "耽美",
"v": "jqlx=耽美"
}, {
"n": "悬疑",
"v": "jqlx=悬疑"
}, {
"n": "剧情",
"v": "jqlx=剧情"
}, {
"n": "战争",
"v": "jqlx=战争"
}, {
"n": "恐怖",
"v": "jqlx=恐怖"
}, {
"n": "运动",
"v": "jqlx=运动"
}, {
"n": "动作",
"v": "jqlx=动作"
}, {
"n": "童话",
"v": "jqlx=童话"
}, {
"n": "历史",
"v": "jqlx=历史"
}, {
"n": "真人",
"v": "jqlx=真人"
}, {
"n": "女性向",
"v": "jqlx=女性向"
}, {
"n": "泡面番",
"v": "jqlx=泡面番"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "orderby=pubdate"
}, {
"n": "热度",
"v": "orderby=click"
}]
}],
"剧场版": [{
"key": "sta",
"name": "进度",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "连载中",
"v": "status=连载中"
}, {
"n": "已完结",
"v": "status=已完结"
}, {
"n": "未播放",
"v": "status=未播放"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日本",
"v": "area=日本"
}, {
"n": "中国",
"v": "area=中国"
}, {
"n": "欧美",
"v": "area=欧美"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "year=2025"
}, {
"n": "2024",
"v": "year=2024"
}, {
"n": "2023",
"v": "year=2023"
}, {
"n": "2022",
"v": "year=2022"
}, {
"n": "2021",
"v": "year=2021"
}, {
"n": "2020",
"v": "year=2020"
}, {
"n": "2019",
"v": "year=2019"
}, {
"n": "2018",
"v": "year=2018"
}, {
"n": "2017",
"v": "year=2017"
}, {
"n": "2016",
"v": "year=2016"
}, {
"n": "2015",
"v": "year=2015"
}, {
"n": "2014",
"v": "year=2014"
}, {
"n": "2013",
"v": "year=2013"
}, {
"n": "2012",
"v": "year=2012"
}, {
"n": "2011",
"v": "year=2011"
}, {
"n": "2010",
"v": "year=2010"
}, {
"n": "更早",
"v": "year=2010前"
}]
}, {
"key": "class",
"name": "剧情",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "冒险",
"v": "jqlx=冒险"
}, {
"n": "热血",
"v": "jqlx=热血"
}, {
"n": "爱情",
"v": "jqlx=爱情"
}, {
"n": "搞笑",
"v": "jqlx=搞笑"
}, {
"n": "后宫",
"v": "jqlx=后宫"
}, {
"n": "校园",
"v": "jqlx=校园"
}, {
"n": "机战",
"v": "jqlx=机战"
}, {
"n": "幻想",
"v": "jqlx=幻想"
}, {
"n": "科幻",
"v": "jqlx=科幻"
}, {
"n": "竞技",
"v": "jqlx=竞技"
}, {
"n": "百合",
"v": "jqlx=百合"
}, {
"n": "耽美",
"v": "jqlx=耽美"
}, {
"n": "悬疑",
"v": "jqlx=悬疑"
}, {
"n": "剧情",
"v": "jqlx=剧情"
}, {
"n": "战争",
"v": "jqlx=战争"
}, {
"n": "恐怖",
"v": "jqlx=恐怖"
}, {
"n": "运动",
"v": "jqlx=运动"
}, {
"n": "动作",
"v": "jqlx=动作"
}, {
"n": "童话",
"v": "jqlx=童话"
}, {
"n": "历史",
"v": "jqlx=历史"
}, {
"n": "真人",
"v": "jqlx=真人"
}, {
"n": "女性向",
"v": "jqlx=女性向"
}, {
"n": "泡面番",
"v": "jqlx=泡面番"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "orderby=pubdate"
}, {
"n": "热度",
"v": "orderby=click"
}]
}],
"OVA": [{
"key": "sta",
"name": "进度",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "连载中",
"v": "status=连载中"
}, {
"n": "已完结",
"v": "status=已完结"
}, {
"n": "未播放",
"v": "status=未播放"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日本",
"v": "area=日本"
}, {
"n": "中国",
"v": "area=中国"
}, {
"n": "欧美",
"v": "area=欧美"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "year=2025"
}, {
"n": "2024",
"v": "year=2024"
}, {
"n": "2023",
"v": "year=2023"
}, {
"n": "2022",
"v": "year=2022"
}, {
"n": "2021",
"v": "year=2021"
}, {
"n": "2020",
"v": "year=2020"
}, {
"n": "2019",
"v": "year=2019"
}, {
"n": "2018",
"v": "year=2018"
}, {
"n": "2017",
"v": "year=2017"
}, {
"n": "2016",
"v": "year=2016"
}, {
"n": "2015",
"v": "year=2015"
}, {
"n": "2014",
"v": "year=2014"
}, {
"n": "2013",
"v": "year=2013"
}, {
"n": "2012",
"v": "year=2012"
}, {
"n": "2011",
"v": "year=2011"
}, {
"n": "2010",
"v": "year=2010"
}, {
"n": "更早",
"v": "year=2010前"
}]
}, {
"key": "class",
"name": "剧情",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "冒险",
"v": "jqlx=冒险"
}, {
"n": "热血",
"v": "jqlx=热血"
}, {
"n": "爱情",
"v": "jqlx=爱情"
}, {
"n": "搞笑",
"v": "jqlx=搞笑"
}, {
"n": "后宫",
"v": "jqlx=后宫"
}, {
"n": "校园",
"v": "jqlx=校园"
}, {
"n": "机战",
"v": "jqlx=机战"
}, {
"n": "幻想",
"v": "jqlx=幻想"
}, {
"n": "科幻",
"v": "jqlx=科幻"
}, {
"n": "竞技",
"v": "jqlx=竞技"
}, {
"n": "百合",
"v": "jqlx=百合"
}, {
"n": "耽美",
"v": "jqlx=耽美"
}, {
"n": "悬疑",
"v": "jqlx=悬疑"
}, {
"n": "剧情",
"v": "jqlx=剧情"
}, {
"n": "战争",
"v": "jqlx=战争"
}, {
"n": "恐怖",
"v": "jqlx=恐怖"
}, {
"n": "运动",
"v": "jqlx=运动"
}, {
"n": "动作",
"v": "jqlx=动作"
}, {
"n": "童话",
"v": "jqlx=童话"
}, {
"n": "历史",
"v": "jqlx=历史"
}, {
"n": "真人",
"v": "jqlx=真人"
}, {
"n": "女性向",
"v": "jqlx=女性向"
}, {
"n": "泡面番",
"v": "jqlx=泡面番"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "orderby=pubdate"
}, {
"n": "热度",
"v": "orderby=click"
}]
}],
"其他": [{
"key": "sta",
"name": "进度",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "连载中",
"v": "status=连载中"
}, {
"n": "已完结",
"v": "status=已完结"
}, {
"n": "未播放",
"v": "status=未播放"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日本",
"v": "area=日本"
}, {
"n": "中国",
"v": "area=中国"
}, {
"n": "欧美",
"v": "area=欧美"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "year=2025"
}, {
"n": "2024",
"v": "year=2024"
}, {
"n": "2023",
"v": "year=2023"
}, {
"n": "2022",
"v": "year=2022"
}, {
"n": "2021",
"v": "year=2021"
}, {
"n": "2020",
"v": "year=2020"
}, {
"n": "2019",
"v": "year=2019"
}, {
"n": "2018",
"v": "year=2018"
}, {
"n": "2017",
"v": "year=2017"
}, {
"n": "2016",
"v": "year=2016"
}, {
"n": "2015",
"v": "year=2015"
}, {
"n": "2014",
"v": "year=2014"
}, {
"n": "2013",
"v": "year=2013"
}, {
"n": "2012",
"v": "year=2012"
}, {
"n": "2011",
"v": "year=2011"
}, {
"n": "2010",
"v": "year=2010"
}, {
"n": "更早",
"v": "year=2010前"
}]
}, {
"key": "class",
"name": "剧情",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "冒险",
"v": "jqlx=冒险"
}, {
"n": "热血",
"v": "jqlx=热血"
}, {
"n": "爱情",
"v": "jqlx=爱情"
}, {
"n": "搞笑",
"v": "jqlx=搞笑"
}, {
"n": "后宫",
"v": "jqlx=后宫"
}, {
"n": "校园",
"v": "jqlx=校园"
}, {
"n": "机战",
"v": "jqlx=机战"
}, {
"n": "幻想",
"v": "jqlx=幻想"
}, {
"n": "科幻",
"v": "jqlx=科幻"
}, {
"n": "竞技",
"v": "jqlx=竞技"
}, {
"n": "百合",
"v": "jqlx=百合"
}, {
"n": "耽美",
"v": "jqlx=耽美"
}, {
"n": "悬疑",
"v": "jqlx=悬疑"
}, {
"n": "剧情",
"v": "jqlx=剧情"
}, {
"n": "战争",
"v": "jqlx=战争"
}, {
"n": "恐怖",
"v": "jqlx=恐怖"
}, {
"n": "运动",
"v": "jqlx=运动"
}, {
"n": "动作",
"v": "jqlx=动作"
}, {
"n": "童话",
"v": "jqlx=童话"
}, {
"n": "历史",
"v": "jqlx=历史"
}, {
"n": "真人",
"v": "jqlx=真人"
}, {
"n": "女性向",
"v": "jqlx=女性向"
}, {
"n": "泡面番",
"v": "jqlx=泡面番"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "orderby=pubdate"
}, {
"n": "热度",
"v": "orderby=click"
}]
}]
},
// filter_def:{
// TV:{by:'orderby=pubdate'},
// 剧场版:{by:'orderby=pubdate'},
// OVA:{by:'orderby=pubdate'},
// 其他:{by:'orderby=pubdate'}
// },
searchUrl: '/search.html?keyword=**&PageNo=fypage',
searchable: 2, //是否启用全局搜索,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'PC_UA',
},
class_name: 'TV&剧场版&OVA&其他',
class_url: 'TV&剧场版&OVA&其他',
play_parse: true,
lazy: '',
limit: 6,
// 推荐:'.dhnew.adj li;*;*;*;*',
推荐: '.dhnew.adj li;a&&title;img&&src;p:eq(-1)&&Text;a&&href',
// 一级:'.dhnew li;a&&title;img&&src;p:eq(-1)&&Text;a&&href',
一级: `js:
let d = [];
pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd;
let html = '';
let totalresult = getItem("totalresult_" + MY_CATE, '')
if (totalresult == '') {
html = request(input);
totalresult = pdfh(html, ".pageinfo&&strong&&Text");
setItem("totalresult_" + MY_CATE, totalresult)
}
input += '&totalresult=' + getItem("totalresult_" + MY_CATE, '');
html = request(input);
let list = pdfa(html, ".dhnew&&li");
list.forEach(it => {
d.push({
title: pdfh(it, "a&&title"),
desc: pdfh(it, "p:eq(-1)&&Text"),
pic_url: pd(it, "img&&src"),
url: pd(it, "a&&href")
})
});
setResult(d)
`,
二级: {
"title": "h1&&Text;.dhxx p:eq(4)&&Text",
"img": ".anime-img&&img&&src",
"desc": ".info1-left li:eq(1)&&Text;.dhxx p:eq(3)&&Text;.dhxx p:eq(2)&&Text;.info1-left li:eq(0)&&Text;.info1-left li:eq(2)&&Text",
"content": ".info2--strong&&Text",
"tabs": ".ol-select li",
"lists": ".ol-content:eq(#id) li"
},
// 搜索:'*;*;*;p:eq(3)&&Text;*',
搜索: '.dhnew li;a&&title;img&&src;p:eq(3)&&Text;a&&href',
}
-198
View File
@@ -1,198 +0,0 @@
var rule = {
title: '爱看机器人[虫]',
// host:'https://v.ikanbot.com',
host: 'https://v.aikanbot.com',
url: '/hot/index-fyclass-fyfilter-p-fypage.html[/hot/index-fyclass-fyfilter.html]',
//https://www.ikanbot.com/search?q=%E6%96%97%E7%BD%97%E5%A4%A7&p=2
// searchUrl:'/search?q=**&p=fypage',
searchUrl: '/search?q=**&p=fypage[/search?q=**]',
searchable: 2,
quickSearch: 0,
filterable: 1,
filter_url: '{{fl.tag}}',
图片来源: '@Referer=https://v.ikanbot.com/@User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
filter: {
"movie": [{
"key": "tag",
"name": "标签",
"value": [{
"n": "热门",
"v": "热门"
}, {
"n": "最新",
"v": "最新"
}, {
"n": "经典",
"v": "经典"
}, {
"n": "豆瓣高分",
"v": "豆瓣高分"
}, {
"n": "冷门佳片",
"v": "冷门佳片"
}, {
"n": "华语",
"v": "华语"
}, {
"n": "欧美",
"v": "欧美"
}, {
"n": "韩国",
"v": "韩国"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "喜剧",
"v": "喜剧"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "治愈",
"v": "治愈"
}, {
"n": "豆瓣top250",
"v": "豆瓣top250"
}]
}],
"tv": [{
"key": "tag",
"name": "标签",
"value": [{
"n": "热门",
"v": "热门"
}, {
"n": "美剧",
"v": "美剧"
}, {
"n": "英剧",
"v": "英剧"
}, {
"n": "韩剧",
"v": "韩剧"
}, {
"n": "日剧",
"v": "日剧"
}, {
"n": "国产剧",
"v": "国产剧"
}, {
"n": "港剧",
"v": "港剧"
}, {
"n": "日本动画",
"v": "日本动画"
}, {
"n": "综艺",
"v": "综艺"
}, {
"n": "纪录片",
"v": "纪录片"
}]
}]
},
filter_def: {
movie: {
tag: '热门'
},
tv: {
tag: '国产剧'
},
},
filter获取方法: `
let value = [];
$('ul').eq(2).find('li').each(function() {
// console.log($(this).text());
let n = $(this).text().trim();
value.push({
'n': n, 'v': n
});
});
// 电影执行:
let data = {'movie': [{'key': 'tag', 'name': '标签', 'value': value}]};
console.log(JSON.stringify(data));
//剧集执行:
let data = {'tv': [{'key': 'tag', 'name': '标签', 'value': value}]};
console.log(JSON.stringify(data));
`,
headers: {
'User-Agent': 'PC_UA',
},
class_name: '电影&剧集',
class_url: 'movie&tv',
play_parse: true,
double: true,
tab_remove: ['wjm3u8', 'ikm3u8', 'sdm3u8', 'M3U8', 'jinyingm3u8', 'fsm3u8', 'ukm3u8'], //移除某个线路及相关的选集
tab_order: ['bfzym3u8', '1080zyk', 'kuaikan', 'lzm3u8', 'ffm3u8', 'snm3u8', 'qhm3u8', 'gsm3u8', 'zuidam3u8', 'bjm3u8', 'wolong', 'xlm3u8', 'yhm3u8'], //线路顺序,按里面的顺序优先,没写的依次排后面
tab_rename: {
'bfzym3u8': '暴风',
'1080zyk': '优质',
'kuaikan': '快看',
'lzm3u8': '量子',
'ffm3u8': '非凡',
'snm3u8': '索尼',
'qhm3u8': '奇虎',
'haiwaikan': '海外看',
'gsm3u8': '光速',
'zuidam3u8': '最大',
'bjm3u8': '八戒',
'wolong': '卧龙',
'xlm3u8': '新浪',
'yhm3u8': '樱花',
'tkm3u8': '天空',
'jsm3u8': '极速',
'wjm3u8': '无尽',
'sdm3u8': '闪电',
'kcm3u8': '快车',
'jinyingm3u8': '金鹰',
'fsm3u8': '飞速',
'tpm3u8': '淘片',
'lem3u8': '鱼乐',
'dbm3u8': '百度',
'tomm3u8': '番茄',
'ukm3u8': 'U酷',
'ikm3u8': '爱坤',
'hnzym3u8': '红牛资源',
'hnm3u8': '红牛',
'68zy_m3u8': '68',
'kdm3u8': '酷点',
'bdxm3u8': '北斗星',
'hhm3u8': '豪华',
'kbm3u8': '快播'
}, //线路名替换如:lzm3u8替换为量子资源
推荐: '.v-list;div.item;*;*;*;*', //这里可以为空,这样点播不会有内容
// 一级:'.v-list&&div.item;p&&Text;img&&src;;a&&href', //一级的内容是推荐或者点播时候的一级匹配
一级: '.v-list&&div.item;p&&Text;img&&data-src;;a&&href', //一级的内容是推荐或者点播时候的一级匹配
// 二级:二级,
二级: 'js:eval(unescape(base64Decode("anM6CiAgICAgICAgcGRmaCA9IGpzcC5wZGZoOwogICAgICAgIGZ1bmN0aW9uIGdldFRva2VuKGh0bWwxKSB7CiAgICAgICAgICAgIGxldCBjdXJyZW50SWQgPSBwZGZoKGh0bWwxLCAnI2N1cnJlbnRfaWQmJnZhbHVlJyk7CiAgICAgICAgICAgIGxldCBlVG9rZW4gPSBwZGZoKGh0bWwxLCAnI2VfdG9rZW4mJnZhbHVlJyk7CiAgICAgICAgICAgIGlmICghY3VycmVudElkIHx8ICFlVG9rZW4pIHJldHVybiAnJzsKICAgICAgICAgICAgbGV0IGlkTGVuZ3RoID0gY3VycmVudElkLmxlbmd0aDsKICAgICAgICAgICAgbGV0IHN1YklkID0gY3VycmVudElkLnN1YnN0cmluZyhpZExlbmd0aCAtIDQsIGlkTGVuZ3RoKTsKICAgICAgICAgICAgbGV0IGtleXMgPSBbXTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJJZC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgbGV0IGN1ckludCA9IHBhcnNlSW50KHN1YklkW2ldKTsKICAgICAgICAgICAgICAgIGxldCBzcGxpdFBvcyA9IGN1ckludCAlIDMgKyAxOwogICAgICAgICAgICAgICAga2V5c1tpXSA9IGVUb2tlbi5zdWJzdHJpbmcoc3BsaXRQb3MsIHNwbGl0UG9zICsgOCk7CiAgICAgICAgICAgICAgICBlVG9rZW4gPSBlVG9rZW4uc3Vic3RyaW5nKHNwbGl0UG9zICsgOCwgZVRva2VuLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGtleXMuam9pbignJyk7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIFZPRD17fTsKICAgICAgICAgICAgbGV0IGh0bWwxID0gcmVxdWVzdChpbnB1dCk7CiAgICAgICAgICAgIFZPRC52b2RfaWQgPSBwZGZoKGh0bWwxLCAnI2N1cnJlbnRfaWQmJnZhbHVlJyk7CiAgICAgICAgICAgIFZPRC52b2RfbmFtZSA9IHBkZmgoaHRtbDEsICdoMiYmVGV4dCcpOwogICAgICAgICAgICBWT0Qudm9kX3BpYyA9IHBkZmgoaHRtbDEsICcuaXRlbS1yb290JiZpbWcmJmRhdGEtc3JjJyk7CiAgICAgICAgICAgIFZPRC52b2RfYWN0b3IgPSBwZGZoKGh0bWwxLCAnLm1ldGE6ZXEoNCkmJlRleHQnKTsKICAgICAgICAgICAgVk9ELnZvZF9hcmVhID0gcGRmaChodG1sMSwgJy5tZXRhOmVxKDMpJiZUZXh0Jyk7CiAgICAgICAgICAgIFZPRC52b2RfeWVhciA9IHBkZmgoaHRtbDEsICcubWV0YTplcSgyKSYmVGV4dCcpOwogICAgICAgICAgICBWT0Qudm9kX3JlbWFya3MgPSAnJzsKICAgICAgICAgICAgVk9ELnZvZF9kaXJlY3RvciA9ICcnOwogICAgICAgICAgICBWT0Qudm9kX2NvbnRlbnQgPSBwZGZoKGh0bWwxLCAnI2xpbmUtdGlwcyYmVGV4dCcpOwogICAgICAgICAgICAvLyBsb2coVk9EKTsKICAgICAgICAgICAgdmFyIHZfdGtzID0gZ2V0VG9rZW4oaHRtbDEpOwogICAgICAgICAgICBsb2coJ3ZfdGtzID09PT4gJyArIHZfdGtzKTsKICAgICAgICAgICAgaW5wdXQgPSBIT1NUICsgJy9hcGkvZ2V0UmVzTj92aWRlb0lkPScgKyBpbnB1dC5zcGxpdCgnLycpLnBvcCgpICsgJyZtdHlwZT0yJnRva2VuPScrdl90a3M7CiAgICAgICAgICAgIGxldCBodG1sID0gcmVxdWVzdChpbnB1dCwgewogICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzonTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMScsCiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBNWV9VUkwsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBwcmludChodG1sKTsKICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICAgICAgICAgIGxldCBlcGlzb2RlcyA9IGh0bWwuZGF0YS5saXN0OwogICAgICAgICAgICBsZXQgcGxheU1hcCA9IHt9OwogICAgICAgICAgICBpZiAodHlwZW9mIHBsYXlfdXJsID09PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgICAgdmFyIHBsYXlfdXJsID0gJycKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgbWFwID0ge30KICAgICAgICAgICAgbGV0IGFyciA9IFtdCiAgICAgICAgICAgIGxldCBuYW1lID0gewogICAgICAgICAgICAgICAgJ2JmenltM3U4JzogJ+aatOmjjicsCiAgICAgICAgICAgICAgICAnMTA4MHp5ayc6ICfkvJjotKgnLAogICAgICAgICAgICAgICAgJ2t1YWlrYW4nOiAn5b+r55yLJywKICAgICAgICAgICAgICAgICdsem0zdTgnOiAn6YeP5a2QJywKICAgICAgICAgICAgICAgICdmZm0zdTgnOiAn6Z2e5YehJywKICAgICAgICAgICAgICAgICdoYWl3YWlrYW4nOiAn5rW35aSW55yLJywKICAgICAgICAgICAgICAgICdnc20zdTgnOiAn5YWJ6YCfJywKICAgICAgICAgICAgICAgICd6dWlkYW0zdTgnOiAn5pyA5aSnJywKICAgICAgICAgICAgICAgICdiam0zdTgnOiAn5YWr5oiSJywKICAgICAgICAgICAgICAgICdzbm0zdTgnOiAn57Si5bC8JywKICAgICAgICAgICAgICAgICd3b2xvbmcnOiAn5Y2n6b6ZJywKICAgICAgICAgICAgICAgICd4bG0zdTgnOiAn5paw5rWqJywKICAgICAgICAgICAgICAgICd5aG0zdTgnOiAn5qix6IqxJywKICAgICAgICAgICAgICAgICd0a20zdTgnOiAn5aSp56m6JywKICAgICAgICAgICAgICAgICdqc20zdTgnOiAn5p6B6YCfJywKICAgICAgICAgICAgICAgICd3am0zdTgnOiAn5peg5bC9JywKICAgICAgICAgICAgICAgICdzZG0zdTgnOiAn6Zeq55S1JywKICAgICAgICAgICAgICAgICdrY20zdTgnOiAn5b+r6L2mJywKICAgICAgICAgICAgICAgICdqaW55aW5nbTN1OCc6ICfph5HpubAnLAogICAgICAgICAgICAgICAgJ2ZzbTN1OCc6ICfpo57pgJ8nLAogICAgICAgICAgICAgICAgJ3RwbTN1OCc6ICfmt5jniYcnLAogICAgICAgICAgICAgICAgJ2xlbTN1OCc6ICfpsbzkuZAnLAogICAgICAgICAgICAgICAgJ2RibTN1OCc6ICfnmb7luqYnLAogICAgICAgICAgICAgICAgJ3RvbW0zdTgnOiAn55Wq6IyEJywKICAgICAgICAgICAgICAgICd1a20zdTgnOiAnVemFtycsCiAgICAgICAgICAgICAgICAnaWttM3U4JzogJ+eIseWdpCcsCiAgICAgICAgICAgICAgICAnaG56eW0zdTgnOiAn57qi54mb6LWE5rqQJywKICAgICAgICAgICAgICAgICdobm0zdTgnOiAn57qi54mbJywKICAgICAgICAgICAgICAgICc2OHp5X20zdTgnOiAnNjgnLAogICAgICAgICAgICAgICAgJ2tkbTN1OCc6ICfphbfngrknLAogICAgICAgICAgICAgICAgJ2JkeG0zdTgnOiAn5YyX5paX5pifJywKICAgICAgICAgICAgICAgICdxaG0zdTgnOiAn5aWH6JmOJywKICAgICAgICAgICAgICAgICdoaG0zdTgnOiAn6LGq5Y2OJwogICAgICAgICAgICB9OwogICAgICAgICAgICBlcGlzb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGVwKSB7CiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoZXBbJ3Jlc0RhdGEnXSk7CiAgICAgICAgICAgICAgICBkYXRhLm1hcCh2YWwgPT4gewogICAgICAgICAgICAgICAgICAgIGlmKCFtYXBbdmFsLmZsYWddKXsKICAgICAgICAgICAgICAgICAgICAgICAgbWFwW3ZhbC5mbGFnXSA9IFt2YWwudXJsLnJlcGxhY2VBbGwoJyMjJywnIycpXQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1hcFt2YWwuZmxhZ10ucHVzaCh2YWwudXJsLnJlcGxhY2VBbGwoJyMjJywnIycpKQogICAgICAgICAgICAgICALine truncated
// 搜索:'#search-result&&.media;h5&&a&&Text;a&&img&&data-src;.label&&Text;a&&href',//第三个是描述,一般显示更新或者完结
搜索: '.col-md-8&&.media;h5&&a&&Text;a&&img&&data-src;.label&&Text;a&&href', //第三个是描述,一般显示更新或者完结
lazy: `
if(/\\.m3u8$/.test(input)){
input = {
parse:0,
url:getProxyUrl()+'&url='+input,
jx:0
}
}
`,
proxy_rule: `js:
let url = input.url;
let m3u8 = fixAdM3u8Ai(url);
input = [200,'application/vnd.apple.mpegurl',m3u8]
`
}
-815
View File
@@ -1,815 +0,0 @@
muban.短视2.二级.img = '.detail-pic&&img&&data-src';
var rule = {
title: '爱弹幕',
模板: '短视2',
host: 'https://anime.girigirilove.com',
homeUrl: '/map/',
// url:'/show/fyclass--------fypage---/'
url: '/show/fyclassfyfilter/',
filterable: 1, //是否启用分类筛选,
filter_url: '-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}',
filter: {
"2": [{
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "喜剧",
"v": "喜剧"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "战争",
"v": "战争"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "校园",
"v": "校园"
}, {
"n": "后宫",
"v": "后宫"
}, {
"n": "热血",
"v": "热血"
}, {
"n": "运动",
"v": "运动"
}, {
"n": "百合",
"v": "百合"
}, {
"n": "乙女",
"v": "乙女"
}, {
"n": "机甲",
"v": "机甲"
}, {
"n": "日常",
"v": "日常"
}, {
"n": "魔法少女",
"v": "魔法少女"
}, {
"n": "异世界",
"v": "异世界"
}, {
"n": "爱抖露",
"v": "爱抖露"
}, {
"n": "音乐",
"v": "音乐"
}, {
"n": "萌",
"v": "萌"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "一月",
"v": "一月"
}, {
"n": "四月",
"v": "四月"
}, {
"n": "七月",
"v": "七月"
}, {
"n": "十月",
"v": "十月"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}, {
"n": "2003",
"v": "2003"
}, {
"n": "2002",
"v": "2002"
}, {
"n": "2001",
"v": "2001"
}, {
"n": "2000",
"v": "2000"
}]
}, {
"key": "lang",
"name": "语言",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日语",
"v": "日语"
}, {
"n": "国语",
"v": "国语"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "最新",
"v": "time"
}, {
"n": "最热",
"v": "hits"
}, {
"n": "评分",
"v": "score"
}]
}],
"3": [{
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "搞笑",
"v": "搞笑"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "战争",
"v": "战争"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "校园",
"v": "校园"
}, {
"n": "后宫",
"v": "后宫"
}, {
"n": "热血",
"v": "热血"
}, {
"n": "运动",
"v": "运动"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "内地",
"v": "内地"
}, {
"n": "港台",
"v": "港台"
}, {
"n": "日韩",
"v": "日韩"
}, {
"n": "欧美",
"v": "欧美"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}, {
"n": "2003",
"v": "2003"
}]
}, {
"key": "lang",
"name": "语言",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "国语",
"v": "国语"
}, {
"n": "英语",
"v": "英语"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "最新",
"v": "time"
}, {
"n": "最热",
"v": "hits"
}, {
"n": "评分",
"v": "score"
}]
}],
"21": [{
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "喜剧",
"v": "喜剧"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "战争",
"v": "战争"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "校园",
"v": "校园"
}, {
"n": "后宫",
"v": "后宫"
}, {
"n": "热血",
"v": "热血"
}, {
"n": "运动",
"v": "运动"
}, {
"n": "百合",
"v": "百合"
}, {
"n": "耽美",
"v": "耽美"
}, {
"n": "机甲",
"v": "机甲"
}, {
"n": "日常",
"v": "日常"
}, {
"n": "魔法少女",
"v": "魔法少女"
}, {
"n": "异世界",
"v": "异世界"
}, {
"n": "爱抖露",
"v": "爱抖露"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}, {
"n": "2003",
"v": "2003"
}]
}, {
"key": "lang",
"name": "语言",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日语",
"v": "日语"
}, {
"n": "中文",
"v": "中文"
}, {
"n": "英语",
"v": "英语"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "最新",
"v": "time"
}, {
"n": "最热",
"v": "hits"
}, {
"n": "评分",
"v": "score"
}]
}],
"20": [{
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "经典",
"v": "经典"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "同性",
"v": "同性"
}, {
"n": "喜剧",
"v": "喜剧"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "悬疑.惊悚",
"v": "悬疑.惊悚"
}, {
"n": "战争",
"v": "战争"
}, {
"n": "欧美",
"v": "欧美"
}, {
"n": "歌舞",
"v": "歌舞"
}, {
"n": "灾难",
"v": "灾难"
}, {
"n": "记录.泰剧",
"v": "记录.泰剧"
}, {
"n": "体育",
"v": "体育"
}, {
"n": "烧脑",
"v": "烧脑"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日本",
"v": "日本"
}, {
"n": "欧美",
"v": "欧美"
}, {
"n": "泰国",
"v": "泰国"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004.2003",
"v": "2004.2003"
}]
}, {
"key": "lang",
"name": "语言",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "日语",
"v": "日语"
}, {
"n": "英语",
"v": "英语"
}, {
"n": "泰语",
"v": "泰语"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "最新",
"v": "time"
}, {
"n": "最热",
"v": "hits"
}, {
"n": "评分",
"v": "score"
}]
}],
"24": [{
"key": "by",
"name": "排序",
"value": [{
"n": "最新",
"v": "time"
}, {
"n": "最热",
"v": "hits"
}, {
"n": "评分",
"v": "score"
}]
}],
"26": [{
"key": "by",
"name": "排序",
"value": [{
"n": "最新",
"v": "time"
}, {
"n": "最热",
"v": "hits"
}, {
"n": "评分",
"v": "score"
}]
}]
},
searchUrl: '/search/**----------fypage---/',
class_name: '日番&美番&劇場版&真人番劇&BD副音軌&其他',
class_url: '2&3&21&20&24&26',
play_parse: true,
lazy: `js:
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
var url = html.url;
var from = html.from;
var next = html.link_next;
if (html.encrypt == '1') {
url = unescape(url)
} else if (html.encrypt == '2') {
url = unescape(base64Decode(url))
} else if (html.encrypt == '3') {
url = url.substring(8, url.length);
url = base64Decode(url);
url = url.substring(8, (url.length) - 8)
}
if (/\\.m3u8|\\.mp4/.test(url)) {
input = {
jx: 0,
url: url,
parse: 0
}
} else {
var paurl = request(HOST + '/static/player/' + from + '.js').match(/ src="(.*?)'/)[1];
if (/https/.test(paurl)) {
var purl = paurl + url + '&next=' + next + '&title=';
input = {
jx: 0,
url: purl,
parse: 1
}
}
}
`,
推荐: '.border-box&&.public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
double: false, // 推荐内容是否双层定位
一级: '.border-box .public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
搜索: '.row-right&&.search-box;.thumb-txt&&Text;.lazy&&data-src;.public-list-prb&&Text;a&&href',
}
-476
View File
@@ -1,476 +0,0 @@
var rule = {
title: '瓜子',
host: 'https://api.8utdtcq.com',
url: '/App/IndexList/indexList',
// homeUrl: 'http://124.222.116.5/homedata/home.json',
searchUrl: '/App/Index/findMoreVod#**',
searchable: 2,
quickSearch: 1,
filterable: 1,
class_name: '电影&电视剧&动漫&综艺&短剧',
class_url: '1&2&4&3&64',
filter: 'H4sIAAAAAAAAA+2a7U4aQRSG/3sVht/bZHf5WnorjWlo4YfphwlqE2NMtGoLWIsmFbRi2qYqoBgxtVVR8GZ2duUuOmchfuDuDHI2xJhD4hGYyTzv7hlm57yZ6aFh/gpogefDL5y38Jq+fuc0vklO8eZAPJWMB5S7Te/j75JebR/ibyeTd8Z1H/9mMBiJLZZb8+WusW7GhC5q4F7jzP3+Qsh2qbXxSQjpdMGSWrsb1umhkNTpgr6mXM06a4qvqd0FS7KqJbv5VUgyLxfsRsHKHyos+9NauuR3U2HNE7bZUKyFHP/E0hXF+rPmfOEMp/A/+HS1dOT827m0cwd2ZgOvtrBjFatCtZ0u6Fz/qHDp4ly3u2BJ5mmRLRfM+ndxupdrrL6rWPkaTwLb+sVveA3ubatStbZ2+B2GAdDTbvGfeZ4X62h3uU+6883I9adbCtxXoqlkPOW1Erm1PeKVSFf1kBDhdPCBEpRRgn5QdBlF94OiySiaHxRVRvEj+1pMQuEdfKAYMorhByUqo0T9oERklAiaoqnPtDA7O5aRwgoPIQhBCDoEDQJ+aqgq55vnvyUSVJXjVGCqQFdBhwqKVNCmRiBEIRgQ8HMp1ossLRZTFR40CDqEIIQQhDCECIQoBAMCXpbRmywDZBkgywBZBsgyQJYBsgyQZYAsA2QZeFnW5rFVqIhT6ONzcXzylddj0aXpET8VWbZsNop25rOIE0Zn52PVzq9KKHoMfTH5IsuUJJgIlmKnj6z5RQkliqaUVtnZuYRioBMzt2LN5iUUfF4yJfkd01T0xaTXzXpGhtF8+MnY32SZCeKnWX2PNdZkvxn0TbPnmq3vTdnVoCeanT20G3uyn6ZLbvpeocdSE55LtEtbf2u0fX7BVtLCNTrxcjSBf7wVZ3lxKeHEE4mJUX6FPsDs+QMJbPz1WAqPau2vs7TYHvJGeU0N591Ie0z+1H80fluxxr7UyW8jv438Nk8S+W2D8NugghOnk/y2Lgr5bQ+kkN9GfpurBPLbHiKL/LaB+W2bDbNeYpmS0D7Q/dk3yzBBfzbNMkzInx2zDIM3EJ19rAyD9lzam1gZBu3tWX9P2HZehsGbe86mWIZBu3vXu3ChteOC6XsxIGsHAXs61k6IrJ0uCFk7niSydtxJZO146CBrxxNC1g5ZO0IKWTvdFLJ2bkkga4esnYFaO+bpAVTC2bJ1sS8854A/g9I2KuQk9DGU4Y71Ike5eEl9J4tKbwTs6ZTeQSq9uyBUenuSqPR2J1Hp7aGDSm9PCJXeVHoLKVR6d1Oo9L4lgUpvKr0He6rC2Rfziu4qI9yl6+iDFXCqIlfrgYQ+W8H3f3xj1gPJp+MVPZBcTlj0PSuoxkfAnkCNPzTzH+StPxCsRAAA',
// limit: 6,
//double: false,
play_parse: true,
lazy: $js.toString(() => {
let d = [];
//console.log("wangzhi==="+input)
var vod_id = input.split("/")[0];
var vurl_id = input.split("/")[1];
var resolution = input.split("?")[1]
function Encrypt(plainText) {
let key = CryptoJS.enc.Utf8.parse("mvXBSW7ekreItNsT");
let iv = CryptoJS.enc.Utf8.parse("2U3IrJL8szAKp0Fj");
// 将文本加密为 AES/CBC/PKCS5Padding 格式
let encrypted = CryptoJS.AES.encrypt(plainText, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 获取加密结果并转为 Hex 格式
let encryptedHex = encrypted.ciphertext.toString(CryptoJS.enc.Hex);
return encryptedHex.toUpperCase(); // 返回大写 Hex 格式
}
function Decrypt(word, key, iv) {
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
// 使用AES/CBC/PKCS5Padding模式进行解密
let decrypt = CryptoJS.AES.decrypt({
ciphertext: encryptedHexStr
}, key, {
iv: iv,
mode: CryptoJS.mode.CBC, // 使用CBC模式
padding: CryptoJS.pad.Pkcs7 // 使用PKCS#7填充
});
// 将解密后的数据转换为原始文本
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
// 返回解密后的文本
return decryptedStr;
}
var timestamp = new Date().getTime() / 1000; //log(timestamp)
var t = timestamp.toString().split('.')[0]; //log(t)
var request_key = JSON.stringify({
"domain_type": "8",
"vod_id": vod_id,
"type": "play",
"resolution": resolution,
"vurl_id": vurl_id
}); //log(request_key)
var request_key2 = Encrypt(request_key); //log(request_key2)
var signature = 'token_id=,token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79,phone_type=1,request_key=' + request_key2 + ',app_id=1,time=' + t + ',keys=ZH8gpdp9bxjuG2NK97sol3o7Uiz+9eVEaVMlE2Fk3j7EResM3YHnECZUH7BONNTjpy7RVNi/YimGuNYriC7Cmswv4PNYiFYzw9QhlqZKwNfCM6IUpFZ0T4rZx8G78zkv2tNVbfYC4qNQedGi07nWZ33dlSuVxROVfY5JxOWHMI0=*&zvdvdvddbfikkkumtmdwqppp?|4Y!s!2br'; //log(signature)
var signature2 = md5(signature); //log(signature2)
var body = 'token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79&token_id=&phone_type=1&time=' + t + '&phone_model=xiaomi-22021211rc&keys=ZH8gpdp9bxjuG2NK97sol3o7Uiz%2B9eVEaVMlE2Fk3j7EResM3YHnECZUH7BONNTjpy7RVNi%2FYimGuNYriC7Cmswv4PNYiFYzw9QhlqZKwNfCM6IUpFZ0T4rZx8G78zkv2tNVbfYC4qNQedGi07nWZ33dlSuVxROVfY5JxOWHMI0%3D&request_key=' + request_key2 + '&signature=' + signature2 + '&app_id=1&ad_version=1'; //log(body)
var html = fetch('https://api.8utdtcq.com/App/Resource/VurlDetail/showOne', {
headers: {
'Cache-Control': 'no-cache',
'Version': '2406025',
'PackageName': 'com.uf076bf0c246.qe439f0d5e.m8aaf56b725a.ifeb647346f',
'Ver': '1.9.2',
'Referer': 'https://api.8utdtcq.com',
'X-Customer-Client-Ip': '127.0.0.1',
'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'api.8utdtcq.com',
'Connection': 'Keep-Alive',
//'Accept-Encoding': 'gzip',
'User-Agent': 'okhttp/3.12.0'
},
body: body,
method: 'POST',
rejectCoding: true
}); //log(html)
var data = JSON.parse(html).data;
// //console.log("dddddd====="+JSON.stringify(data))
var response_key = data.response_key; //log(response_key)
var keys = data.keys; //log(keys)
var bodykey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGAe6hKrWLi1zQmjTT1ozbE4QdFeJGNxubxld6GrFGximxfMsMB6BpJhpcTouAqywAFppiKetUBBbXwYsYU1wNr648XVmPmCMCy4rY8vdliFnbMUj086DU6Z+/oXBdWU3/b1G0DN3E9wULRSwcKZT3wj/cCI1vsCm3gj2R5SqkA9Y0CAwEAAQKBgAJH+4CxV0/zBVcLiBCHvSANm0l7HetybTh/j2p0Y1sTXro4ALwAaCTUeqdBjWiLSo9lNwDHFyq8zX90+gNxa7c5EqcWV9FmlVXr8VhfBzcZo1nXeNdXFT7tQ2yah/odtdcx+vRMSGJd1t/5k5bDd9wAvYdIDblMAg+wiKKZ5KcdAkEA1cCakEN4NexkF5tHPRrR6XOY/XHfkqXxEhMqmNbB9U34saTJnLWIHC8IXys6Qmzz30TtzCjuOqKRRy+FMM4TdwJBAJQZFPjsGC+RqcG5UvVMiMPhnwe/bXEehShK86yJK/g/UiKrO87h3aEu5gcJqBygTq3BBBoH2md3pr/W+hUMWBsCQQChfhTIrdDinKi6lRxrdBnn0Ohjg2cwuqK5zzU9p/N+S9x7Ck8wUI53DKm8jUJE8WAG7WLj/oCOWEh+ic6NIwTdAkEAj0X8nhx6AXsgCYRql1klbqtVmL8+95KZK7PnLWG/IfjQUy3pPGoSaZ7fdquG8bq8oyf5+dzjE/oTXcByS+6XRQJAP/5ciy1bL3NhUhsaOVy55MHXnPjdcTX0FaLi+ybXZIfIQ2P4rb19mVq1feMbCXhz+L1rG8oat5lYKfpe8k83ZA=="; //log(bodykey)
var bodykeyiv = JSON.parse(RSA.decode(keys, bodykey)); //log(bodykeyiv)
var key = CryptoJS.enc.Utf8.parse(bodykeyiv.key); //log(key)
var iv = CryptoJS.enc.Utf8.parse(bodykeyiv.iv); //log(iv)
var html2 = Decrypt(response_key, key, iv); //log(html2)
var url = JSON.parse(html2).url; //log(url)
input = {
url: url,
parse: 0,
header: rule.headers
}
setResult(d)
}),
// 推荐: $js.toString(() => {
// let d = [];
// let data = JSON.parse(request(input))
// data.forEach(item => {
// item.datas.forEach(it => {
// let id = `http://114.132.55.23/bl/mb/api.php/provide/vod/?ac=videolist&wd=${it.title}&`;
// d.push({
// url: id,
// title: it.title,
// img: it.pic,
// desc: it.acr,
// })
// });
// });
// setResult(d)
// }),
一级: $js.toString(() => {
let d = [];
function Encrypt(plainText) {
let key = CryptoJS.enc.Utf8.parse("mvXBSW7ekreItNsT");
let iv = CryptoJS.enc.Utf8.parse("2U3IrJL8szAKp0Fj");
// 将文本加密为 AES/CBC/PKCS5Padding 格式
let encrypted = CryptoJS.AES.encrypt(plainText, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 获取加密结果并转为 Hex 格式
let encryptedHex = encrypted.ciphertext.toString(CryptoJS.enc.Hex);
return encryptedHex.toUpperCase(); // 返回大写 Hex 格式
}
function Decrypt(word, key, iv) {
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
// 使用AES/CBC/PKCS5Padding模式进行解密
let decrypt = CryptoJS.AES.decrypt({
ciphertext: encryptedHexStr
}, key, {
iv: iv,
mode: CryptoJS.mode.CBC, // 使用CBC模式
padding: CryptoJS.pad.Pkcs7 // 使用PKCS#7填充
});
// 将解密后的数据转换为原始文本
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
// 返回解密后的文本
return decryptedStr;
}
function getbody3(key, t) {
var signature = 'token_id=,token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79,phone_type=1,request_key=' + key + ',app_id=1,time=' + t + ',keys=qDpotE2bedimK3QGqlyV5ieXXC3EhaPLQ+IOJyHnHflCj5w/7ESK7FgywMvrgjxbx0GklEFLI4+JshgySe633OIRstuktwdiCy3CT+fLSpuxBJDIlfXQDaeH3ig1wiB0JsZ601XHiFweGMu4tZfnSpHg3OnoL6nz/uurUif2OK4=*&zvdvdvddbfikkkumtmdwqppp?|4Y!s!2br'; //log(signature)
var signature2 = md5(signature).toUpperCase(); //log(signature2)
var body = 'token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79&token_id=&phone_type=1&time=' + t + '&phone_model=xiaomi-22021211rc&keys=qDpotE2bedimK3QGqlyV5ieXXC3EhaPLQ%2BIOJyHnHflCj5w%2F7ESK7FgywMvrgjxbx0GklEFLI4%2BJshgySe633OIRstuktwdiCy3CT%2BfLSpuxBJDIlfXQDaeH3ig1wiB0JsZ601XHiFweGMu4tZfnSpHg3OnoL6nz%2FuurUif2OK4%3D&request_key=' + key + '&signature=' + signature2 + '&app_id=1&ad_version=1';
return body
}
const bodykey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGAe6hKrWLi1zQmjTT1ozbE4QdFeJGNxubxld6GrFGximxfMsMB6BpJhpcTouAqywAFppiKetUBBbXwYsYU1wNr648XVmPmCMCy4rY8vdliFnbMUj086DU6Z+/oXBdWU3/b1G0DN3E9wULRSwcKZT3wj/cCI1vsCm3gj2R5SqkA9Y0CAwEAAQKBgAJH+4CxV0/zBVcLiBCHvSANm0l7HetybTh/j2p0Y1sTXro4ALwAaCTUeqdBjWiLSo9lNwDHFyq8zX90+gNxa7c5EqcWV9FmlVXr8VhfBzcZo1nXeNdXFT7tQ2yah/odtdcx+vRMSGJd1t/5k5bDd9wAvYdIDblMAg+wiKKZ5KcdAkEA1cCakEN4NexkF5tHPRrR6XOY/XHfkqXxEhMqmNbB9U34saTJnLWIHC8IXys6Qmzz30TtzCjuOqKRRy+FMM4TdwJBAJQZFPjsGC+RqcG5UvVMiMPhnwe/bXEehShK86yJK/g/UiKrO87h3aEu5gcJqBygTq3BBBoH2md3pr/W+hUMWBsCQQChfhTIrdDinKi6lRxrdBnn0Ohjg2cwuqK5zzU9p/N+S9x7Ck8wUI53DKm8jUJE8WAG7WLj/oCOWEh+ic6NIwTdAkEAj0X8nhx6AXsgCYRql1klbqtVmL8+95KZK7PnLWG/IfjQUy3pPGoSaZ7fdquG8bq8oyf5+dzjE/oTXcByS+6XRQJAP/5ciy1bL3NhUhsaOVy55MHXnPjdcTX0FaLi+ybXZIfIQ2P4rb19mVq1feMbCXhz+L1rG8oat5lYKfpe8k83ZA==";
function gethtml(u, body, headers) {
var hd = fetch(u, {
headers: headers,
body: body,
method: 'POST',
rejectCoding: true
});
var banner = JSON.parse(hd).data;
var response_key = banner.response_key; //log()
var keys = banner.keys; //log(keys)
var bodykeyiv = JSON.parse(RSA.decode(keys, bodykey));
var key = CryptoJS.enc.Utf8.parse(bodykeyiv.key);
var iv = CryptoJS.enc.Utf8.parse(bodykeyiv.iv);
var html = Decrypt(response_key, key, iv);
return html
}
function hqsub(MY_CATE) {
var subs = ["5", "12", "30", "22", ""]
var tids = ["1", "2", "4", "3", "64"]
let index = tids.indexOf(MY_CATE);
if (index !== -1) {
return subs[index];
}
return ""; // 或者根据需要返回其他值
}
var headers = {
'Cache-Control': 'no-cache',
'Version': '2406025',
'PackageName': 'com.uf076bf0c246.qe439f0d5e.m8aaf56b725a.ifeb647346f',
'Ver': '1.9.2',
'Referer': 'https://api.8utdtcq.com',
'X-Customer-Client-Ip': '127.0.0.1',
'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'api.8utdtcq.com',
'Connection': 'Keep-Alive',
//'Accept-Encoding': 'gzip',
'User-Agent': 'okhttp/3.12.0'
}
var tid = MY_CATE;
var sub = hqsub(MY_CATE)
var timestamp = new Date().getTime() / 1000;
var t = timestamp.toString().split('.')[0];
var request_key = JSON.stringify({
"area": (MY_FL.area || 0).toString(),
"sub": (MY_FL.sub || sub).toString(),
"year": (MY_FL.year || 0).toString(),
"pageSize": "30",
"sort": (MY_FL.sort || "d_id").toString(),
"page": MY_PAGE,
"tid": tid
});
var request_key2 = Encrypt(request_key);
var body = getbody3(request_key2, t)
var html2 = gethtml("https://api.8utdtcq.com/App/IndexList/indexList", body, headers)
//console.log("tttttlieb=="+html2)
var list = JSON.parse(html2).list; //log(list)
list.forEach(data => {
d.push({
title: data.vod_name,
desc: data.vod_continu == 0 ? '电影' : '更新至' + data.vod_continu + '集',
year: data.vod_scroe,
img: data.vod_pic,
url: `${data.vod_id}/${data.vod_continu}`,
})
})
setResult(d)
}),
二级: $js.toString(() => {
// var d = [];
function Encrypt(plainText) {
let key = CryptoJS.enc.Utf8.parse("mvXBSW7ekreItNsT");
let iv = CryptoJS.enc.Utf8.parse("2U3IrJL8szAKp0Fj");
// 将文本加密为 AES/CBC/PKCS5Padding 格式
let encrypted = CryptoJS.AES.encrypt(plainText, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 获取加密结果并转为 Hex 格式
let encryptedHex = encrypted.ciphertext.toString(CryptoJS.enc.Hex);
return encryptedHex.toUpperCase(); // 返回大写 Hex 格式
}
function Decrypt(word, key, iv) {
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
// 使用AES/CBC/PKCS5Padding模式进行解密
let decrypt = CryptoJS.AES.decrypt({
ciphertext: encryptedHexStr
}, key, {
iv: iv,
mode: CryptoJS.mode.CBC, // 使用CBC模式
padding: CryptoJS.pad.Pkcs7 // 使用PKCS#7填充
});
// 将解密后的数据转换为原始文本
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
// 返回解密后的文本
return decryptedStr;
}
function getbody2(key, t) {
var signature = 'token_id=,token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79,phone_type=1,request_key=' + key + ',app_id=1,time=' + t + ',keys=Qmxi5ciWXbQzkr7o+SUNiUuQxQEf8/AVyUWY4T/BGhcXBIUz4nOyHBGf9A4KbM0iKF3yp9M7WAY0rrs5PzdTAOB45plcS2zZ0wUibcXuGJ29VVGRWKGwE9zu2vLwhfgjTaaDpXo4rby+7GxXTktzJmxvneOUdYeHi+PZsThlvPI=*&zvdvdvddbfikkkumtmdwqppp?|4Y!s!2br'; //log(signature)
var signature2 = md5(signature); //log(signature2)
var body = 'token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79&token_id=&phone_type=1&time=' + t + '&phone_model=xiaomi-22021211rc&keys=Qmxi5ciWXbQzkr7o%2BSUNiUuQxQEf8%2FAVyUWY4T%2FBGhcXBIUz4nOyHBGf9A4KbM0iKF3yp9M7WAY0rrs5PzdTAOB45plcS2zZ0wUibcXuGJ29VVGRWKGwE9zu2vLwhfgjTaaDpXo4rby%2B7GxXTktzJmxvneOUdYeHi%2BPZsThlvPI%3D&request_key=' + key + '&signature=' + signature2 + '&app_id=1&ad_version=1'; //log(body)
return body
}
const bodykey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGAe6hKrWLi1zQmjTT1ozbE4QdFeJGNxubxld6GrFGximxfMsMB6BpJhpcTouAqywAFppiKetUBBbXwYsYU1wNr648XVmPmCMCy4rY8vdliFnbMUj086DU6Z+/oXBdWU3/b1G0DN3E9wULRSwcKZT3wj/cCI1vsCm3gj2R5SqkA9Y0CAwEAAQKBgAJH+4CxV0/zBVcLiBCHvSANm0l7HetybTh/j2p0Y1sTXro4ALwAaCTUeqdBjWiLSo9lNwDHFyq8zX90+gNxa7c5EqcWV9FmlVXr8VhfBzcZo1nXeNdXFT7tQ2yah/odtdcx+vRMSGJd1t/5k5bDd9wAvYdIDblMAg+wiKKZ5KcdAkEA1cCakEN4NexkF5tHPRrR6XOY/XHfkqXxEhMqmNbB9U34saTJnLWIHC8IXys6Qmzz30TtzCjuOqKRRy+FMM4TdwJBAJQZFPjsGC+RqcG5UvVMiMPhnwe/bXEehShK86yJK/g/UiKrO87h3aEu5gcJqBygTq3BBBoH2md3pr/W+hUMWBsCQQChfhTIrdDinKi6lRxrdBnn0Ohjg2cwuqK5zzU9p/N+S9x7Ck8wUI53DKm8jUJE8WAG7WLj/oCOWEh+ic6NIwTdAkEAj0X8nhx6AXsgCYRql1klbqtVmL8+95KZK7PnLWG/IfjQUy3pPGoSaZ7fdquG8bq8oyf5+dzjE/oTXcByS+6XRQJAP/5ciy1bL3NhUhsaOVy55MHXnPjdcTX0FaLi+ybXZIfIQ2P4rb19mVq1feMbCXhz+L1rG8oat5lYKfpe8k83ZA==";
function gethtml(u, body, headers) {
var hd = fetch(u, {
headers: headers,
body: body,
method: 'POST',
rejectCoding: true
});
var banner = JSON.parse(hd).data;
var response_key = banner.response_key; //log()
var keys = banner.keys; //log(keys)
var bodykeyiv = JSON.parse(RSA.decode(keys, bodykey));
var key = CryptoJS.enc.Utf8.parse(bodykeyiv.key);
var iv = CryptoJS.enc.Utf8.parse(bodykeyiv.iv);
var html = Decrypt(response_key, key, iv);
return html
}
const headers = {
'Cache-Control': 'no-cache',
'Version': '2406025',
'PackageName': 'com.uf076bf0c246.qe439f0d5e.m8aaf56b725a.ifeb647346f',
'Ver': '1.9.2',
'Referer': 'https://api.8utdtcq.com',
'X-Customer-Client-Ip': '127.0.0.1',
'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'api.8utdtcq.com',
'Connection': 'Keep-Alive',
//'Accept-Encoding': 'gzip',
'User-Agent': 'okhttp/3.12.0'
}
// var MY_URL = MY_URL.split("##")[1]; //log(MY_URL)
input = input.replace('https://api.8utdtcq.com/', '');
//console.log("input----===="+input)
// var vod_continu = input.split("/")[1]; //log(vod_id)
var vod_id = input.split("/")[0];
//console.log("vod----===="+vod_id)
var timestamp = new Date().getTime() / 1000;
var t = timestamp.toString().split('.')[0];
var request_key = JSON.stringify({
"token_id": "393668",
"vod_id": vod_id,
"mobile_time": t,
"token": "1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79"
});
var request_key2 = Encrypt(request_key);
var body = getbody2(request_key2, t)
var html = gethtml("https://api.8utdtcq.com/App/IndexPlay/playInfo", body, headers)
var data2 = JSON.parse(html).vodInfo; //console.log("hwudwudg-===="+JSON.stringify(data2))
var request_key3 = JSON.stringify({
"vurl_cloud_id": "2",
"vod_d_id": vod_id
}); //log(request_key3)
var request_key4 = Encrypt(request_key3); //log(request_key4)
var body2 = getbody2(request_key4, t)
var html3 = gethtml("https://api.8utdtcq.com/App/Resource/Vurl/show", body2, headers); //log(html3)
var list = JSON.parse(html3).list;
let nnnmm = [];
list.forEach(item => {
// 获取play对象的所有值
const playParams = Object.values(item.play);
let lastParam = null;
// 从数组的最后一个元素开始,向前查找,直到找到一个非空的param值
for (let i = playParams.length - 1; i >= 0; i--) {
if (playParams[i].param) {
lastParam = playParams[i].param;
break;
}
}
// 使用正则表达式匹配vurl_id
const vurlIdMatch = lastParam.match(/vurl_id=(\d+)/);
const resolution = lastParam.match(/resolution=(\d+)/);
// 如果匹配成功,将title和vurl_id组合后push到result数组
if (vurlIdMatch) {
nnnmm.push(`${item.title}$${vod_id}/${vurlIdMatch[1]}?${resolution[1]}`);
}
});
VOD = {
title: data2.vod_name,
type: data2.videoTag.toString(),
desc: data2.vod_use_content,
vod_actor: data2.vod_actor,
vod_area: data2.vod_area,
vod_director: data2.vod_director,
img: data2.vod_pic,
vod_play_from: '瓜子HD',
vod_play_url: nnnmm.join('#')
}
}),
搜索: $js.toString(() => {
let d = [];
function Encrypt(plainText) {
let key = CryptoJS.enc.Utf8.parse("mvXBSW7ekreItNsT");
let iv = CryptoJS.enc.Utf8.parse("2U3IrJL8szAKp0Fj");
// 将文本加密为 AES/CBC/PKCS5Padding 格式
let encrypted = CryptoJS.AES.encrypt(plainText, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 获取加密结果并转为 Hex 格式
let encryptedHex = encrypted.ciphertext.toString(CryptoJS.enc.Hex);
return encryptedHex.toUpperCase(); // 返回大写 Hex 格式
}
function Decrypt(word, key, iv) {
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
// 使用AES/CBC/PKCS5Padding模式进行解密
let decrypt = CryptoJS.AES.decrypt({
ciphertext: encryptedHexStr
}, key, {
iv: iv,
mode: CryptoJS.mode.CBC, // 使用CBC模式
padding: CryptoJS.pad.Pkcs7 // 使用PKCS#7填充
});
// 将解密后的数据转换为原始文本
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
// 返回解密后的文本
return decryptedStr;
}
function getbody3(key, t) {
var signature = 'token_id=,token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79,phone_type=1,request_key=' + key + ',app_id=1,time=' + t + ',keys=qDpotE2bedimK3QGqlyV5ieXXC3EhaPLQ+IOJyHnHflCj5w/7ESK7FgywMvrgjxbx0GklEFLI4+JshgySe633OIRstuktwdiCy3CT+fLSpuxBJDIlfXQDaeH3ig1wiB0JsZ601XHiFweGMu4tZfnSpHg3OnoL6nz/uurUif2OK4=*&zvdvdvddbfikkkumtmdwqppp?|4Y!s!2br'; //log(signature)
var signature2 = md5(signature); //log(signature2)
var body = 'token=1be86e8e18a9fa18b2b8d5432699dad0.ac008ed650fd087bfbecf2fda9d82e9835253ef24843e6b18fcd128b10763497bcf9d53e959f5377cde038c20ccf9d17f604c9b8bb6e61041def86729b2fc7408bd241e23c213ac57f0226ee656e2bb0a583ae0e4f3bf6c6ab6c490c9a6f0d8cdfd366aacf5d83193671a8f77cd1af1ff2e9145de92ec43ec87cf4bdc563f6e919fe32861b0e93b118ec37d8035fbb3c.59dd05c5d9a8ae726528783128218f15fe6f2c0c8145eddab112b374fcfe3d79&token_id=&phone_type=1&time=' + t + '&phone_model=xiaomi-22021211rc&keys=qDpotE2bedimK3QGqlyV5ieXXC3EhaPLQ%2BIOJyHnHflCj5w%2F7ESK7FgywMvrgjxbx0GklEFLI4%2BJshgySe633OIRstuktwdiCy3CT%2BfLSpuxBJDIlfXQDaeH3ig1wiB0JsZ601XHiFweGMu4tZfnSpHg3OnoL6nz%2FuurUif2OK4%3D&request_key=' + key + '&signature=' + signature2 + '&app_id=1&ad_version=1';
return body
}
const bodykey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGAe6hKrWLi1zQmjTT1ozbE4QdFeJGNxubxld6GrFGximxfMsMB6BpJhpcTouAqywAFppiKetUBBbXwYsYU1wNr648XVmPmCMCy4rY8vdliFnbMUj086DU6Z+/oXBdWU3/b1G0DN3E9wULRSwcKZT3wj/cCI1vsCm3gj2R5SqkA9Y0CAwEAAQKBgAJH+4CxV0/zBVcLiBCHvSANm0l7HetybTh/j2p0Y1sTXro4ALwAaCTUeqdBjWiLSo9lNwDHFyq8zX90+gNxa7c5EqcWV9FmlVXr8VhfBzcZo1nXeNdXFT7tQ2yah/odtdcx+vRMSGJd1t/5k5bDd9wAvYdIDblMAg+wiKKZ5KcdAkEA1cCakEN4NexkF5tHPRrR6XOY/XHfkqXxEhMqmNbB9U34saTJnLWIHC8IXys6Qmzz30TtzCjuOqKRRy+FMM4TdwJBAJQZFPjsGC+RqcG5UvVMiMPhnwe/bXEehShK86yJK/g/UiKrO87h3aEu5gcJqBygTq3BBBoH2md3pr/W+hUMWBsCQQChfhTIrdDinKi6lRxrdBnn0Ohjg2cwuqK5zzU9p/N+S9x7Ck8wUI53DKm8jUJE8WAG7WLj/oCOWEh+ic6NIwTdAkEAj0X8nhx6AXsgCYRql1klbqtVmL8+95KZK7PnLWG/IfjQUy3pPGoSaZ7fdquG8bq8oyf5+dzjE/oTXcByS+6XRQJAP/5ciy1bL3NhUhsaOVy55MHXnPjdcTX0FaLi+ybXZIfIQ2P4rb19mVq1feMbCXhz+L1rG8oat5lYKfpe8k83ZA==";
function gethtml(u, body, headers) {
var hd = fetch(u, {
headers: headers,
body: body,
method: 'POST',
rejectCoding: true
});
var banner = JSON.parse(hd).data;
var response_key = banner.response_key; //log()
//console.log("response_key=="+response_key)
var keys = banner.keys; //log(keys)
var bodykeyiv = JSON.parse(RSA.decode(keys, bodykey));
//console.log("rsaxxxx=="+JSON.stringify(bodykeyiv))
var key = CryptoJS.enc.Utf8.parse(bodykeyiv.key);
var iv = CryptoJS.enc.Utf8.parse(bodykeyiv.iv);
var html = Decrypt(response_key, key, iv);
//console.log("nskjsnwkjdnejd===qqxxxq="+JSON.stringify(html))
return html
}
var timestamp = new Date().getTime() / 1000;
var t = timestamp.toString().split('.')[0];
var url = input.split("#")[0]; //url
var request_key11 = input.split("#")[1]
var request_key = JSON.stringify({
"keywords": request_key11,
"order_val": "1"
})
//console.log("nskjsnwkjdnejd===qqxxxq=tttt"+request_key)
var request_key2 = Encrypt(request_key);
var body = getbody3(request_key2, t)
var headers = {
'Cache-Control': 'no-cache',
'Version': '2406025',
'PackageName': 'com.uf076bf0c246.qe439f0d5e.m8aaf56b725a.ifeb647346f',
'Ver': '1.9.2',
'Referer': 'https://api.8utdtcq.com',
'X-Customer-Client-Ip': '127.0.0.1',
'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'api.8utdtcq.com',
'Connection': 'Keep-Alive',
'User-Agent': 'okhttp/3.12.0'
}
var html = gethtml(url, body, headers)
//console.log("nskjsnwkjdnejd===="+html)
var list = JSON.parse(html).list; //log(list)
//console.log("nskjsnwkjdnejd===qqqqq="+list)
list.forEach(data => {
d.push({
title: data.vod_name,
desc: data.vod_continu == 0 ? '电影' : '更新至' + data.vod_continu + '集',
content: data.vod_addtime,
img: data.vod_pic,
url: `${data.vod_id}/${data.vod_continu}`,
})
})
setResult(d)
}),
}
-890
View File
@@ -1,890 +0,0 @@
var rule = {
title: '看了么',
host: 'https://www.ksksl.com',
// url:'/show/fyclass/page/fypage.html',
url: '/show/fyclassfyfilter.html',
filterable: 1, //是否启用分类筛选,
filter_url: '{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}/page/fypage{{fl.year}}',
filter: {
"dy": [{
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "中国大陆",
"v": "/area/中国大陆"
}, {
"n": "中国香港",
"v": "/area/中国香港"
}, {
"n": "中国台湾",
"v": "/area/中国台湾"
}, {
"n": "美国",
"v": "/area/美国"
}, {
"n": "日本",
"v": "/area/日本"
}, {
"n": "韩国",
"v": "/area/韩国"
}, {
"n": "英国",
"v": "/area/英国"
}, {
"n": "法国",
"v": "/area/法国"
}]
}, {
"key": "class",
"name": "分类",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "喜剧",
"v": "/class/喜剧"
}, {
"n": "爱情",
"v": "/class/爱情"
}, {
"n": "恐怖",
"v": "/class/恐怖"
}, {
"n": "动作",
"v": "/class/动作"
}, {
"n": "科幻",
"v": "/class/科幻"
}, {
"n": "剧情",
"v": "/class/剧情"
}, {
"n": "警匪",
"v": "/class/警匪"
}, {
"n": "犯罪",
"v": "/class/犯罪"
}, {
"n": "动画",
"v": "/class/动画"
}, {
"n": "奇幻",
"v": "/class/奇幻"
}, {
"n": "武侠",
"v": "/class/武侠"
}, {
"n": "冒险",
"v": "/class/冒险"
}, {
"n": "枪战",
"v": "/class/枪战"
}, {
"n": "恐怖",
"v": "/class/恐怖"
}, {
"n": "悬疑",
"v": "/class/悬疑"
}, {
"n": "惊悚",
"v": "/class/惊悚"
}, {
"n": "经典",
"v": "/class/经典"
}, {
"n": "青春",
"v": "/class/青春"
}, {
"n": "文艺",
"v": "/class/文艺"
}, {
"n": "古装",
"v": "/class/古装"
}, {
"n": "历史",
"v": "/class/历史"
}, {
"n": "运动",
"v": "/class/运动"
}, {
"n": "农村",
"v": "/class/农村"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "2014",
"v": "/year/2014"
}, {
"n": "2013",
"v": "/year/2013"
}, {
"n": "2012",
"v": "/year/2012"
}, {
"n": "2011",
"v": "/year/2011"
}, {
"n": "2010",
"v": "/year/2010"
}, {
"n": "2009",
"v": "/year/2009"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "/by/time"
}, {
"n": "人气",
"v": "/by/hits"
}, {
"n": "评分",
"v": "/by/score"
}]
}],
"tv": [{
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "中国大陆",
"v": "/area/中国大陆"
}, {
"n": "中国香港",
"v": "/area/中国香港"
}, {
"n": "中国台湾",
"v": "/area/中国台湾"
}, {
"n": "美国",
"v": "/area/美国"
}, {
"n": "日本",
"v": "/area/日本"
}, {
"n": "韩国",
"v": "/area/韩国"
}, {
"n": "英国",
"v": "/area/英国"
}, {
"n": "法国",
"v": "/area/法国"
}]
}, {
"key": "class",
"name": "分类",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "古装",
"v": "/class/古装"
}, {
"n": "言情",
"v": "/class/言情"
}, {
"n": "武侠",
"v": "/class/武侠"
}, {
"n": "偶像",
"v": "/class/美国"
}, {
"n": "家庭",
"v": "/class/家庭"
}, {
"n": "喜剧",
"v": "/class/喜剧"
}, {
"n": "战争",
"v": "/class/战争"
}, {
"n": "军旅",
"v": "/class/军旅"
}, {
"n": "谍战",
"v": "/class/谍战"
}, {
"n": "悬疑",
"v": "/class/悬疑"
}, {
"n": "罪案",
"v": "/class/罪案"
}, {
"n": "穿越",
"v": "/class/穿越"
}, {
"n": "宫廷",
"v": "/class/宫廷"
}, {
"n": "历史",
"v": "/class/历史"
}, {
"n": "神话",
"v": "/class/神话"
}, {
"n": "科幻",
"v": "/class/科幻"
}, {
"n": "年代",
"v": "/class/年代"
}, {
"n": "农村",
"v": "/class/农村"
}, {
"n": "商战",
"v": "/class/商战"
}, {
"n": "剧情",
"v": "/class/剧情"
}, {
"n": "奇幻",
"v": "/class/奇幻"
}, {
"n": "网剧",
"v": "/class/网剧"
}, {
"n": "都市",
"v": "/class/都市"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "2014",
"v": "/year/2014"
}, {
"n": "2013",
"v": "/year/2013"
}, {
"n": "2012",
"v": "/year/2012"
}, {
"n": "2011",
"v": "/year/2011"
}, {
"n": "2010",
"v": "/year/2010"
}, {
"n": "2009",
"v": "/year/2009"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "/by/time"
}, {
"n": "人气",
"v": "/by/hits"
}, {
"n": "评分",
"v": "/by/score"
}]
}],
"zy": [{
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "中国大陆",
"v": "/area/中国大陆"
}, {
"n": "中国香港",
"v": "/area/中国香港"
}, {
"n": "中国台湾",
"v": "/area/中国台湾"
}, {
"n": "美国",
"v": "/area/美国"
}, {
"n": "日本",
"v": "/area/日本"
}, {
"n": "韩国",
"v": "/area/韩国"
}, {
"n": "英国",
"v": "/area/英国"
}, {
"n": "法国",
"v": "/area/法国"
}]
}, {
"key": "class",
"name": "分类",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "表演",
"v": "/class/表演"
}, {
"n": "播报",
"v": "/class/播报"
}, {
"n": "访谈",
"v": "/class/访谈"
}, {
"n": "体验",
"v": "/class/体验"
}, {
"n": "养成",
"v": "/class/养成"
}, {
"n": "游戏",
"v": "/class/游戏"
}, {
"n": "亲子",
"v": "/class/亲子"
}, {
"n": "美食",
"v": "/class/美食"
}, {
"n": "情感",
"v": "/class/情感"
}, {
"n": "选秀",
"v": "/class/选秀"
}, {
"n": "益智",
"v": "/class/益智"
}, {
"n": "晚会",
"v": "/class/晚会"
}, {
"n": "音乐",
"v": "/class/音乐"
}, {
"n": "文化",
"v": "/class/文化"
}, {
"n": "喜剧",
"v": "/class/喜剧"
}, {
"n": "曲艺",
"v": "/class/曲艺"
}, {
"n": "职场",
"v": "/class/职场"
}, {
"n": "脱口秀",
"v": "/class/脱口秀"
}, {
"n": "文艺",
"v": "/class/文艺"
}, {
"n": "竞技",
"v": "/class/竞技"
}, {
"n": "潮流文化",
"v": "/class/潮流文化"
}, {
"n": "体育",
"v": "/class/体育"
}, {
"n": "资讯",
"v": "/class/资讯"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "2014",
"v": "/year/2014"
}, {
"n": "2013",
"v": "/year/2013"
}, {
"n": "2012",
"v": "/year/2012"
}, {
"n": "2011",
"v": "/year/2011"
}, {
"n": "2010",
"v": "/year/2010"
}, {
"n": "2009",
"v": "/year/2009"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "/by/time"
}, {
"n": "人气",
"v": "/by/hits"
}, {
"n": "评分",
"v": "/by/score"
}]
}],
"dm": [{
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "中国大陆",
"v": "/area/中国大陆"
}, {
"n": "中国香港",
"v": "/area/中国香港"
}, {
"n": "中国台湾",
"v": "/area/中国台湾"
}, {
"n": "美国",
"v": "/area/美国"
}, {
"n": "日本",
"v": "/area/日本"
}, {
"n": "韩国",
"v": "/area/韩国"
}, {
"n": "英国",
"v": "/area/英国"
}, {
"n": "法国",
"v": "/area/法国"
}]
}, {
"key": "class",
"name": "分类",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "热门",
"v": "/class/热门"
}, {
"n": "搞笑",
"v": "/class/搞笑"
}, {
"n": "番剧",
"v": "/class/番剧"
}, {
"n": "国创",
"v": "/class/国创"
}, {
"n": "大电影",
"v": "/class/大电影"
}, {
"n": "热血",
"v": "/class/热血"
}, {
"n": "催泪",
"v": "/class/催泪"
}, {
"n": "励志",
"v": "/class/励志"
}, {
"n": "机战",
"v": "/class/机战"
}, {
"n": "格斗",
"v": "/class/格斗"
}, {
"n": "恋爱",
"v": "/class/恋爱"
}, {
"n": "科幻",
"v": "/class/科幻"
}, {
"n": "奇幻",
"v": "/class/奇幻"
}, {
"n": "魔幻",
"v": "/class/魔幻"
}, {
"n": "推理",
"v": "/class/推理"
}, {
"n": "校园",
"v": "/class/校园"
}, {
"n": "日常",
"v": "/class/日常"
}, {
"n": "经典",
"v": "/class/经典"
}, {
"n": "历史",
"v": "/class/历史"
}, {
"n": "美食",
"v": "/class/美食"
}, {
"n": "武侠",
"v": "/class/武侠"
}, {
"n": "玄幻",
"v": "/class/玄幻"
}, {
"n": "竞技",
"v": "/class/竞技"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "2014",
"v": "/year/2014"
}, {
"n": "2013",
"v": "/year/2013"
}, {
"n": "2012",
"v": "/year/2012"
}, {
"n": "2011",
"v": "/year/2011"
}, {
"n": "2010",
"v": "/year/2010"
}, {
"n": "2009",
"v": "/year/2009"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "/by/time"
}, {
"n": "人气",
"v": "/by/hits"
}, {
"n": "评分",
"v": "/by/score"
}]
}],
"jl": [{
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "中国大陆",
"v": "/area/中国大陆"
}, {
"n": "日本",
"v": "/area/日本"
}, {
"n": "美国",
"v": "/area/美国"
}, {
"n": "国外",
"v": "/area/国外"
}, {
"n": "其他",
"v": "/area/其他"
}]
}, {
"key": "class",
"name": "分类",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "社会",
"v": "/class/社会"
}, {
"n": "动物",
"v": "/class/动物"
}, {
"n": "文化",
"v": "/class/文化"
}, {
"n": "自然",
"v": "/class/自然"
}, {
"n": "人文",
"v": "/class/人文"
}, {
"n": "军事",
"v": "/class/军事"
}, {
"n": "历史",
"v": "/class/历史"
}, {
"n": "记录",
"v": "/class/记录"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "2014",
"v": "/year/2014"
}, {
"n": "2013",
"v": "/year/2013"
}, {
"n": "2012",
"v": "/year/2012"
}, {
"n": "2011",
"v": "/year/2011"
}, {
"n": "2010",
"v": "/year/2010"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "/by/time"
}, {
"n": "人气",
"v": "/by/hits"
}, {
"n": "评分",
"v": "/by/score"
}]
}]
},
// searchUrl:'/ch.html?wd=**',
searchUrl: '/ch/page/fypage/wd/**.html',
searchable: 2,
headers: {
'User-Agent': 'UC_UA'
},
timeout: 5000,
// class_name: '电影&电视剧&动漫&综艺&纪录片',//静态分类名称拼接
// class_url: 'dy&tv&dm&zy&jl',//静态分类标识拼接
class_parse: '.vi-nav.swiper-wrapper&&li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: `js:
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
var url = html.url;
if (html.encrypt == '1') {
url = unescape(url)
} else if (html.encrypt == '2') {
url = unescape(base64Decode(url))
}
if (/\\.m3u8|\\.mp4/.test(url)) {
input = {
jx: 0,
url: url,
parse: 0
}
} else {
input
}
`,
limit: 5,
推荐: '.dx-top;li;a&&title;a&&data-original;.vod_remarks&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: 'ul.dx-list li;a&&title;a&&data-original;.vod_remarks&&Text;a&&href',
二级: {
"title": "h1--span&&Text;",
"img": ".picHover&&img&&src",
"desc": ";;;.video-info-item:eq(0)&&Text;.item-tags&&Text",
"content": ".vod_content&&Text",
"tabs": ".play-title h2",
"lists": ".play_li.fn-clear:eq(#id) a"
},
搜索: '*',
}
-29
View File
@@ -1,29 +0,0 @@
var rule = {
类型: '影视', //影视|听书|漫画|小说
title: '爱看短剧[盘]',
host: 'https://ys.110t.cn/',
homeUrl: '/api/ajax.php?act=recommend',
homeUrl: '/api/ajax.php?act=Daily',
url: '/api/ajax.php?act=fyclass',
searchUrl: '/api/ajax.php?act=search&name=**',
searchable: 1,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
hikerListCol: "text_1",
hikerClassListCol: "text_1",
timeout: 5000,
class_name: '全部',
class_url: 'yingshilist',
play_parse: true,
lazy: $js.toString(() => {
input = "push://" + input;
}),
double: false,
推荐: '*',
一级: 'json:data;name;;addtime;url',
二级: '*',
搜索: '*',
}
-32
View File
@@ -1,32 +0,0 @@
var rule = {
title: '碟调影视',
host: 'http://www.618648.com',
// homeUrl:'/',
url: '/die-tiao/fyclass-fypage.html',
searchUrl: '/diediaoch/page/fypage/wd/**.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
//class_parse:'.stui-header__menu li.hidden-xs;a&&Text;a&&href;.*/(.*?).html',
class_name: '电影&电视剧&综艺&动漫',
class_url: '1&2&3&4',
play_parse: true,
lazy: '',
limit: 8,
推荐: '.stui-vodlist.clearfix;.stui-vodlist__box;a&&title;a&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.stui-vodlist.clearfix li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
"title": "h1.title&&Text;.stui-content__detail p:eq(2)&&Text",
"img": ".lazyload&&data-original",
"desc": ".video-info-items:eq(-2)&&Text;.video-info-items:eq(-1)&&Text;.video-info-items:eq(-2)&&Text;.stui-content__detail p:eq(7)&&Text;.stui-content__detail p:eq(6)&&Text",
"content": ".stui-content__detail p:eq(9)&&Text",
"tabs": ".nav.nav-tabs li",
"lists": ".tab-pane.fade:eq(#id)&&ul&&li"
},
搜索: '.stui-vodlist.clearfix li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
}
-970
View File
@@ -1,970 +0,0 @@
var rule = {
title: '花子动漫[漫]',
host: 'https://www.huazidm.com',
class_name: 'TV动漫&剧场&特摄',
class_url: '1&2&3',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,
quickSearch: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
url: '/index.php/api/vod#type=fyclassfyfilter&page=fypage',
filterable: 0,
filter_url: '&class={{fl.class}}&year={{fl.year}}&letter={{fl.letter}}&by={{fl.by}}',
filter: {
"1": [{
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "异世界",
"v": "异世界"
}, {
"n": "百合",
"v": "百合"
}, {
"n": "后宫",
"v": "后宫"
}, {
"n": "热血",
"v": "热血"
}, {
"n": "纯爱",
"v": "纯爱"
}, {
"n": "穿越",
"v": "穿越"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "战斗",
"v": "战斗"
}, {
"n": "后宫",
"v": "后宫"
}, {
"n": "搞笑",
"v": "搞笑"
}, {
"n": "日常",
"v": "日常"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "治愈",
"v": "治愈"
}, {
"n": "校园",
"v": "校园"
}, {
"n": "恋爱",
"v": "恋爱"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "推理",
"v": "推理"
}, {
"n": "机战",
"v": "机战"
}, {
"n": "音乐",
"v": "音乐"
}, {
"n": "萝莉",
"v": "萝莉"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "惊悚",
"v": "惊悚"
}, {
"n": "泡面番",
"v": "泡面番"
}, {
"n": "游戏改",
"v": "游戏改"
}, {
"n": "小说改",
"v": "小说改"
}, {
"n": "漫画改",
"v": "漫画改"
}, {
"n": "腐",
"v": "腐"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}, {
"n": "2003",
"v": "2003"
}, {
"n": "2002",
"v": "2002"
}, {
"n": "2001",
"v": "2001"
}, {
"n": "2000",
"v": "2000"
}, {
"n": "1999",
"v": "1999"
}, {
"n": "1998",
"v": "1998"
}, {
"n": "1997",
"v": "1997"
}, {
"n": "1996",
"v": "1996"
}, {
"n": "1995",
"v": "1995"
}, {
"n": "1994",
"v": "1994"
}, {
"n": "1993",
"v": "1993"
}, {
"n": "1992",
"v": "1992"
}, {
"n": "1991",
"v": "1991"
}, {
"n": "1990",
"v": "1990"
}, {
"n": "1989",
"v": "1989"
}, {
"n": "1988",
"v": "1988"
}, {
"n": "1987",
"v": "1987"
}, {
"n": "1986",
"v": "1986"
}, {
"n": "1985",
"v": "1985"
}, {
"n": "1984",
"v": "1984"
}, {
"n": "1983",
"v": "1983"
}, {
"n": "1982",
"v": "1982"
}, {
"n": "1981",
"v": "1981"
}, {
"n": "1980",
"v": "1980"
}]
}, {
"key": "letter",
"name": "字母",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "A",
"v": "A"
}, {
"n": "B",
"v": "B"
}, {
"n": "C",
"v": "C"
}, {
"n": "D",
"v": "D"
}, {
"n": "E",
"v": "E"
}, {
"n": "F",
"v": "F"
}, {
"n": "G",
"v": "G"
}, {
"n": "H",
"v": "H"
}, {
"n": "I",
"v": "I"
}, {
"n": "J",
"v": "J"
}, {
"n": "K",
"v": "K"
}, {
"n": "L",
"v": "L"
}, {
"n": "M",
"v": "M"
}, {
"n": "N",
"v": "N"
}, {
"n": "O",
"v": "O"
}, {
"n": "P",
"v": "P"
}, {
"n": "Q",
"v": "Q"
}, {
"n": "R",
"v": "R"
}, {
"n": "S",
"v": "S"
}, {
"n": "T",
"v": "T"
}, {
"n": "U",
"v": "U"
}, {
"n": "V",
"v": "V"
}, {
"n": "W",
"v": "W"
}, {
"n": "X",
"v": "X"
}, {
"n": "Y",
"v": "Y"
}, {
"n": "Z",
"v": "Z"
}, {
"n": "0-9",
"v": "0-9"
}]
}, {
"key": "by",
"name": "时间",
"value": [{
"n": "按最新",
"v": "time"
}, {
"n": "按最热",
"v": "hits"
}, {
"n": "按评分",
"v": "score"
}]
}],
"2": [{
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "异世界",
"v": "异世界"
}, {
"n": "百合",
"v": "百合"
}, {
"n": "热血",
"v": "热血"
}, {
"n": "穿越",
"v": "穿越"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "战斗",
"v": "战斗"
}, {
"n": "搞笑",
"v": "搞笑"
}, {
"n": "日常",
"v": "日常"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "治愈",
"v": "治愈"
}, {
"n": "校园",
"v": "校园"
}, {
"n": "恋爱",
"v": "恋爱"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "机战",
"v": "机战"
}, {
"n": "音乐",
"v": "音乐"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}, {
"n": "2003",
"v": "2003"
}, {
"n": "2002",
"v": "2002"
}, {
"n": "2001",
"v": "2001"
}, {
"n": "2000",
"v": "2000"
}, {
"n": "1999",
"v": "1999"
}, {
"n": "1998",
"v": "1998"
}, {
"n": "1997",
"v": "1997"
}, {
"n": "1996",
"v": "1996"
}, {
"n": "1995",
"v": "1995"
}, {
"n": "1994",
"v": "1994"
}, {
"n": "1993",
"v": "1993"
}, {
"n": "1992",
"v": "1992"
}, {
"n": "1991",
"v": "1991"
}, {
"n": "1990",
"v": "1990"
}, {
"n": "1989",
"v": "1989"
}, {
"n": "1988",
"v": "1988"
}, {
"n": "1987",
"v": "1987"
}, {
"n": "1986",
"v": "1986"
}, {
"n": "1985",
"v": "1985"
}, {
"n": "1984",
"v": "1984"
}, {
"n": "1983",
"v": "1983"
}, {
"n": "1982",
"v": "1982"
}, {
"n": "1981",
"v": "1981"
}, {
"n": "1980",
"v": "1980"
}]
}, {
"key": "letter",
"name": "字母",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "A",
"v": "A"
}, {
"n": "B",
"v": "B"
}, {
"n": "C",
"v": "C"
}, {
"n": "D",
"v": "D"
}, {
"n": "E",
"v": "E"
}, {
"n": "F",
"v": "F"
}, {
"n": "G",
"v": "G"
}, {
"n": "H",
"v": "H"
}, {
"n": "I",
"v": "I"
}, {
"n": "J",
"v": "J"
}, {
"n": "K",
"v": "K"
}, {
"n": "L",
"v": "L"
}, {
"n": "M",
"v": "M"
}, {
"n": "N",
"v": "N"
}, {
"n": "O",
"v": "O"
}, {
"n": "P",
"v": "P"
}, {
"n": "Q",
"v": "Q"
}, {
"n": "R",
"v": "R"
}, {
"n": "S",
"v": "S"
}, {
"n": "T",
"v": "T"
}, {
"n": "U",
"v": "U"
}, {
"n": "V",
"v": "V"
}, {
"n": "W",
"v": "W"
}, {
"n": "X",
"v": "X"
}, {
"n": "Y",
"v": "Y"
}, {
"n": "Z",
"v": "Z"
}, {
"n": "0-9",
"v": "0-9"
}]
}, {
"key": "by",
"name": "时间",
"value": [{
"n": "按最新",
"v": "time"
}, {
"n": "按最热",
"v": "hits"
}, {
"n": "按评分",
"v": "score"
}]
}],
"3": [{
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "动作",
"v": "动作"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "科幻",
"v": "科幻"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}, {
"n": "2003",
"v": "2003"
}, {
"n": "2002",
"v": "2002"
}, {
"n": "2001",
"v": "2001"
}, {
"n": "2000",
"v": "2000"
}, {
"n": "1999",
"v": "1999"
}, {
"n": "1998",
"v": "1998"
}, {
"n": "1997",
"v": "1997"
}, {
"n": "1996",
"v": "1996"
}, {
"n": "1995",
"v": "1995"
}, {
"n": "1994",
"v": "1994"
}, {
"n": "1993",
"v": "1993"
}, {
"n": "1992",
"v": "1992"
}, {
"n": "1991",
"v": "1991"
}, {
"n": "1990",
"v": "1990"
}, {
"n": "1989",
"v": "1989"
}, {
"n": "1988",
"v": "1988"
}, {
"n": "1987",
"v": "1987"
}, {
"n": "1986",
"v": "1986"
}, {
"n": "1985",
"v": "1985"
}, {
"n": "1984",
"v": "1984"
}, {
"n": "1983",
"v": "1983"
}, {
"n": "1982",
"v": "1982"
}, {
"n": "1981",
"v": "1981"
}, {
"n": "1980",
"v": "1980"
}]
}, {
"key": "letter",
"name": "字母",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "A",
"v": "A"
}, {
"n": "B",
"v": "B"
}, {
"n": "C",
"v": "C"
}, {
"n": "D",
"v": "D"
}, {
"n": "E",
"v": "E"
}, {
"n": "F",
"v": "F"
}, {
"n": "G",
"v": "G"
}, {
"n": "H",
"v": "H"
}, {
"n": "I",
"v": "I"
}, {
"n": "J",
"v": "J"
}, {
"n": "K",
"v": "K"
}, {
"n": "L",
"v": "L"
}, {
"n": "M",
"v": "M"
}, {
"n": "N",
"v": "N"
}, {
"n": "O",
"v": "O"
}, {
"n": "P",
"v": "P"
}, {
"n": "Q",
"v": "Q"
}, {
"n": "R",
"v": "R"
}, {
"n": "S",
"v": "S"
}, {
"n": "T",
"v": "T"
}, {
"n": "U",
"v": "U"
}, {
"n": "V",
"v": "V"
}, {
"n": "W",
"v": "W"
}, {
"n": "X",
"v": "X"
}, {
"n": "Y",
"v": "Y"
}, {
"n": "Z",
"v": "Z"
}, {
"n": "0-9",
"v": "0-9"
}]
}, {
"key": "by",
"name": "时间",
"value": [{
"n": "按最新",
"v": "time"
}, {
"n": "按最热",
"v": "hits"
}, {
"n": "按评分",
"v": "score"
}]
}]
},
filter_def: {},
detailUrl: '/voddetail/fyid.html',
play_parse: true,
sniffer: 1,
is_video: 'obj/tos|bd.xhscdn|/ugc/',
lazy: $js.toString(() => {
input = {
parse: 1,
url: input,
//js:'try{let urls=Array.from(document.querySelectorAll("iframe")).filter(x=>x.src.includes("?url="));if(urls){location.href=urls[0].src}}catch{}document.querySelector("button").click()',
js: 'try{location.href=document.querySelector("#playleft iframe").src}catch{}document.querySelector("button.swal-button--confirm").click()',
parse_extra: '&is_pc=1&custom_regex=' + rule.is_video,
}
}),
limit: 6,
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
一级: $js.toString(() => {
let body = input.split("#")[1];
let t = Math.round(new Date / 1e3).toString();
let key = md5("DS" + t + "DCC147D11943AF75");
let url = input.split("#")[0];
body = body + "&time=" + t + "&key=" + key;
print(body);
fetch_params.body = body;
let html = post(url, fetch_params);
let data = JSON.parse(html);
VODS = data.list.map(function(it) {
it.vod_pic = urljoin2(input.split("/i")[0], it.vod_pic);
return it
});
}),
二级: {
title: '.slide-info-title&&Text;.slide-info:eq(3)--strong&&Text',
img: '.detail-pic&&data-original',
desc: '.fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text',
content: '#height_limit&&Text',
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
tab_text: '.swiper-slide&&Text',
lists: '.anthology-list-box:eq(#id) li',
},
搜索: 'json:list;name;pic;;id',
搜索: $js.toString(() => {
let html = fetch(input);
let list = pdfa(html, ".public-list-box");
VODS = list.map(x => {
return {
vod_name: pdfh(x, ".thumb-txt&&Text"),
vod_pic: pdfh(x, ".lazy&&data-src"),
vod_remarks: pdfh(x, ".public-list-prb&&Text"),
vod_content: pdfh(x, ".thumb-blurb&&Text"),
vod_id: pdfh(x, "a&&href")
}
});
}),
图片替换: '&amp;=>&'
}
-549
View File
@@ -1,549 +0,0 @@
var rule = {
title: "路漫漫",
host: "http://www.lmm36.com",
url: "/vod/show/id/fyclassfyfilter.html",
searchUrl: '/vod/search/page/fypage/wd/**.html',
searchable: 2,
quickSearch: 0,
filterable: 1,
filter: {
"3": [{
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "更早",
"v": "/year/2014-1980"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近更新",
"v": "/by/time"
}, {
"n": "最高人气",
"v": "/by/hits"
}, {
"n": "最高评分",
"v": "/by/score"
}, {
"n": "最多点赞",
"v": "/by/up"
}]
}],
"4": [{
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "更早",
"v": "/year/2014-1980"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近更新",
"v": "/by/time"
}, {
"n": "最高人气",
"v": "/by/hits"
}, {
"n": "最高评分",
"v": "/by/score"
}, {
"n": "最多点赞",
"v": "/by/up"
}]
}],
"5": [{
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "更早",
"v": "/year/2014-1980"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近更新",
"v": "/by/time"
}, {
"n": "最高人气",
"v": "/by/hits"
}, {
"n": "最高评分",
"v": "/by/score"
}, {
"n": "最多点赞",
"v": "/by/up"
}]
}],
"6": [{
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "更早",
"v": "/year/2014-1980"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近更新",
"v": "/by/time"
}, {
"n": "最高人气",
"v": "/by/hits"
}, {
"n": "最高评分",
"v": "/by/score"
}, {
"n": "最多点赞",
"v": "/by/up"
}]
}],
"7": [{
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "更早",
"v": "/year/2014-1980"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近更新",
"v": "/by/time"
}, {
"n": "最高人气",
"v": "/by/hits"
}, {
"n": "最高评分",
"v": "/by/score"
}, {
"n": "最多点赞",
"v": "/by/up"
}]
}],
"8": [{
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "/year/2025"
}, {
"n": "2024",
"v": "/year/2024"
}, {
"n": "2023",
"v": "/year/2023"
}, {
"n": "2022",
"v": "/year/2022"
}, {
"n": "2021",
"v": "/year/2021"
}, {
"n": "2020",
"v": "/year/2020"
}, {
"n": "2019",
"v": "/year/2019"
}, {
"n": "2018",
"v": "/year/2018"
}, {
"n": "2017",
"v": "/year/2017"
}, {
"n": "2016",
"v": "/year/2016"
}, {
"n": "2015",
"v": "/year/2015"
}, {
"n": "更早",
"v": "/year/2014-1980"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近更新",
"v": "/by/time"
}, {
"n": "最高人气",
"v": "/by/hits"
}, {
"n": "最高评分",
"v": "/by/score"
}, {
"n": "最多点赞",
"v": "/by/up"
}]
}]
},
filter_url: "{{fl.排序}}{{fl.年代}}/page/fypage",
filter_def: "",
headers: {
"User-Agent": "MOBILE_UA"
},
timeout: 5000,
class_name: "日本动漫&国产动漫&欧美动漫&日本动画电影&国产动画电影&欧美动画电影",
class_url: "6&7&8&3&4&5",
class_parse: "",
cate_exclude: "",
play_parse: true,
lazy: $js.toString(() => {
function getDAesString(token) {
eval(getCryptoJS());
var key = CryptoJS.enc.Utf8.parse("ejjooopppqqqrwww");
var iv = CryptoJS.enc.Utf8.parse("1348987635684651");
var token = CryptoJS.AES.decrypt(token, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
});
return token.toString(CryptoJS.enc.Utf8);
}
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
var url = html.url;
var from = html.from;
if (html.encrypt == "1") {
url = unescape(url);
} else if (html.encrypt == "2") {
url = unescape(base64Decode(url));
}
if (/\.mp4|\.m3u8|\.flv/.test(url)) {
input = {
parse: 0,
url: url.split("&")[0],
js: ''
};
} else {
var jsh = request(HOST + "/static/player/" + from + ".js", {
headers: {
Referer: input
},
}).match(/\.src\s*=\s*(.*?);/)[1];
//log(MY_HOME);
if (/type=/.test(jsh)) {
jsh = jsh
.replace(/[\+\s']/g, "")
.replace(/MacPlayer.Parse/, "")
.replace(/MacPlayer.PlayUrl/, url)
.replace(/window.location.href/, input);
var playht = fetch(jsh, {
headers: {
Referer: HOST
}
});
} else {
jsh = jsh
.replace(/[\+\s']/g, "")
.replace(/MacPlayer.Parse/, "")
.replace(/MacPlayer.PlayUrl/, url)
.replace(/window.location.href/, input);
jsh = JSON.parse(
fetch(jsh, {
headers: {
Referer: HOST
},
onlyHeaders: true
})
).url;
var playht = fetch(jsh, {
headers: {
Referer: HOST
}
});
}
var postapi = jsh.match(/^(.*?\/\/.*?\/.*?\/)/)[1];
var posturl = postapi + playht.match(/post\("(.*?)"/)[1];
if (/act\s*=/.test(playht)) {
var vid = playht.match(/vid\s*=\s*"(.*?)"/)[1];
var t = playht.match(/var\s*t\s*=\s*"(.*?)"/)[1];
var token = playht.match(/token\s*=\s*"(.*?)"/)[1];
var act = playht.match(/act\s*=\s*"(.*?)"/)[1];
var play = playht.match(/play\s*=\s*"(.*?)"/)[1];
token = getDAesString(token);
var data = JSON.parse(
post(posturl, {
headers: {
Referer: HOST
},
body: {
vid: vid,
t: t,
token: token,
act: act,
play: play,
},
timeout: 5000
})
);
input = {
parse: 0,
url: data.url,
js: ''
};
} else {
var key = "";
playht.match(/var (\w+)="(.*?)";/g).forEach(function(list) {
key += list.match(/"(.*?)"/)[1];
});
const bodys = JSON.parse(
playht
.match(/post\(.*?,(.*?),\n/)[1]
.replace(/"keyyy"\s*:\s*''.*?''/, '"keyyy" : "' + key + '"')
);
var data = JSON.parse(
post(posturl, {
headers: {
Referer: HOST
},
body: bodys
})
);
if (data.ext == "xgplayer") {
var dataurl =
"https://yun.366day.site/mp4hls/xgplayer.php?vid=" + data.url;
var video = fetch(dataurl, {
headers: {
Referer: jsh
}
}).match(
/"url": "(.*?)"/
)[1];
input = {
parse: 0,
url: video,
js: ''
};
} else if (data.ext == "hls" || data.ext == "hls_list") {
input = {
parse: 0,
url: decodeURIComponent(data.url),
js: ''
};
} else {
input = {
parse: 0,
url: data.url,
js: ''
};
}
}
}
}),
double: false,
推荐: "*",
一级: ".video-img-box;h6.title&&Text;.lazyload&&data-src;.label&&Text;a&&href",
二级: {
title: ".page-title&&Text;.tag-link&&Text",
img: ".module-item-pic&&.lazyload&&src",
desc: ".video-info-items:eq(3)&&Text;.video-info-items:eq(2)&&Text;;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text",
content: ".video-info-content&&Text",
tabs: ".module-tab-item.tab-item",
lists: ".module-player-list:eq(#id) a",
tab_text: "body&&Text",
list_text: "body&&Text",
list_url: "a&&href"
},
detailUrl: "",
搜索: "*"
}
-378
View File
@@ -1,378 +0,0 @@
globalThis.getRandomItem = function(items) {
return items[Math.random() * items.length | 0];
}
var rule = {
title: '采集之王[合]',
author: '道长',
version: '20240706 beta17',
update_info: ``.trim(),
host: '',
homeTid: '',
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
searchUrl: '/api.php/provide/vod/?wd=**&pg=#TruePage##page=fypage',
classUrl: '/api.php/provide/vod/',
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyfilter',
filter_url: '{{fl.类型}}',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000,
limit: 20,
search_limit: 10,
searchable: 1,
quickSearch: 0,
filterable: 1,
play_parse: true,
parse_url: '',
search_match: false,
search_pic: true,
预处理: $js.toString(() => {
function getClasses(item) {
let classes = [];
if (item.class_name && item.class_url) {
if (!/&|电影|电视剧|综艺|动漫[\u4E00-\u9FA5]+/.test(item.class_name)) {
try {
item.class_name = ungzip(item.class_name)
} catch (e) {
log(`不识别的class_name导致gzip解码失败:${e}`)
return classes
}
}
let names = item.class_name.split('&');
let urls = item.class_url.split('&');
let cnt = Math.min(names.length, urls.length);
for (let i = 0; i < cnt; i++) {
classes.push({
'type_id': urls[i],
'type_name': names[i]
});
}
}
return classes
}
if (typeof(batchFetch) === 'function') {
rule.search_limit = 16;
log('当前程序支持批量请求[batchFetch],搜索限制已设置为16');
}
let _url = rule.params;
log(`传入参数:${_url}`);
if (_url && typeof(_url) === 'string' && /^(http|file)/.test(_url)) {
if (_url.includes('$')) {
let _url_params = _url.split('$');
_url = _url_params[0];
rule.search_match = !!(_url_params[1]);
if (_url_params.length > 2) {
rule.search_pic = !!(_url_params[2]);
}
}
let html = request(_url);
let json = JSON.parse(html);
let _classes = [];
rule.filter = {};
rule.filter_def = {};
json.forEach(it => {
let _obj = {
type_name: it.name,
type_id: it.url,
parse_url: it.parse_url || '',
searchable: it.searchable !== 0,
api: it.api || '',
cate_exclude: it.cate_exclude || '',
cate_excludes: it.cate_excludes || [],
};
_classes.push(_obj);
try {
let json1 = [];
if (it.class_name && it.class_url) {
json1 = getClasses(it);
} else {
json1 = JSON.parse(request(urljoin(_obj.type_id, _obj.api || rule.classUrl))).class;
}
if (_obj.cate_excludes && Array.isArray(_obj.cate_excludes) && _obj.cate_excludes.length > 0) {
json1 = json1.filter(cl => !_obj.cate_excludes.includes(cl.type_name));
} else if (_obj.cate_exclude) {
json1 = json1.filter(cl => !new RegExp(_obj.cate_exclude, 'i').test(cl.type_name));
}
rule.filter[_obj.type_id] = [{
"key": "类型",
"name": "类型",
"value": json1.map(i => {
return {
"n": i.type_name,
'v': i.type_id
}
})
}];
if (json1.length > 0) {
rule.filter_def[it.url] = {
"类型": json1[0].type_id
};
}
} catch (e) {
rule.filter[it.url] = [{
"key": "类型",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}]
}];
}
});
rule.classes = _classes;
}
}),
class_parse: $js.toString(() => {
input = rule.classes;
}),
推荐: $js.toString(() => {
VODS = [];
if (rule.classes) {
let randomClass = getRandomItem(rule.classes);
let _url = urljoin(randomClass.type_id, input);
if (randomClass.api) {
_url = _url.replace('/api.php/provide/vod/', randomClass.api)
}
try {
let html = request(_url, {
timeout: rule.timeout
});
let json = JSON.parse(html);
VODS = json.list;
VODS.forEach(it => {
it.vod_id = randomClass.type_id + '$' + it.vod_id;
it.vod_remarks = it.vod_remarks + '|' + randomClass.type_name;
});
} catch (e) {}
}
}),
一级: $js.toString(() => {
VODS = [];
if (rule.classes) {
let _url = urljoin(MY_CATE, input);
let current_vod = rule.classes.find(item => item.type_id === MY_CATE);
if (current_vod && current_vod.api) {
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
}
let html = request(_url);
let json = JSON.parse(html);
VODS = json.list;
VODS.forEach(it => {
it.vod_id = MY_CATE + '$' + it.vod_id
});
}
}),
二级: $js.toString(() => {
VOD = {};
if (orId === 'update_info') {
VOD = {
vod_content: rule.update_info.trim(),
vod_name: '更新日志',
type_name: '更新日志',
vod_pic: 'https://resource-cdn.tuxiaobei.com/video/FtWhs2mewX_7nEuE51_k6zvg6awl.png',
vod_remarks: `版本:${rule.version}`,
vod_play_from: '道长在线',
vod_play_url: '随机小视频$http://api.yujn.cn/api/zzxjj.php',
};
} else {
if (rule.classes) {
let _url = urljoin(fyclass, input);
let current_vod = rule.classes.find(item => item.type_id === fyclass);
if (current_vod && current_vod.api) {
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
}
let html = request(_url);
let json = JSON.parse(html);
let data = json.list;
VOD = data[0];
if (current_vod && current_vod.type_name) {
VOD.vod_play_from = VOD.vod_play_from.split('$$$').map(it => current_vod.type_name + '|' + it).join('$$$')
}
}
}
}),
搜索: $js.toString(() => {
VODS = [];
if (rule.classes) {
let canSearch = rule.classes.filter(it => it.searchable);
let page = Number(MY_PAGE);
page = (MY_PAGE - 1) % Math.ceil(canSearch.length / rule.search_limit) + 1;
let truePage = Math.ceil(MY_PAGE / Math.ceil(canSearch.length / rule.search_limit));
if (rule.search_limit) {
let start = (page - 1) * rule.search_limit;
let end = page * rule.search_limit;
let t1 = new Date().getTime();
let searchMode = typeof(batchFetch) === 'function' ? '批量' : '单个';
log('start:' + start);
log('end:' + end);
log('搜索模式:' + searchMode);
log('精准搜索:' + rule.search_match);
log('强制获取图片:' + rule.search_pic);
if (start < canSearch.length) {
let search_classes = canSearch.slice(start, end);
let urls = [];
search_classes.forEach(it => {
let _url = urljoin(it.type_id, input);
if (it.api) {
_url = _url.replace('/api.php/provide/vod/', it.api)
}
_url = _url.replace("#TruePage#", "" + truePage);
urls.push(_url);
});
let results_list = [];
let results = [];
if (typeof(batchFetch) === 'function') {
let reqUrls = urls.map(it => {
return {
url: it,
options: {
timeout: rule.timeout
}
}
});
let rets = batchFetch(reqUrls);
let detailUrls = [];
let detailUrlCount = 0;
rets.forEach((ret, idx) => {
let it = search_classes[idx];
if (ret) {
try {
let json = JSON.parse(ret);
let data = json.list;
data.forEach(i => {
i.site_name = it.type_name;
i.vod_id = it.type_id + '$' + i.vod_id;
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
});
if (rule.search_match) {
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
}
if (data.length > 0) {
if (rule.search_pic && !data[0].vod_pic) {
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
detailUrls.push(detailUrl);
results_list.push({
data: data,
has_pic: false,
detailUrlCount: detailUrlCount
});
detailUrlCount++;
} else {
results_list.push({
data: data,
has_pic: true
});
}
}
} catch (e) {
log(`请求:${it.type_id}发生错误:${e.message}`)
}
}
});
let reqUrls2 = detailUrls.map(it => {
return {
url: it,
options: {
timeout: rule.timeout
}
}
});
let rets2 = reqUrls2.length > 0 ? batchFetch(reqUrls2) : [];
for (let k = 0; k < results_list.length; k++) {
let result_data = results_list[k].data;
if (!results_list[k].has_pic) {
try {
let detailJson = JSON.parse(rets2[results_list[k].detailUrlCount]);
log('二级数据列表元素数:' + detailJson.list.length);
result_data.forEach((d, _seq) => {
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
if (detailVodPic) {
Object.assign(d, {
vod_pic: detailVodPic.vod_pic
});
}
});
} catch (e) {
log(`强制获取网站${result_data[0].site_name}的搜索图片失败:${e.message}`);
}
}
results = results.concat(result_data);
}
} else {
urls.forEach((_url, idx) => {
let it = search_classes[idx];
try {
let html = request(_url);
let json = JSON.parse(html);
let data = json.list;
data.forEach(i => {
i.vod_id = it.type_id + '$' + i.vod_id;
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
});
if (rule.search_match) {
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
}
if (data.length > 0) {
if (rule.search_pic && !data[0].vod_pic) {
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
try {
let detailJson = JSON.parse(request(detailUrl));
log('二级数据列表元素数:' + detailJson.list.length);
data.forEach((d, _seq) => {
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
if (detailVodPic) {
Object.assign(d, {
vod_pic: detailVodPic.vod_pic
});
}
});
} catch (e) {
log(`强制获取网站${it.type_id}的搜索图片失败:${e.message}`);
}
}
results = results.concat(data);
}
results = results.concat(data);
} catch (e) {
log(`请求:${it.type_id}发生错误:${e.message}`)
}
});
}
VODS = results;
let t2 = new Date().getTime();
log(`${searchMode}搜索:${urls.length}个站耗时:${(Number(t2) - Number(t1))}ms`)
}
}
}
}),
lazy: $js.toString(() => {
let parse_url = '';
if (flag && flag.includes('|')) {
let type_name = flag.split('|')[0];
let current_vod = rule.classes.find(item => item.type_name === type_name);
if (current_vod && current_vod.parse_url) {
parse_url = current_vod.parse_url
}
}
if (/\.(m3u8|mp4)/.test(input)) {
input = {
parse: 0,
url: input
}
} else {
if (parse_url.startsWith('json:')) {
let purl = parse_url.replace('json:', '') + input;
let html = request(purl);
input = {
parse: 0,
url: JSON.parse(html).url
}
} else {
input = parse_url + input;
}
}
}),
}
-598
View File
@@ -1,598 +0,0 @@
// 网址发布页 https://molicp.com
muban.首图.二级.title = '.text-fff--font&&Text;.data--span:eq(0)&&Text';
muban.首图.二级.desc = '#rating&&Text;;;.data--span:eq(1)&&Text;.data--span:eq(2)&&Text';
muban.首图.二级.content = '.desc&&Text';
var rule = {
title: 'HDmoli',
模板: '首图',
host: 'https://www.hdmoli.pro',
// url:'/mlist/fyclass-fypage.html',
url: '/search.php?page=fypage&searchtype=5&tid=fyfilter',
filterable: 1, //是否启用分类筛选,
filter_url: '{{fl.cateId}}&jq={{fl.class}}&area={{fl.area}}&year={{fl.year}}&state={{fl.state}}&order={{fl.by}}',
filter: {
"1": [{
"key": "cateId",
"name": "类型",
"value": [{
"n": "全部",
"v": "1"
}, {
"n": "动作",
"v": "5"
}, {
"n": "爱情",
"v": "6"
}, {
"n": "科幻",
"v": "7"
}, {
"n": "恐怖",
"v": "8"
}, {
"n": "战争",
"v": "9"
}, {
"n": "喜剧",
"v": "10"
}, {
"n": "纪录片",
"v": "11"
}, {
"n": "剧情",
"v": "12"
}, {
"n": "犯罪",
"v": "30"
}, {
"n": "动画",
"v": "32"
}]
}, {
"key": "class",
"name": "剧情",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "战争",
"v": "战争"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "家庭",
"v": "家庭"
}, {
"n": "励志",
"v": "励志"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "历史",
"v": "历史"
}, {
"n": "惊悚",
"v": "惊悚"
}, {
"n": "音乐",
"v": "音乐"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "犯罪",
"v": "犯罪"
}, {
"n": "运动",
"v": "运动"
}, {
"n": "喜剧",
"v": "喜剧"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "美国",
"v": "美国"
}, {
"n": "韩国",
"v": "韩国"
}, {
"n": "英国",
"v": "英国"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "泰国",
"v": "泰国"
}, {
"n": "中国",
"v": "中国"
}, {
"n": "其他",
"v": "其他"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "more",
"v": "more"
}]
}, {
"key": "state",
"name": "状态",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "完结",
"v": "w"
}, {
"n": "连载中",
"v": "l"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "time"
}, {
"n": "评分",
"v": "douban"
}]
}],
"2": [{
"key": "cateId",
"name": "类型",
"value": [{
"n": "全部",
"v": "2"
}, {
"n": "美剧",
"v": "15"
}, {
"n": "韩剧",
"v": "16"
}, {
"n": "日剧",
"v": "13"
}, {
"n": "英剧",
"v": "34"
}, {
"n": "中国",
"v": "14"
}, {
"n": "泰剧",
"v": "29"
}, {
"n": "综艺",
"v": "39"
}, {
"n": "其他",
"v": "38"
}]
}, {
"key": "class",
"name": "剧情",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "战争",
"v": "战争"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "家庭",
"v": "家庭"
}, {
"n": "励志",
"v": "励志"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "历史",
"v": "历史"
}, {
"n": "惊悚",
"v": "惊悚"
}, {
"n": "音乐",
"v": "音乐"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "犯罪",
"v": "犯罪"
}, {
"n": "运动",
"v": "运动"
}, {
"n": "喜剧",
"v": "喜剧"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "美国",
"v": "美国"
}, {
"n": "韩国",
"v": "韩国"
}, {
"n": "英国",
"v": "英国"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "泰国",
"v": "泰国"
}, {
"n": "中国",
"v": "中国"
}, {
"n": "其他",
"v": "其他"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "more",
"v": "more"
}]
}, {
"key": "state",
"name": "状态",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "完结",
"v": "w"
}, {
"n": "连载中",
"v": "l"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "time"
}, {
"n": "评分",
"v": "douban"
}]
}],
"41": [{
"key": "cateId",
"name": "类型",
"value": [{
"n": "全部",
"v": "41"
}, {
"n": "日本",
"v": "42"
}, {
"n": "其他",
"v": "43"
}]
}, {
"key": "class",
"name": "剧情",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "战争",
"v": "战争"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "家庭",
"v": "家庭"
}, {
"n": "励志",
"v": "励志"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "历史",
"v": "历史"
}, {
"n": "惊悚",
"v": "惊悚"
}, {
"n": "音乐",
"v": "音乐"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "犯罪",
"v": "犯罪"
}, {
"n": "运动",
"v": "运动"
}, {
"n": "喜剧",
"v": "喜剧"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "美国",
"v": "美国"
}, {
"n": "韩国",
"v": "韩国"
}, {
"n": "英国",
"v": "英国"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "泰国",
"v": "泰国"
}, {
"n": "中国",
"v": "中国"
}, {
"n": "其他",
"v": "其他"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "more",
"v": "more"
}]
}, {
"key": "state",
"name": "状态",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "完结",
"v": "w"
}, {
"n": "连载中",
"v": "l"
}]
}, {
"key": "by",
"name": "排序",
"value": [{
"n": "时间",
"v": "time"
}, {
"n": "评分",
"v": "douban"
}]
}]
},
filter_def: {
1: {
cateId: '1',
by: 'time'
},
2: {
cateId: '2',
by: 'time'
},
41: {
cateId: '41',
by: 'time'
}
},
searchUrl: '/search.php?page=fypage&searchword=**&searchtype=',
class_parse: '.myui-header__menu li;a&&Text;a&&href;.*/index(\\d+).html',
}
File diff suppressed because it is too large. Load diff
-97
View File
@@ -1,97 +0,0 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
sys.path.append('..')
from base.spider import Spider
class Spider(Spider):
def init(self, extend=""):
'''
example:
{
"key": "py_appV2",
"name": "xxx",
"type": 3,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"api": "./py/APPV2.py",
"ext": "http://cmsyt.lyyytv.cn"
}
'''
self.host=extend
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
headers = {
'User-Agent': 'okhttp/4.12.0',
}
def homeContent(self, filter):
data = self.fetch(f"{self.host}//api.php/app/nav?token=",headers=self.headers).json()
keys = ["class", "area", "lang", "year", "letter", "by", "sort"]
filters = {}
classes = []
for item in data['list']:
has_non_empty_field = False
jsontype_extend = item["type_extend"]
classes.append({"type_name": item["type_name"], "type_id": item["type_id"]})
for key in keys:
if key in jsontype_extend and jsontype_extend[key].strip() != "":
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["type_id"])] = []
for dkey in jsontype_extend:
if dkey in keys and jsontype_extend[dkey].strip() != "":
values = jsontype_extend[dkey].split(",")
value_array = [{"n": value.strip(), "v": value.strip()} for value in values if
value.strip() != ""]
filters[str(item["type_id"])].append({"key": dkey, "name": dkey, "value": value_array})
result = {}
result["class"] = classes
result["filters"] = filters
return result
def homeVideoContent(self):
data=self.fetch(f"{self.host}/api.php/app/index_video?token=",headers=self.headers).json()
videos=[]
for item in data['list']:videos.extend(item['vlist'])
return {'list':videos}
def categoryContent(self, tid, pg, filter, extend):
params = {'tid':tid,'class':extend.get('class',''),'area':extend.get('area',''),'lang':extend.get('lang',''),'year':extend.get('year',''),'limit':'18','pg':pg}
data=self.fetch(f"{self.host}/api.php/app/video",params=params,headers=self.headers).json()
return data
def detailContent(self, ids):
data=self.fetch(f"{self.host}/api.php/app/video_detail?id={ids[0]}",headers=self.headers).json()
return {'list':[data['data']]}
def searchContent(self, key, quick, pg="1"):
data=self.fetch(f"{self.host}/api.php/app/search?text={key}&pg={pg}",headers=self.headers).json()
videos=data['list']
for item in data['list']:
item.pop('type', None)
return {'list':videos,'page':pg}
def playerContent(self, flag, id, vipFlags):
return {'jx':1,'playUrl':'','parse': 1, 'url': id, 'header': self.headers}
def localProxy(self, param):
pass
-222
View File
@@ -1,222 +0,0 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import re
import sys
from Crypto.Hash import MD5
sys.path.append('..')
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from urllib.parse import quote, urlparse
from base64 import b64encode, b64decode
import json
import time
from base.spider import Spider
class Spider(Spider):
def init(self, extend=""):
self.host = self.gethost()
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def action(self, action):
pass
def destroy(self):
pass
def homeContent(self, filter):
data = self.getdata("/api.php/getappapi.index/initV119")
dy = {"class": "类型", "area": "地区", "lang": "语言", "year": "年份", "letter": "字母", "by": "排序",
"sort": "排序"}
filters = {}
classes = []
json_data = data["type_list"]
homedata = data["banner_list"][8:]
for item in json_data:
if item["type_name"] == "全部":
continue
has_non_empty_field = False
jsontype_extend = json.loads(item["type_extend"])
homedata.extend(item["recommend_list"])
jsontype_extend["sort"] = "最新,最热,最赞"
classes.append({"type_name": item["type_name"], "type_id": item["type_id"]})
for key in dy:
if key in jsontype_extend and jsontype_extend[key].strip() != "":
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["type_id"])] = []
for dkey in jsontype_extend:
if dkey in dy and jsontype_extend[dkey].strip() != "":
values = jsontype_extend[dkey].split(",")
value_array = [{"n": value.strip(), "v": value.strip()} for value in values if
value.strip() != ""]
filters[str(item["type_id"])].append({"key": dkey, "name": dy[dkey], "value": value_array})
result = {}
result["class"] = classes
result["filters"] = filters
result["list"] = homedata[1:]
return result
def homeVideoContent(self):
pass
def categoryContent(self, tid, pg, filter, extend):
body = {"area": extend.get('area', '全部'), "year": extend.get('year', '全部'), "type_id": tid, "page": pg,
"sort": extend.get('sort', '最新'), "lang": extend.get('lang', '全部'),
"class": extend.get('class', '全部')}
result = {}
data = self.getdata("/api.php/getappapi.index/typeFilterVodList", body)
result["list"] = data["recommend_list"]
result["page"] = pg
result["pagecount"] = 9999
result["limit"] = 90
result["total"] = 999999
return result
def detailContent(self, ids):
body = f"vod_id={ids[0]}"
data = self.getdata("/api.php/getappapi.index/vodDetail", body)
vod = data["vod"]
play = []
names = []
for itt in data["vod_play_list"]:
a = []
names.append(itt["player_info"]["show"])
for it in itt['urls']:
it['user_agent']=itt["player_info"].get("user_agent")
it["parse"]=itt["player_info"].get("parse")
a.append(f"{it['name']}${self.e64(json.dumps(it))}")
play.append("#".join(a))
vod["vod_play_from"] = "$$$".join(names)
vod["vod_play_url"] = "$$$".join(play)
result = {"list": [vod]}
return result
def searchContent(self, key, quick, pg="1"):
body = f"keywords={key}&type_id=0&page={pg}"
data = self.getdata("/api.php/getappapi.index/searchList", body)
result = {"list": data["search_list"], "page": pg}
return result
def playerContent(self, flag, id, vipFlags):
ids = json.loads(self.d64(id))
h = {"User-Agent": (ids['user_agent'] or "okhttp/3.14.9")}
try:
if re.search(r'url=', ids['parse_api_url']):
data = self.fetch(ids['parse_api_url'], headers=h, timeout=10).json()
url = data.get('url') or data['data'].get('url')
else:
body = f"parse_api={ids.get('parse') or ids['parse_api_url'].replace(ids['url'], '')}&url={quote(self.aes(ids['url'], True))}&token={ids.get('token')}"
b = self.getdata("/api.php/getappapi.index/vodParse", body)['json']
url = json.loads(b)['url']
if 'error' in url: raise ValueError(f"解析失败: {url}")
p = 0
except Exception as e:
print('错误信息:', e)
url, p = ids['url'], 1
if re.search(r'\.jpg|\.png|\.jpeg', url):
url = self.Mproxy(url)
result = {}
result["parse"] = p
result["url"] = url
result["header"] = h
return result
def localProxy(self, param):
return self.Mlocal(param)
def gethost(self):
headers = {
'User-Agent': 'okhttp/3.14.9'
}
host = self.fetch('https://jingyu-1312635929.cos.ap-nanjing.myqcloud.com/1.json',
headers=headers).text.strip()
return host
phend = {
'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 11; M2012K10C Build/RP1A.200720.011)',
'allowCrossProtocolRedirects': 'true'
}
def aes(self, operation, text):
key = "4d83b87c4c5ea111".encode("utf-8")
iv = key
if operation == "encrypt":
cipher = AES.new(key, AES.MODE_CBC, iv)
ct_bytes = cipher.encrypt(pad(text.encode("utf-8"), AES.block_size))
ct = b64encode(ct_bytes).decode("utf-8")
return ct
elif operation == "decrypt":
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(b64decode(text)), AES.block_size)
return pt.decode("utf-8")
def header(self):
t = str(int(time.time()))
header = {"Referer":self.host,
"User-Agent": "okhttp/3.14.9", "app-version-code": "300", "app-ui-mode": "light",
"app-api-verify-time": t, "app-user-device-id": self.md5(t),
"app-api-verify-sign": self.aes("encrypt", t),
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}
return header
def getdata(self, path, data=None):
vdata = self.post(f"{self.host}{path}", headers=self.header(), data=data, timeout=10).json()['data']
data1 = self.aes("decrypt", vdata)
return json.loads(data1)
def Mproxy(self, url):
return self.getProxyUrl() + "&url=" + b64encode(url.encode('utf-8')).decode('utf-8') + "&type=m3u8"
def Mlocal(self, param,header=None):
url = self.d64(param["url"])
ydata = self.fetch(url, headers=header, allow_redirects=False)
data = ydata.content.decode('utf-8')
if ydata.headers.get('Location'):
url = ydata.headers['Location']
data = self.fetch(url, headers=header).content.decode('utf-8')
parsed_url = urlparse(url)
durl = parsed_url.scheme + "://" + parsed_url.netloc
lines = data.strip().split('\n')
for index, string in enumerate(lines):
if '#EXT' not in string and 'http' not in string:
last_slash_index = string.rfind('/')
lpath = string[:last_slash_index + 1]
lines[index] = durl + ('' if lpath.startswith('/') else '/') + lpath
data = '\n'.join(lines)
return [200, "application/vnd.apple.mpegur", data]
def e64(self, text):
try:
text_bytes = text.encode('utf-8')
encoded_bytes = b64encode(text_bytes)
return encoded_bytes.decode('utf-8')
except Exception as e:
print(f"Base64编码错误: {str(e)}")
return ""
def d64(self,encoded_text):
try:
encoded_bytes = encoded_text.encode('utf-8')
decoded_bytes = b64decode(encoded_bytes)
return decoded_bytes.decode('utf-8')
except Exception as e:
print(f"Base64解码错误: {str(e)}")
return ""
def md5(self, text):
h = MD5.new()
h.update(text.encode('utf-8'))
return h.hexdigest()
-15
View File
@@ -1,15 +0,0 @@
{
"数组": "card card-sm card-link&&</div>",
"图片": "src=\"&&\"",
"标题": "mb-0 card-title text-truncate\">&&<",
"副标题": "start-0 text-red-fg\">&&</span>",
"链接": "href=\"&&\"",
"简介": "剧情简介:&&\"",
"线路标题": "磁力+>&&<",
"播放数组": "download-list&&</tbody>",
"播放列表": "<tr&&</tr>",
"播放标题": "text-muted\">&&</td>[不包含:网盘下载]",
"跳转播放链接": "href=\"&&\"",
"分类url": "https://v.xlys.ltd.ua/s/all/{catePg}?type={cateId};;d0",
"分类": "电影$0#电视剧$1"
}
-10
View File
@@ -1,10 +0,0 @@
{
"请求头": "手机",
"编码": "UTF-8",
"简介": "简&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;介:&&</p>",
"线路数组": "javascript:;\">&&</a>",
"数组": "<li>&&</li>",
"图片": "data-echo=\"&&\"",
"分类url": "https://vip.wwgz.cn:5200/vod-list-id-{cateId}-pg-{catePg}-order--by-time-class-0-year-{year}-letter--area-{area}-lang-.html",
"分类": "电影$1#电视剧$2#动漫$4#综艺$3#短剧$26"
}
-18
View File
@@ -1,18 +0,0 @@
{
"请求头": "User-Agent$MOBILE_UA",
"编码": "UTF-8",
"主页url": "https://dora.xiaoxinbk.com/",
"数组": "class=\"card-img-bili\"&&</a>",
"标题": "alt=\"&&\"",
"图片": "data-url=\"&&\"",
"链接": "href=\"&&\"",
"线路标题": "mt-0\">&&</h3>",
"播放数组": "class=\"card-body button-list\"&&</div>",
"播放列表": "<a&&a>",
"播放链接": "href=\"&&\"",
"播放标题": ">&&</",
"分类url": "https://www.dora-video.cn/search/sy/?niandai={year}&cat={class}&tag={cateId}&gaojijiansuo=1&zhuangtai={by}",
"分类": "全部$0#动画$20#剧场版$21#MV$22#预告片$23#直播$27#同人$25#民间$26#目录$28#中篇$30",
"剧情": "哆啦A梦新番$1#新哆啦A梦 台湾配音$2#哆啦A梦剧场版$3#最新预告片$6#剧场版集合$7#哆啦A梦MV$4#哆啦A梦七小子集合$11#生日特别篇$19#哆啦A梦生日特别篇$12#哆啦美生日特别篇$14#大雄生日特别篇$13#静香生日特别篇$15#胖虎生日特别篇$16#小夫生日特别篇$17#24小时直播$24#哆啦A梦中篇附映$29#哆啦A梦大山版 - 哆啦a梦1979版国语旧版 - 旧版$31#哆啦A梦大山修复&补档区$32#藤子·F·不二雄【其它动画】$33",
"排序": "全部$0#完结$2#连载$1#待定$-1"
}
-4
View File
@@ -1,4 +0,0 @@
{
"分类": "短剧$duanju#电影$dianying#电视剧$dianshiju#动漫$dongman#综艺$zongyi",
"分类url": "https://www.duanjuwang.cc/vodtype/{cateId}/page/{catePg}.html"
}
-81
View File
@@ -1,81 +0,0 @@
{
"规则名": "短剧屋",
"规则作者": "",
"请求头参数": "手机",
"网页编码格式": "UTF-8",
"图片是否需要代理": "0",
"是否开启获取首页数据": "1",
"首页推荐链接": "http://www.metaysw.com",
"首页列表数组规则": "body&&.vod-vodlist",
"首页片单列表数组规则": "li",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
"分类链接": "http://www.metaysw.com/type/{cateId}-{catePg}.html",
"分类名称": "短剧",
"分类名称替换词": "lianxuju",
"筛选数据": {},
//"筛选数据": "ext",
//{cateId}
"筛选子分类名称": "",
"筛选子分类替换词": "",
//{class}
"筛选类型名称": "",
"筛选类型替换词": "*",
//{area}
"筛选地区名称": "",
"筛选地区替换词": "*",
//{year}
"筛选年份名称": "",
"筛选年份替换词": "*",
//{lang}
"筛选语言名称": "",
"筛选语言替换词": "*",
//{by}
"筛选排序名称": "时间&人气&评分",
"筛选排序替换词": "time&hits&score",
"分类截取模式": "1",
"分类列表数组规则": ".vod-vodlist&&li",
"分类片单是否Jsoup写法": "1",
"分类片单标题": ".vod-vodlist__title&&Text",
"分类片单链接": "a&&href",
"分类片单图片": ".lazyload&&data-original",
"分类片单副标题": ".pic-text&&Text",
"分类片单链接加前缀": "http://www.metaysw.com",
"分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$手机",
"搜索链接": "http://www.metaysw.com/search/page/{SearchPg}/wd/{wd}.html",
"POST请求数据": "",
"搜索截取模式": "1",
"搜索列表数组规则": ".vod-vodlist&&li",
"搜索片单是否Jsoup写法": "1",
"搜索片单图片": ".lazyload&&data-original",
"搜索片单标题": ".vod-vodlist__title&&Text",
"搜索片单链接": "a&&href",
"搜索片单副标题": ".pic-text&&Text",
"搜索片单链接加前缀": "http://www.metaysw.com",
"搜索片单链接加后缀": "",
"链接是否直接播放": "0",
"直接播放链接加前缀": "https://live.52sf.ga/huya/",
"直接播放链接加后缀": "#isVideo=true#",
"直接播放直链视频请求头": "authority$ku.peizq.online#Referer$https://play.peizq.online",
"详情是否Jsoup写法": "1",
"类型详情": "",
"年代详情": "",
"地区详情": "",
"演员详情": ".vod-content__detail&&p,2&&Text!主演:",
"简介详情": "",
"线路列表数组规则": ".dropdown-menu&&li",
"线路标题": "a&&Text",
"播放列表数组规则": "body&&.vod-content__playlist",
"选集列表数组规则": "li",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
"是否反转选集序列": "0",
"选集链接加前缀": "http://www.metaysw.com",
"选集链接加后缀": "",
"分析MacPlayer": "0",
"是否开启手动嗅探": "0",
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
"手动嗅探视频链接过滤词": ".html#=http"
}
+141 -165
View File
@@ -455,7 +455,7 @@
"ratio": 1.433
},
"ext": {
"json": "./json/哔哩视频.json",
"json": "./json/BLSP.json",
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
}
},
@@ -463,29 +463,29 @@
"key": "腾讯视频",
"name": "腾讯|视频",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/腾讯视频.js"
"api": "./api/drpy2.min.js",
"ext": "./js/TXSP.js"
},
{
"key": "优酷视频",
"name": "优酷|视频",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/优酷视频.js"
"api": "./api/drpy2.min.js",
"ext": "./js/YKSP.js"
},
{
"key": "芒果视频",
"name": "芒果|视频",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/芒果视频.js"
"api": "./api/drpy2.min.js",
"ext": "./js/MGSP.js"
},
{
"key": "爱奇艺",
"name": "爱奇异|视频",
"name": "爱奇艺|视频",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/爱奇艺.js"
"api": "./api/drpy2.min.js",
"ext": "./js/AQY.js"
},
{
"key": "三六零",
@@ -701,8 +701,8 @@
"key": "双星",
"name": "双星|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/双星.js",
"api": "./api/cloud.min.js",
"ext": "./js/SX.js",
"style": {
"type": "list"
}
@@ -711,8 +711,8 @@
"key": "懒盘",
"name": "懒盘|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/懒盘.js",
"api": "./api/cloud.min.js",
"ext": "./js/LP.js",
"style": {
"type": "list"
}
@@ -721,8 +721,8 @@
"key": "百酷",
"name": "百酷|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/百酷.js",
"api": "./api/cloud.min.js",
"ext": "./js/BK.js",
"style": {
"type": "list"
}
@@ -731,8 +731,8 @@
"key": "校长",
"name": "校长|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/校长.js",
"api": "./api/cloud.min.js",
"ext": "./js/XZ.js",
"style": {
"type": "list"
}
@@ -741,8 +741,8 @@
"key": "人人电影网",
"name": "人人|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/人人电影网.js",
"api": "./api/cloud.min.js",
"ext": "../js/RRDYW.js",
"style": {
"type": "list"
}
@@ -751,8 +751,8 @@
"key": "爱UC",
"name": "爱UC|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/爱UC.js",
"api": "./api/cloud.min.js",
"ext": "./js/AUC.js",
"style": {
"type": "list"
}
@@ -761,8 +761,8 @@
"key": "爱Quark",
"name": "爱Quark|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/爱Quark.js",
"api": "./api/cloud.min.js",
"ext": "./js/AKK.js",
"style": {
"type": "list"
}
@@ -771,8 +771,8 @@
"key": "爱Baidu",
"name": "爱Baidu|4K弹幕",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/爱Baidu.js",
"api": "./api/cloud.min.js",
"ext": "./js/ABD.js",
"style": {
"type": "list"
}
@@ -799,8 +799,8 @@
"key": "米搜",
"name": "米搜|搜索",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/米搜.js",
"api": "./api/cloud.min.js",
"ext": "./js/MS.js",
"style": {
"type": "list"
}
@@ -809,8 +809,8 @@
"key": "人人分享站",
"name": "人人|搜索",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/人人分享站.js",
"api": "./api/cloud.min.js",
"ext": "./js/RR.js",
"style": {
"type": "list"
}
@@ -819,8 +819,8 @@
"key": "全盘",
"name": "全盘|搜索",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/全盘.js",
"api": "./api/cloud.min.js",
"ext": "./js/QP.js",
"style": {
"type": "list"
}
@@ -829,8 +829,8 @@
"key": "夸克盘搜",
"name": "盘搜|搜索",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/夸克盘搜.js",
"api": "./api/cloud.min.js",
"ext": "./js/KKPS.js",
"style": {
"type": "list"
}
@@ -848,7 +848,7 @@
"key": "偷乐短剧",
"name": "偷乐|短剧",
"type": 3,
"api": "./py/偷乐短剧.py",
"api": "./api/TLDJ.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
@@ -859,8 +859,8 @@
"key": "短剧网",
"name": "短剧网|短剧",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/短剧网.json"
"api": "csp_XBPQ",
"ext": "./json/DJWang.json"
},
{
"key": "短剧屋",
@@ -870,7 +870,7 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/短剧屋.json"
"ext": "./json/DJWu.json"
},
{
"key": "满分",
@@ -914,20 +914,20 @@
"key": "金牌影视",
"name": "金牌|影视",
"type": 3,
"api": "./py/金牌影视.py",
"api": "./api/JPYS.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2,
"ext": {
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
"site": "https://m.hkybqufgh.com,https://m.sizhengxt.com,https://m.9zhoukj.com,https://m.sizhengxt.com,https://m.jiabaide.cn"
}
},
{
"key": "猎手影视",
"name": "猎手|影视",
"type": 3,
"api": "./py/猎手影视.py",
"api": "./api/LSYS.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
@@ -938,7 +938,7 @@
"key": "美帕影视",
"name": "美帕|影视",
"type": 3,
"api": "./py/美帕影视.py",
"api": "./api/MPYS.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
@@ -1011,7 +1011,7 @@
"name": "绝对|影视",
"type": 3,
"api": "csp_FourK",
"ext": "https://www.4kvm.tv"
"ext": "https://www.4kvm.net"
},
{
"key": "白白影视",
@@ -1060,8 +1060,8 @@
"key": "采集之王",
"name": "采集|合集",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/采集之王.js?type=url&params=../json/采集静态.json$1$1"
"api": "./api/drpy2.min.js",
"ext": "./js/CJZW.js?type=url&params=./json/CJJT.json$1$1"
},
{
"key": "爱看机器人",
@@ -1076,64 +1076,64 @@
"key": "可可影视",
"name": "可可|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/可可影视.json"
"api": "csp_XBPQ",
"ext": "./json/KKYS.json"
},
{
"key": "海纳影视",
"name": "海纳|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/海纳影视.json"
"api": "csp_XBPQ",
"ext": "./json/HNYS.json"
},
{
"key": "面包影视",
"name": "面包|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/面包影视.json"
"api": "csp_XBPQ",
"ext": "./json/MBYS.json"
},
{
"key": "永乐影视",
"name": "永乐|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/永乐影视.json"
"api": "csp_XBPQ",
"ext": "./json/YLYS.json"
},
{
"key": "雪糕影视",
"name": "雪糕|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/雪糕影视.json"
"api": "csp_XBPQ",
"ext": "./json/XGYS.json"
},
{
"key": "骚火影视",
"name": "骚火|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/骚火影视.json"
"api": "csp_XBPQ",
"ext": "./json/SHYS.json"
},
{
"key": "七点影视",
"name": "七点|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/七点影视.json"
"api": "csp_XBPQ",
"ext": "./json/QDYS.json"
},
{
"key": "三九影视",
"name": "三九|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/三九影视.json"
"api": "csp_XBPQ",
"ext": "./json/SJYS.json"
},
{
"key": "三四影视",
"name": "三四|影视",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/三四影视.json"
"api": "csp_XBPQ",
"ext": "./json/SSYS.json"
},
{
"key": "耐看影视",
@@ -1149,22 +1149,22 @@
"key": "思古影视",
"name": "思古|影视",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/思古影视.js"
"api": "./api/drpy2.min.js",
"ext": "./js/SGYS.js"
},
{
"key": "魔力高清",
"name": "魔力|影视",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/魔力高清.js"
"api": "./api/drpy2.min.js",
"ext": "./js/MLGQ.js"
},
{
"key": "碟调影视",
"name": "碟调|影视",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/碟调影视.js"
"api": "./api/drpy2.min.js",
"ext": "./js/DDYS.js"
},
{
"key": "农民影视",
@@ -1174,7 +1174,7 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/农民影视.json"
"ext": "./json/NMYS.json"
},
{
"key": "盒子影视",
@@ -1184,7 +1184,7 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/盒子影视.json"
"ext": "./json/HZYS.json"
},
{
"key": "电影牛",
@@ -1194,21 +1194,21 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/电影牛.json"
"ext": "./json/DYN.json"
},
{
"key": "剧圈圈",
"name": "剧圈圈|影视",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/剧圈圈.js"
"api": "./api/drpy2.min.js",
"ext": "./js/JQQ.js"
},
{
"key": "看了么",
"name": "看了么|影视",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/看了么.js"
"api": "./api/drpy2.min.js",
"ext": "./js/KLM.js"
},
{
"key": "1905",
@@ -1240,31 +1240,31 @@
"key": "哆啦新番社",
"name": "哆啦|新番社",
"type": 3,
"api": "csp_HBPQ",
"api": "csp_XBPQ",
"style": {
"type": "list"
},
"ext": "./XBPQ/哆啦新番社.json"
"ext": "./json/.json"
},
{
"key": "56动漫",
"name": "56|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"api": "./api/drpy2.min.js",
"ext": "./js/56动漫.js"
},
{
"key": "NT动漫",
"name": "NT|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"api": "./api/drpy2.min.js",
"ext": "./js/NT动漫.js"
},
{
"key": "Anime1",
"name": "A1|动漫",
"name": "Anime1|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"api": "./api/drpy2.min.js",
"ext": "./js/Anime1.js"
},
{
@@ -1327,85 +1327,85 @@
"key": "樱花动漫",
"name": "樱花|动漫",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/樱花动漫.json"
"api": "csp_XBPQ",
"ext": "./json/YHDM.json"
},
{
"key": "巴士动漫",
"name": "巴士|动漫",
"type": 3,
"api": "csp_XYQHiker",
"ext": "./XYQHiker/巴士动漫.json"
"ext": "./json/bsdm.json"
},
{
"key": "好看动漫",
"name": "好看|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/好看动漫.js"
"api": "./api/drpy2.min.js",
"ext": "./js/HKDM.js"
},
{
"key": "奇米动漫",
"name": "奇米|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/奇米动漫.js"
"api": "./api/drpy2.min.js",
"ext": "./js/QMDM.js"
},
{
"key": "怡萱动漫",
"name": "怡萱|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/怡萱动漫.js"
"api": "./api/drpy2.min.js",
"ext": "./js/YXDM.js"
},
{
"key": "花子动漫",
"name": "花子|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/花子动漫.js"
"api": "./api/drpy2.min.js",
"ext": "./js/HZDM.js"
},
{
"key": "动画片",
"name": "动画片|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/动画片大全.js"
"api": "./api/drpy2.min.js",
"ext": "./js/DHPDQ.js"
},
{
"key": "路漫漫",
"name": "路漫漫|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/路漫漫.js"
"api": "./api/drpy2.min.js",
"ext": "./js/LMM.js"
},
{
"key": "动漫岛",
"name": "动漫岛|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/动漫岛.js"
"api": "./api/drpy2.min.js",
"ext": "./js/DMD.js"
},
{
"key": "去看吧",
"name": "去看吧|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/去看吧.js"
"api": "./api/drpy2.min.js",
"ext": "./js/QKB.js"
},
{
"key": "爱弹幕",
"name": "爱弹幕|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/爱弹幕.js"
"api": "./api/drpy2.min.js",
"ext": "./js/ADM.js"
},
{
"key": "异世界",
"name": "异世界|动漫",
"type": 3,
"api": "./js/drpy2.min.js",
"ext": "./js/异世界.js"
"api": "./api/drpy2.min.js",
"ext": "./js/YSJ.js"
},
{
"key": "荐片",
@@ -1419,11 +1419,11 @@
"key": "修罗影视",
"name": "修罗|磁力",
"type": 3,
"api": "csp_HBPQ",
"api": "csp_XBPQ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XBPQ/修罗影视.json"
"ext": "./json/XLYS.json"
},
{
"key": "七味",
@@ -1489,28 +1489,28 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/电影港.json"
"ext": "./json/DYG.json"
},
{
"key": "狐狸君",
"name": "狐狸君|磁力",
"type": 3,
"api": "csp_HBPQ",
"api": "csp_XBPQ",
"changeable": 1,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XBPQ/狐狸君.json"
"ext": "./json/HLJ.json"
},
{
"key": "布谷TV",
"name": "布谷TV|磁力",
"type": 3,
"api": "csp_HBPQ",
"api": "csp_XBPQ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XBPQ/布谷TV.json"
"ext": "./json/BGTV.json"
},
{
"key": "BT天堂",
@@ -1520,7 +1520,7 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/BT天堂.json"
"ext": "./json/BTTT.json"
},
{
"key": "Mp4电影",
@@ -1617,8 +1617,8 @@
"key": "短剧合集",
"name": "短剧|合集",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/短剧合集.js",
"api": "./api/cloud.min.js",
"ext": "./js/DJHJ.js",
"style": {
"type": "list"
}
@@ -1627,8 +1627,8 @@
"key": "短剧大全",
"name": "短剧|大全",
"type": 3,
"api": "./js/cloud.min.js",
"ext": "./js/短剧大全.js",
"api": "./api/cloud.min.js",
"ext": "./js/DJDQ.js",
"style": {
"type": "list"
}
@@ -1650,7 +1650,7 @@
"key": "网络直播",
"name": "网络|直播",
"type": 3,
"api": "./py/网络直播.py"
"api": "./api/WLZB.py"
},
{
"key": "88看球",
@@ -1676,12 +1676,12 @@
"ratio": 1.433
},
"ext": {
"json": "./json/哔哩合集.json",
"json": "./json/BLHJ.json",
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt"
}
},
{
"key": "哔哩哔哩演唱会",
"key": "哔哩哔哩戏曲",
"name": "哔哩|音乐",
"type": 3,
"api": "csp_Bili",
@@ -1690,7 +1690,7 @@
"filterable": 0,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt",
"json": "./json/哔哩哔哩演唱会.json"
"json": "./json/BLYCH.json"
},
"style": {
"type": "rect",
@@ -1707,7 +1707,7 @@
"filterable": 0,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt",
"json": "./json/哔哩哔哩听书.json"
"json": "./json/BLTS.json"
},
"style": {
"type": "rect",
@@ -1724,7 +1724,7 @@
"filterable": 0,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt",
"json": "./json/哔哩哔哩相声.json"
"json": "./json/BLXS.json"
},
"style": {
"type": "rect",
@@ -1741,7 +1741,7 @@
"filterable": 0,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt",
"json": "./json/哔哩哔哩小品.json"
"json": "./json/BLXP.json"
},
"style": {
"type": "rect",
@@ -1758,7 +1758,7 @@
"filterable": 0,
"ext": {
"cookie": "http://127.0.0.1:9978/file/TVBox/bili_cookie.txt",
"json": "./json/哔哩哔哩戏曲.json"
"json": "./json/BLXQ.json"
},
"style": {
"type": "rect",
@@ -1783,23 +1783,13 @@
"key": "养生堂",
"name": "养生|知识",
"type": 3,
"api": "csp_HBPQ",
"ext": "./XBPQ/养生堂.json",
"api": "csp_XBPQ",
"ext": "./json/YST.json",
"style": {
"type": "rect",
"ratio": 1.597
}
},
{
"key": "版本信息",
"name": "版本|信息",
"type": 3,
"api": "csp_Market",
"searchable": 0,
"changeable": 0,
"indexs": 0,
"ext": "https://9877.kstore.space/Market/single.json"
},
{
"key": "push_agent",
"name": "手机|推送",
@@ -1841,7 +1831,7 @@
}
},
{
"name": "巧计",
"name": "QD4K",
"type": 1,
"url": "https://zy.qiaoji8.com/xiafan.php?url=",
"ext": {
@@ -2037,78 +2027,64 @@
{
"name": "AI直播",
"type": 0,
"url": "https://github.3x25.com/https://raw.githubusercontent.com/PizazzGY/TV/master/output/user_result.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
"playerType": 1,
"timeout": 10
"url": "./lives/AI直播.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
},
{
"name": "Guovin",
"type": 0,
"url": "https://gitee.com/mytv-android/iptv-api/raw/master/output/result.m3u",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
"timeout": 10
"url": "./lives/Guovin.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
},
{
"name": "虎牙一起看",
"type": 3,
"api": "csp_Feiyang",
"url": "https://yun.urldwz.com/f/BE9PSL/huyayqk.m3u",
"timeout": 10,
"url": "./lives/虎牙一起看.txt",
"ua": "okhttp/3.15"
},
{
"name": "斗鱼一起看",
"type": 3,
"api": "csp_Feiyang",
"url": "https://yun.urldwz.com/f/NR9qiA/douyuyqk.m3u",
"timeout": 10,
"url": "./lives/斗鱼一起看.txt",
"ua": "okhttp/3.15"
},
{
"name": "YY轮播",
"type": 3,
"api": "csp_Feiyang",
"url": "https://yun.urldwz.com/f/dlkycZ/yylunbo.m3u",
"timeout": 10,
"url": "./lives/YY轮播.txt",
"ua": "okhttp/3.15"
},
{
"name": "B站直播",
"type": 3,
"api": "csp_Feiyang",
"url": "https://yun.urldwz.com/f/9XBkHK/bilibili.m3u",
"timeout": 10,
"url": "./lives/B站直播.txt",
"ua": "okhttp/3.15"
},
{
"name": "电视Live",
"type": 0,
"url": "https://tv.iill.top/m3u/Gather",
"playerType": 2,
"timeout": 10
"url": "./lives/电视Live.txt"
},
{
"name": "网络Live",
"type": 0,
"url": "https://tv.iill.top/m3u/Live",
"playerType": 2,
"timeout": 10
"url": "./lives/网络Live.txt"
},
{
"name": "范明明",
"type": 0,
"url": "https://live.fanmingming.cn/tv/m3u/ipv6.m3u",
"timeout": 10
"url": "./lives/范明明.txt"
},
{
"name": "APTV",
"type": 0,
"url": "https://github.3x25.com/https://github.com/Kimentanm/aptv/raw/master/m3u/iptv.m3u",
"url": "./lives/APTV.txt",
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
"logo": "https://epg.iill.top/logo/{name}.png",
"ua": "okhttp/3.15,AptvPlayer/1.4.0",
"timeout": 10
"ua": "okhttp/3.15,AptvPlayer/1.4.0"
}
],
"hosts": [
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
View File
Whitespace-only changes.
File renamed without changes.
File renamed without changes.
View File
File renamed without changes.
File renamed without changes.
-61
View File
@@ -1,61 +0,0 @@
var rule = {
title:'88看球',
// host:'http://www.88kanqiu.cc',
host:'http://www.88kanqiu.bar/',
url: "/match/fyclass/live",
searchUrl: "",
searchable: 0,
quickSearch: 0,
class_parse: ".nav-pills li;a&&Text;a&&href;/match/(\\d+)/live",
headers: {
"User-Agent": "PC_UA",
},
timeout: 5000,
play_parse: true,
pagecount:{"1":1,"2":1,"4":1,"22":1,"8":1,"9":1,"10":1,"14":1,"15":1,"12":1,"13":1,"16":1,"28":1,"7":1,"11":1,"33":1,"27":1,"23":1,"26":1,"3":1,"21":1,"18":1},
lazy: `js:
if(/embed=/.test(input)) {
let url = input.match(/embed=(.*?)&/)[1];
url = base64Decode(url);
input = {
jx:0,
url: url.split('#')[0],
parse: 0
}
} else if (/\?url=/.test(input)){
input = {
jx:0,
url: input.split('?url=')[1].split('#')[0],
parse: 0
}
} else {
input
}
`,
limit: 6,
double: false,
推荐: "*",
一级: ".list-group .group-game-item;.d-none&&Text;img&&src;.btn&&Text;a&&href",
二级: {
title: ".game-info-container&&Text;.customer-navbar-nav li&&Text",
img: "img&&src",
desc: ";;;div.team-name:eq(0)&&Text;div.team-name:eq(1)&&Text",
content: "div.game-time&&Text",
tabs: "js:TABS=['实时直播']",
lists: `js:
LISTS = [];
let html = request(input.replace('play', 'play-url'));
let pdata = JSON.parse(html).data;
pdata = pdata.slice(6);
pdata = pdata.slice(0, -2);
pdata = base64Decode(pdata);
// log(pdata);
let jo = JSON.parse(pdata).links;
let d = jo.map(function (it) {
return it.name + '$' + urlencode(it.url)
});
LISTS.push(d)
`,
},
搜索: "",
};
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
bXViYW4u55+t6KeGMi7kuoznuqcuaW1nID0gJy5kZXRhaWwtcGljJiZpbWcmJmRhdGEtc3JjJzsKdmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+eIseW8ueW5lScsCiAgICDmqKHmnb86ICfnn63op4YyJywKICAgIGhvc3Q6ICdodHRwczovL2FuaW1lLmdpcmlnaXJpbG92ZS5jb20nLAogICAgaG9tZVVybDogJy9tYXAvJywKICAgIC8vIHVybDonL3Nob3cvZnljbGFzcy0tLS0tLS0tZnlwYWdlLS0tLycKICAgIHVybDogJy9zaG93L2Z5Y2xhc3NmeWZpbHRlci8nLAogICAgZmlsdGVyYWJsZTogMSwgLy/mmK/lkKblkK/nlKjliIbnsbvnrZvpgIksCiAgICBmaWx0ZXJfdXJsOiAnLXt7ZmwuYXJlYX19LXt7ZmwuYnl9fS17e2ZsLmNsYXNzfX0te3tmbC5sYW5nfX0te3tmbC5sZXR0ZXJ9fS0tLWZ5cGFnZS0tLXt7ZmwueWVhcn19JywKICAgIGZpbHRlcjogewogICAgICAgICIyIjogW3sKICAgICAgICAgICAgImtleSI6ICJjbGFzcyIsCiAgICAgICAgICAgICJuYW1lIjogIuexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLllpzliaciLAogICAgICAgICAgICAgICAgInYiOiAi5Zac5YmnIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLniLHmg4UiLAogICAgICAgICAgICAgICAgInYiOiAi54ix5oOFIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmgZDmgJYiLAogICAgICAgICAgICAgICAgInYiOiAi5oGQ5oCWIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLliqjkvZwiLAogICAgICAgICAgICAgICAgInYiOiAi5Yqo5L2cIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnp5HlubsiLAogICAgICAgICAgICAgICAgInYiOiAi56eR5bm7IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLliafmg4UiLAogICAgICAgICAgICAgICAgInYiOiAi5Ymn5oOFIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmiJjkuokiLAogICAgICAgICAgICAgICAgInYiOiAi5oiY5LqJIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlpYflubsiLAogICAgICAgICAgICAgICAgInYiOiAi5aWH5bm7IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhpLpmakiLAogICAgICAgICAgICAgICAgInYiOiAi5YaS6ZmpIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmgqznlpEiLAogICAgICAgICAgICAgICAgInYiOiAi5oKs55aRIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmoKHlm60iLAogICAgICAgICAgICAgICAgInYiOiAi5qCh5ZutIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlkI7lrqsiLAogICAgICAgICAgICAgICAgInYiOiAi5ZCO5a6rIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLng63ooYAiLAogICAgICAgICAgICAgICAgInYiOiAi54Ot6KGAIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLov5DliqgiLAogICAgICAgICAgICAgICAgInYiOiAi6L+Q5YqoIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnmb7lkIgiLAogICAgICAgICAgICAgICAgInYiOiAi55m+5ZCIIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLkuZnlpbMiLAogICAgICAgICAgICAgICAgInYiOiAi5LmZ5aWzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnLrnlLIiLAogICAgICAgICAgICAgICAgInYiOiAi5py655SyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLml6XluLgiLAogICAgICAgICAgICAgICAgInYiOiAi5pel5bi4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLprZTms5XlsJHlpbMiLAogICAgICAgICAgICAgICAgInYiOiAi6a2U5rOV5bCR5aWzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlvILkuJbnlYwiLAogICAgICAgICAgICAgICAgInYiOiAi5byC5LiW55WMIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLniLHmipbpnLIiLAogICAgICAgICAgICAgICAgInYiOiAi54ix5oqW6ZyyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpn7PkuZAiLAogICAgICAgICAgICAgICAgInYiOiAi6Z+z5LmQIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLokIwiLAogICAgICAgICAgICAgICAgInYiOiAi6JCMIgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJhcmVhIiwKICAgICAgICAgICAgIm5hbWUiOiAi5Zyw5Yy6IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuS4gOaciCIsCiAgICAgICAgICAgICAgICAidiI6ICLkuIDmnIgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWbm+aciCIsCiAgICAgICAgICAgICAgICAidiI6ICLlm5vmnIgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuS4g+aciCIsCiAgICAgICAgICAgICAgICAidiI6ICLkuIPmnIgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWNgeaciCIsCiAgICAgICAgICAgICAgICAidiI6ICLljYHmnIgiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku70iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICALine truncated
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+Wlh+ePjeW8guWFvVvlrphdJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy5pcWl5aS5jb20nLAogICAgaG9tZVVybDogJycsCiAgICAvLyBkZXRhaWxVcmw6J2h0dHBzOi8vcGN3LWFwaS5pcWl5aS5jb20vYWxidW1zL2FsYnVtL2F2bGlzdGluZm8/YWlkPWZ5aWQmc2l6ZT0yMDAwJnBhZ2U9MScsCiAgICBkZXRhaWxVcmw6ICdodHRwczovL3Bjdy1hcGkuaXFpeWkuY29tL3ZpZGVvL3ZpZGVvL3ZpZGVvaW5mb3dpdGh1c2VyL2Z5aWQ/YWdlbnRfdHlwZT0xJmF1dGhjb29raWU9JnN1YmtleT1meWlkJnN1YnNjcmliZT0xJywKICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vc2VhcmNoLnZpZGVvLmlxaXlpLmNvbS9vP2lmPWh0bWw1JmtleT0qKiZwYWdlTnVtPWZ5cGFnZSZwb3M9MSZwYWdlU2l6ZT0yNCZzaXRlPWlxaXlpJywKICAgIHNlYXJjaGFibGU6IDIsCiAgICBtdWx0aTogMSwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBmaWx0ZXI6IHsKICAgICAgICAnMSc6IFt7CiAgICAgICAgICAgICdrZXknOiAnbW9kZScsCiAgICAgICAgICAgICduYW1lJzogJ+e7vOWQiOaOkuW6jycsCiAgICAgICAgICAgICd2YWx1ZSc6IFt7CiAgICAgICAgICAgICAgICAnbic6ICflhajpg6gnLAogICAgICAgICAgICAgICAgJ3YnOiAnJwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICfng63mkq3mppwnLAogICAgICAgICAgICAgICAgJ3YnOiAxMQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICflpb3or4TmppwnLAogICAgICAgICAgICAgICAgJ3YnOiA4CiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICduJzogJ+aWsOS4iue6vycsCiAgICAgICAgICAgICAgICAndic6IDQKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICdrZXknOiAneWVhcicsCiAgICAgICAgICAgICduYW1lJzogJ+WFqOmDqOW5tOS7vScsCiAgICAgICAgICAgICd2YWx1ZSc6IFt7CiAgICAgICAgICAgICAgICAnbic6ICflhajpg6gnLAogICAgICAgICAgICAgICAgJ3YnOiAnJwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogMjAyNQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogMjAyNAogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDIzJywKICAgICAgICAgICAgICAgICd2JzogMjAyMwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDIyJywKICAgICAgICAgICAgICAgICd2JzogMjAyMgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDIxJywKICAgICAgICAgICAgICAgICd2JzogMjAyMQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDIwJywKICAgICAgICAgICAgICAgICd2JzogMjAyMAogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDE5JywKICAgICAgICAgICAgICAgICd2JzogMjAxOQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDE4JywKICAgICAgICAgICAgICAgICd2JzogMjAxOAogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDE3JywKICAgICAgICAgICAgICAgICd2JzogMjAxNwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDE2LTIwMTEnLAogICAgICAgICAgICAgICAgJ3YnOiAnMjAxMV8yMDE2JwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICcyMDEwLTIwMDAnLAogICAgICAgICAgICAgICAgJ3YnOiAnMjAwMF8yMDEwJwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICc5MOW5tOS7oycsCiAgICAgICAgICAgICAgICAndic6ICcxOTkwXzE5OTknCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICduJzogJzgw5bm05LujJywKICAgICAgICAgICAgICAgICd2JzogJzE5ODBfMTk4OScKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgJ24nOiAn5pu05pepJywKICAgICAgICAgICAgICAgICd2JzogJzE5NjRfMTk3OScKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICdrZXknOiAnaXNfcHVyY2hhc2UnLAogICAgICAgICAgICAnbmFtZSc6ICflhajpg6jotYTotLknLAogICAgICAgICAgICAndmFsdWUnOiBbewogICAgICAgICAgICAgICAgJ24nOiAn5YWo6YOoJywKICAgICAgICAgICAgICAgICd2JzogJycKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgJ24nOiAn5YWN6LS5JywKICAgICAgICAgICAgICAgICd2JzogMAogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICfkvJrlkZgnLAogICAgICAgICAgICAgICAgJ3YnOiAxCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICduJzogJ+S7mOi0uScsCiAgICAgICAgICAgICAgICAndic6IDIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICdrZXknOiAndGhyZWVfY2F0ZWdvcnlfaWQnLAogICAgICAgICAgICAnbmFtZSc6ICflnLDljLonLAogICAgICAgICAgICAndmFsdWUnOiBbewogICAgICAgICAgICAgICAgJ24nOiAn5YWo6YOoJywKICAgICAgICAgICAgICAgICd2JzogJycKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgJ24nOiAn5Y2O6K+tJywKICAgICAgICAgICAgICAgICd2JzogMQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICfpppnmuK/lnLDljLonLAogICAgICAgICAgICAgICAgJ3YnOiAyODk5NwogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICfnvo7lm70nLAogICAgICAgICAgICAgICAgJ3YnOiAyCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICduJzogJ+asp+a0sicsCiAgICAgICAgICAgICAgICAndic6IDMKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgJ24nOiAn6Z+p5Zu9JywKICAgICAgICAgICAgICAgICd2JzogNAogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICfml6XmnKwnLAogICAgICAgICAgICAgICAgJ3YnOiAzMDgKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgJ24nOiAn5rOw5Zu9JywKICAgICAgICAgICAgICAgICd2JzogMTExNQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICfljbDluqYnLAogICAgICAgICAgICAgICAgJ3YnOiAyODk5OQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICflhbblroMnLAogICAgICAgICAgICAgICAgJ3YnOiA1CiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAna2V5JzogJzE4MDAxJywKICAgICAgICAgICAgJ25hbWUnOiAn57G75Z6LJywKICAgICAgICAgICAgJ3ZhbHVlJzogW3sKICAgICAgICAgICAgICAgICduJzogJ+WFqOmDqCcsCiAgICAgICAgICAgICAgICAndic6ICcnCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICduJzogJ+WWnOWJpycsCiAgICAgICAgICAgICAgICAndic6IDgKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgJ24nOiAn54ix5oOFJywKICAgICAgICAgICAgICAgICd2JzogNgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAnbic6ICfliqjkvZwnLAogICAgICAgICAgICAgICAgJ3YnOiAxMQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICALine truncated
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+eZvumFt+efreWJpycsCiAgICBob3N0OiAnaHR0cHM6Ly9hcGkua3VsZXUuY29tLycsCiAgICBob3N0SnM6ICcnLAogICAgaGVhZGVyczogewogICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChMaW51eDsgQW5kcm9pZCAxMTsgUGl4ZWwgNSkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzkwLjAuNDQzMC45MSBNb2JpbGUgU2FmYXJpLzUzNy4zNicsCiAgICB9LAogICAg57yW56CBOiAndXRmLTgnLAogICAgdGltZW91dDogNTAwMCwKICAgIHVybDogJ2h0dHBzOi8vYXBpLmt1bGV1LmNvbS9meWNsYXNzJywKICAgIGZpbHRlcl91cmw6ICcnLAogICAgZGV0YWlsVXJsOiAnJywKICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vYXBpLmt1bGV1LmNvbS9hcGkvYmRkaj90ZXh0PSoqJywKICAgIHNlYXJjaGFibGU6IDEsCiAgICBxdWlja1NlYXJjaDogMSwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBjbGFzc19uYW1lOiAn5LuK5pel5pu05pawJueZvuW6puefreWJpybmr4/ml6Xmm7TmlrAm5aS45YWL55+t5YmnJuavj+aXpeabtOaWsCcsCiAgICBjbGFzc191cmw6ICdhcGkveWluZ3NoaSZhcGkvYmRkaj9saXN0JmFwaS9iZGRqP3RvZGF5JmFwaS9hY3Rpb24/bGlzdCZhcGkvYWN0aW9uP3RvZGF5JywKICAgIHByb3h5X3J1bGU6ICcnLAogICAgc25pZmZlcjogZmFsc2UsCiAgICBpc1ZpZGVvOiAnJywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBwYXJzZV91cmw6ICcnLAogICAgbGF6eTogImpzOlxuICAgICAgICBpbnB1dCA9ICdwdXNoOi8vJyArIGlucHV0O1xuICAgICIsCiAgICBsaW1pdDogOSwKICAgIGRvdWJsZTogZmFsc2UsCiAgICAvLyDmjqjojZA6ICcqJywKICAgIOS4gOe6pzogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgIGxldCBjaWQgPSBNWV9DQVRFIHx8ICcxMDgnOwogICAgbGV0IHBnID0gTVlfUEFHRSB8fCAxOwogICAgbGV0IHVybCA9IGBodHRwczovL2FwaS5rdWxldS5jb20vJHtjaWR9YDsKICAgIGxldCBraHRtbCA9IGZldGNoKHVybCwge2hlYWRlcnM6IHJ1bGUuaGVhZGVyc30pOwogICAgbGV0IGtqc29uID0gSlNPTi5wYXJzZShraHRtbCk7CiAgICBWT0RTID0gW107CiAgICBranNvbi5kYXRhLmZvckVhY2goaXQgPT4gewogICAgICAgIFZPRFMucHVzaCh7CiAgICAgICAgICAgIHZvZF9uYW1lOiBpdC5uYW1lLAogICAgICAgICAgICB2b2RfcGljOiBgaHR0cHM6Ly90c2UzLW1tLmNuLmJpbmcubmV0L3RoL2lkL09JUC1DLnJsUU9ZdHNyaXdXS0h3b2ZHdWZKX0FIYVFkP3c9MTU3Jmg9MzUwJmM9NyZyPTAmbz03JmRwcj0zLjcmcGlkPTEuNyZybT0zYCwKICAgICAgICAgICAgdm9kX3JlbWFya3M6IGl0LmFkZHRpbWUsCiAgICAgICAgICAgIHZvZF9pZDogYHB1c2g6Ly8ke2l0LnZpZXdsaW5rfWAKICAgICAgICB9KTsKICAgIH0pOwp9KSwKICAgIOS6jOe6pzogJyonLAogICAg5pCc57SiOiRqcy50b1N0cmluZygoKSA9PiB7CiAgICBsZXQgdXJsID0gYGh0dHBzOi8vYXBpLmt1bGV1LmNvbS9hcGkvYmRkaj90ZXh0PSR7S0VZfWA7CiAgICBsZXQga2h0bWwgPSBmZXRjaCh1cmwpOwogICAgbGV0IGtqc29uID0gSlNPTi5wYXJzZShraHRtbCk7CiAgICBWT0RTID0gW107CiAgICBranNvbi5kYXRhLmZvckVhY2goaXQgPT4gewogICAgICAgIFZPRFMucHVzaCh7CiAgICAgICAgICAgIHZvZF9uYW1lOiBpdC5uYW1lLAogICAgICAgICAgICB2b2RfcGljOiBpdC5wUGljLAogICAgICAgICAgICB2b2RfcmVtYXJrczogaXQuYWRkdGltZSwKICAgICAgICAgICAgdm9kX2lkOiBgcHVzaDovLyR7aXQudmlld2xpbmt9YAogICAgICAgIH0pCiAgICB9KQp9KSwKICAgIGNhdGVfZXhjbHVkZTogJ+mmlumhtXznlZnoqIB8QVBQfOS4i+i9vXzotYTorq985paw6Ze7fOWKqOaAgScsCiAgICB0YWJfZXhjbHVkZTogJ+eMnOS9oHzllpzmrKJ85LiL6L29fOWJp+aDhXzmppx86K+E6K66JywKICAgIOexu+WeizogJ+W9seinhicsCiAgICBob21lVXJsOiAnaHR0cHM6Ly93d3cubHpwYW54LmNvbS8nLAogICAg5LqM57qn6K6/6Zeu5YmNOiAnJywKICAgIGVuY29kaW5nOiAndXRmLTgnLAogICAgc2VhcmNoX2VuY29kaW5nOiAnJywKICAgIOWbvueJh+adpea6kDogJycsCiAgICDlm77niYfmm7/mjaI6ICcnLAogICAgcGxheV9qc29uOiBbXSwKICAgIHBhZ2Vjb3VudDoge30sCiAgICB0YWJfcmVtb3ZlOiBbXSwKICAgIHRhYl9vcmRlcjogW10sCiAgICB0YWJfcmVuYW1lOiB7fSwKfQ==
+1
View File
@@ -0,0 +1 @@
Z2xvYmFsVGhpcy5nZXRSYW5kb21JdGVtID0gZnVuY3Rpb24gKGl0ZW1zKSB7CiAgICByZXR1cm4gaXRlbXNbTWF0aC5yYW5kb20oKSAqIGl0ZW1zLmxlbmd0aCB8IDBdOwp9CnZhciBydWxlID0gewogICAgdGl0bGU6ICfph4fpm4bkuYvnjotb5ZCIXScsCiAgICBhdXRob3I6ICfpgZPplb8nLAogICAgdmVyc2lvbjogJzIwMjQwNzA2IGJldGExNycsCiAgICB1cGRhdGVfaW5mbzogYGAudHJpbSgpLAogICAgaG9zdDogJycsCiAgICBob21lVGlkOiAnJywKICAgIGhvbWVVcmw6ICcvYXBpLnBocC9wcm92aWRlL3ZvZC8/YWM9ZGV0YWlsJnQ9e3tydWxlLmhvbWVUaWR9fScsCiAgICBkZXRhaWxVcmw6ICcvYXBpLnBocC9wcm92aWRlL3ZvZC8/YWM9ZGV0YWlsJmlkcz1meWlkJywKICAgIHNlYXJjaFVybDogJy9hcGkucGhwL3Byb3ZpZGUvdm9kLz93ZD0qKiZwZz0jVHJ1ZVBhZ2UjI3BhZ2U9ZnlwYWdlJywKICAgIGNsYXNzVXJsOiAnL2FwaS5waHAvcHJvdmlkZS92b2QvJywKICAgIHVybDogJy9hcGkucGhwL3Byb3ZpZGUvdm9kLz9hYz1kZXRhaWwmcGc9ZnlwYWdlJnQ9ZnlmaWx0ZXInLAogICAgZmlsdGVyX3VybDogJ3t7Zmwu57G75Z6LfX0nLAogICAgaGVhZGVyczogewogICAgICAgICdVc2VyLUFnZW50JzogJ01PQklMRV9VQScKICAgIH0sCiAgICB0aW1lb3V0OiA1MDAwLAogICAgbGltaXQ6IDIwLAogICAgc2VhcmNoX2xpbWl0OiAxMCwKICAgIHNlYXJjaGFibGU6IDEsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBwbGF5X3BhcnNlOiB0cnVlLAogICAgcGFyc2VfdXJsOiAnJywKICAgIHNlYXJjaF9tYXRjaDogZmFsc2UsCiAgICBzZWFyY2hfcGljOiB0cnVlLAogICAg6aKE5aSE55CGOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGZ1bmN0aW9uIGdldENsYXNzZXMoaXRlbSkgewogICAgICAgICAgICBsZXQgY2xhc3NlcyA9IFtdOwogICAgICAgICAgICBpZiAoaXRlbS5jbGFzc19uYW1lICYmIGl0ZW0uY2xhc3NfdXJsKSB7CiAgICAgICAgICAgICAgICBpZiAoIS8mfOeUteW9sXznlLXop4bliad857u86Im6fOWKqOa8q1tcdTRFMDAtXHU5RkE1XSsvLnRlc3QoaXRlbS5jbGFzc19uYW1lKSkgewogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NfbmFtZSA9IHVuZ3ppcChpdGVtLmNsYXNzX25hbWUpCiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICBsb2coYOS4jeivhuWIq+eahGNsYXNzX25hbWXlr7zoh7Rnemlw6Kej56CB5aSx6LSlOiR7ZX1gKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xhc3NlcwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxldCBuYW1lcyA9IGl0ZW0uY2xhc3NfbmFtZS5zcGxpdCgnJicpOwogICAgICAgICAgICAgICAgbGV0IHVybHMgPSBpdGVtLmNsYXNzX3VybC5zcGxpdCgnJicpOwogICAgICAgICAgICAgICAgbGV0IGNudCA9IE1hdGgubWluKG5hbWVzLmxlbmd0aCwgdXJscy5sZW5ndGgpOwogICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbnQ7IGkrKykgewogICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlX2lkJzogdXJsc1tpXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGVfbmFtZSc6IG5hbWVzW2ldCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGNsYXNzZXMKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZihiYXRjaEZldGNoKSA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICBydWxlLnNlYXJjaF9saW1pdCA9IDE2OwogICAgICAgICAgICBsb2coJ+W9k+WJjeeoi+W6j+aUr+aMgeaJuemHj+ivt+axgltiYXRjaEZldGNoXSzmkJzntKLpmZDliLblt7Lorr7nva7kuLoxNicpOwogICAgICAgIH0KICAgICAgICBsZXQgX3VybCA9IHJ1bGUucGFyYW1zOwogICAgICAgIGxvZyhg5Lyg5YWl5Y+C5pWwOiR7X3VybH1gKTsKICAgICAgICBpZiAoX3VybCAmJiB0eXBlb2YoX3VybCkgPT09ICdzdHJpbmcnICYmIC9eKGh0dHB8ZmlsZSkvLnRlc3QoX3VybCkpIHsKICAgICAgICAgICAgaWYgKF91cmwuaW5jbHVkZXMoJyQnKSkgewogICAgICAgICAgICAgICAgbGV0IF91cmxfcGFyYW1zID0gX3VybC5zcGxpdCgnJCcpOwogICAgICAgICAgICAgICAgX3VybCA9IF91cmxfcGFyYW1zWzBdOwogICAgICAgICAgICAgICAgcnVsZS5zZWFyY2hfbWF0Y2ggPSAhIShfdXJsX3BhcmFtc1sxXSk7CiAgICAgICAgICAgICAgICBpZiAoX3VybF9wYXJhbXMubGVuZ3RoID4gMikgewogICAgICAgICAgICAgICAgICAgIHJ1bGUuc2VhcmNoX3BpYyA9ICEhKF91cmxfcGFyYW1zWzJdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QoX3VybCk7CiAgICAgICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICAgICAgbGV0IF9jbGFzc2VzID0gW107CiAgICAgICAgICAgIHJ1bGUuZmlsdGVyID0ge307CiAgICAgICAgICAgIHJ1bGUuZmlsdGVyX2RlZiA9IHt9OwogICAgICAgICAgICBqc29uLmZvckVhY2goaXQgPT4gewogICAgICAgICAgICAgICAgbGV0IF9vYmogPSB7CiAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lOiBpdC5uYW1lLAogICAgICAgICAgICAgICAgICAgIHR5cGVfaWQ6IGl0LnVybCwKICAgICAgICAgICAgICAgICAgICBwYXJzZV91cmw6IGl0LnBhcnNlX3VybCB8fCAnJywKICAgICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlOiBpdC5zZWFyY2hhYmxlICE9PSAwLAogICAgICAgICAgICAgICAgICAgIGFwaTogaXQuYXBpIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIGNhdGVfZXhjbHVkZTogaXQuY2F0ZV9leGNsdWRlIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIGNhdGVfZXhjbHVkZXM6IGl0LmNhdGVfZXhjbHVkZXMgfHwgW10sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgX2NsYXNzZXMucHVzaChfb2JqKTsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgbGV0IGpzb24xID0gW107CiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LmNsYXNzX25hbWUgJiYgaXQuY2xhc3NfdXJsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGpzb24xID0gZ2V0Q2xhc3NlcyhpdCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAganNvbjEgPSBKU09OLnBhcnNlKHJlcXVlc3QodXJsam9pbihfb2JqLnR5cGVfaWQsIF9vYmouYXBpIHx8IHJ1bGUuY2xhc3NVcmwpKSkuY2xhc3M7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChfb2JqLmNhdGVfZXhjbHVkZXMgJiYgQXJyYXkuaXNBcnJheShfb2JqLmNhdGVfZXhjbHVkZXMpICYmIF9vYmouY2F0ZV9leGNsdWRlcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGpzb24xID0ganNvbjEuZmlsdGVyKGNsID0+ICFfb2JqLmNhdGVfZXhjbHVkZXMuaW5jbHVkZXMoY2wudHlwZV9uYW1lKSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChfb2JqLmNhdGVfZXhjbHVkZSkgewogICAgICAgICAgICAgICAgICAgICAgICBqc29uMSA9IGpzb24xLmZpbHRlcihjbCA9PiAhbmVLine truncated
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+ein+iwg+W9seinhicsCiAgICBob3N0OiAnaHR0cDovL3d3dy42MTg2NDguY29tJywKICAgIC8vIGhvbWVVcmw6Jy8nLAogICAgdXJsOiAnL2RpZS10aWFvL2Z5Y2xhc3MtZnlwYWdlLmh0bWwnLAogICAgc2VhcmNoVXJsOiAnL2RpZWRpYW9jaC9wYWdlL2Z5cGFnZS93ZC8qKi5odG1sJywKICAgIHNlYXJjaGFibGU6IDIsIC8v5piv5ZCm5ZCv55So5YWo5bGA5pCc57SiLAogICAgcXVpY2tTZWFyY2g6IDAsIC8v5piv5ZCm5ZCv55So5b+r6YCf5pCc57SiLAogICAgZmlsdGVyYWJsZTogMCwgLy/mmK/lkKblkK/nlKjliIbnsbvnrZvpgIksCiAgICBoZWFkZXJzOiB7IC8v572R56uZ55qE6K+35rGC5aS0LOWujOaVtOaUr+aMgeaJgOacieeahCzluLjluKZ1YeWSjGNvb2tpZXMKICAgICAgICAnVXNlci1BZ2VudCc6ICdNT0JJTEVfVUEnLAogICAgICAgIC8vICJDb29raWUiOiAic2VhcmNobmVlZD1vayIKICAgIH0sCiAgICAvL2NsYXNzX3BhcnNlOicuc3R1aS1oZWFkZXJfX21lbnUgbGkuaGlkZGVuLXhzO2EmJlRleHQ7YSYmaHJlZjsuKi8oLio/KS5odG1sJywKICAgIGNsYXNzX25hbWU6ICfnlLXlvbEm55S16KeG5YmnJue7vOiJuibliqjmvKsnLAogICAgY2xhc3NfdXJsOiAnMSYyJjMmNCcsCiAgICBwbGF5X3BhcnNlOiB0cnVlLAogICAgbGF6eTogJycsCiAgICBsaW1pdDogOCwKICAgIOaOqOiNkDogJy5zdHVpLXZvZGxpc3QuY2xlYXJmaXg7LnN0dWktdm9kbGlzdF9fYm94O2EmJnRpdGxlO2EmJmRhdGEtb3JpZ2luYWw7LnBpYy10ZXh0JiZUZXh0O2EmJmhyZWYnLAogICAgZG91YmxlOiB0cnVlLCAvLyDmjqjojZDlhoXlrrnmmK/lkKblj4zlsYLlrprkvY0KICAgIOS4gOe6pzogJy5zdHVpLXZvZGxpc3QuY2xlYXJmaXggbGk7YSYmdGl0bGU7YSYmZGF0YS1vcmlnaW5hbDsucGljLXRleHQmJlRleHQ7YSYmaHJlZicsCiAgICDkuoznuqc6IHsKICAgICAgICAidGl0bGUiOiAiaDEudGl0bGUmJlRleHQ7LnN0dWktY29udGVudF9fZGV0YWlsIHA6ZXEoMikmJlRleHQiLAogICAgICAgICJpbWciOiAiLmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsIiwKICAgICAgICAiZGVzYyI6ICIudmlkZW8taW5mby1pdGVtczplcSgtMikmJlRleHQ7LnZpZGVvLWluZm8taXRlbXM6ZXEoLTEpJiZUZXh0Oy52aWRlby1pbmZvLWl0ZW1zOmVxKC0yKSYmVGV4dDsuc3R1aS1jb250ZW50X19kZXRhaWwgcDplcSg3KSYmVGV4dDsuc3R1aS1jb250ZW50X19kZXRhaWwgcDplcSg2KSYmVGV4dCIsCiAgICAgICAgImNvbnRlbnQiOiAiLnN0dWktY29udGVudF9fZGV0YWlsIHA6ZXEoOSkmJlRleHQiLAogICAgICAgICJ0YWJzIjogIi5uYXYubmF2LXRhYnMgbGkiLAogICAgICAgICJsaXN0cyI6ICIudGFiLXBhbmUuZmFkZTplcSgjaWQpJiZ1bCYmbGkiCiAgICB9LAogICAg5pCc57SiOiAnLnN0dWktdm9kbGlzdC5jbGVhcmZpeCBsaTthJiZ0aXRsZTthJiZkYXRhLW9yaWdpbmFsOy5waWMtdGV4dCYmVGV4dDthJiZocmVmJywKfQ==
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+WKqOeUu+eJh+Wkp+WFqCcsCiAgICBob3N0OiAnaHR0cHM6Ly93d3cuZGhwZHEyLmNvbS8nLAogICAgdXJsOiAnaHR0cHM6Ly93d3cuZGhwZHEyLmNvbS9rYXRvbmcvZnljbGFzcy1meXBhZ2UvJywKICAgIHNlYXJjaFVybDogJy92b2RzZWFyY2gvKiotLS0tLS0tLS0tZnlwYWdlLS0tLycsCiAgICBjbGFzc19wYXJzZTogJy5jX2NsYXNzIGxpO2EmJlRleHQ7YSYmaHJlZjsuKi8oLio/KS8nLAogICAgc2VhcmNoYWJsZTogMiwKICAgIHF1aWNrU2VhcmNoOiAwLAogICAgZmlsdGVyYWJsZTogMCwKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdNT0JJTEVfVUEnLAogICAgfSwKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBsYXp5OiAnJywKICAgIGxpbWl0OiA2LAogICAg5o6o6I2QOiAnLnN0dWktdm9kbGlzdDtsaTthJiZ0aXRsZTthJiZkYXRhLW9yaWdpbmFsOy5waWMtdGV4dCYmVGV4dDthJiZocmVmJywKICAgIGRvdWJsZTogdHJ1ZSwKICAgIOS4gOe6pzogJy5zdHVpLXZvZGxpc3QgbGk7YSYmdGl0bGU7YSYmZGF0YS1vcmlnaW5hbDsucGljLXRleHQmJlRleHQ7YSYmaHJlZicsCiAgICDkuoznuqc6IHsKICAgICAgICB0aXRsZTogJ2gxJiZUZXh0Oy5kZXRhaWxfbGlzdCYmdWw6ZXEoMSkmJmxpJiZhOmVxKDIpJiZUZXh0JywKICAgICAgICBpbWc6ICcudm9kbGlzdF90aHVtYiYmZGF0YS1vcmlnaW5hbCcsCiAgICAgICAgZGVzYzogJy5wbGF5aW5mbyYmcDplcSgwKSYmVGV4dDsucGxheWluZm8mJnA6ZXEoMSkmJlRleHQ7LnBsYXlpbmZvJiZwOmVxKDIpJiZUZXh0Oy5wbGF5aW5mbyYmcDplcSgzKSYmVGV4dCcsCiAgICAgICAgY29udGVudDogJy5jb250ZW50OmVxKDEpJywKICAgICAgICB0YWJzOiAnLnJlbGF0ZXNkaCAudGl0bGUgaDMnLAogICAgICAgIGxpc3RzOiAnLnJlbGF0ZXNkaDplcSgjaWQpIGxpJywKICAgIH0sCiAgICDmkJzntKI6ICcqJywKfQ==
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflvbHop4YnLCAvL+W9seinhnzlkKzkuaZ85ryr55S7fOWwj+ivtAogICAgdGl0bGU6ICfnn63liacnLAogICAgaG9zdDogJ2h0dHBzOi8vYWktaW1nLnljdWJicy5jbi8nLAogICAgaG9tZVVybDogJy9hcGkvZHVhbmp1L2xpc3QnLAogICAgdXJsOiAnL2FwaS9kdWFuanUvbGlzdCcsCiAgICBzZWFyY2hVcmw6ICdodHRwczovL2FwaS5rdWxldS5jb20vYXBpL2FjdGlvbj90ZXh0PSoqJywKICAgIHNlYXJjaGFibGU6IDEsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIGZpbHRlcmFibGU6IDAsCiAgICBoZWFkZXJzOiB7CiAgICAgICAgJ1VzZXItQWdlbnQnOiAnTU9CSUxFX1VBJywKICAgIH0sCiAgICBoaWtlckxpc3RDb2w6ICJ0ZXh0XzEiLAogICAgaGlrZXJDbGFzc0xpc3RDb2w6ICJ0ZXh0XzEiLAogICAgdGltZW91dDogNTAwMCwKICAgIGNsYXNzX25hbWU6ICcnLAogICAgY2xhc3NfdXJsOiAnJywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBsYXp5OiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGlucHV0ID0gInB1c2g6Ly8iICsgaW5wdXQ7CiAgICB9KSwKICAgIGRvdWJsZTogZmFsc2UsCiAgICDmjqjojZA6ICcqJywKICAgIOS4gOe6pzogJ2pzb246ZGF0YTtuYW1lOzs7dXJsJywKICAgIOS6jOe6pzogJyonLAogICAg5pCc57SiOiAnanNvbjpkYXRhO25hbWU7Ozt2aWV3bGluaycsCn0=
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflvbHop4YnLCAvL+W9seinhnzlkKzkuaZ85ryr55S7fOWwj+ivtAogICAgdGl0bGU6ICfniLHnnIvnn63liadb55uYXScsCiAgICBob3N0OiAnaHR0cHM6Ly95cy4xMTB0LmNuLycsCiAgICBob21lVXJsOiAnL2FwaS9hamF4LnBocD9hY3Q9cmVjb21tZW5kJywKICAgIGhvbWVVcmw6ICcvYXBpL2FqYXgucGhwP2FjdD1EYWlseScsCiAgICB1cmw6ICcvYXBpL2FqYXgucGhwP2FjdD1meWNsYXNzJywKICAgIHNlYXJjaFVybDogJy9hcGkvYWpheC5waHA/YWN0PXNlYXJjaCZuYW1lPSoqJywKICAgIHNlYXJjaGFibGU6IDEsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIGZpbHRlcmFibGU6IDAsCiAgICBoZWFkZXJzOiB7CiAgICAgICAgJ1VzZXItQWdlbnQnOiAnTU9CSUxFX1VBJywKICAgIH0sCiAgICBoaWtlckxpc3RDb2w6ICJ0ZXh0XzEiLAogICAgaGlrZXJDbGFzc0xpc3RDb2w6ICJ0ZXh0XzEiLAogICAgdGltZW91dDogNTAwMCwKICAgIGNsYXNzX25hbWU6ICflhajpg6gnLAogICAgY2xhc3NfdXJsOiAneWluZ3NoaWxpc3QnLAogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIGxhenk6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgaW5wdXQgPSAicHVzaDovLyIgKyBpbnB1dDsKICAgIH0pLAogICAgZG91YmxlOiBmYWxzZSwKICAgIOaOqOiNkDogJyonLAogICAg5LiA57qnOiAnanNvbjpkYXRhO25hbWU7O2FkZHRpbWU7dXJsJywKICAgIOS6jOe6pzogJyonLAogICAg5pCc57SiOiAnKicsCn0=
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+WKqOa8q+WymycsCiAgICAvLyBob3N0OidodHRwOi8vd3d3LmRtZDg1LmNvbScsCiAgICAvLyBob3N0OidodHRwOi8vd3d3Ljg4ZG13LmNvbScsCiAgICBob3N0OiAnaHR0cDovL3d3dy5kbWFuZDUuY29tJywKICAgIC8vIHVybDonL3ZvZC1saXN0LWlkLWZ5Y2xhc3MtcGctZnlwYWdlLW9yZGVyLS1ieS17Ynl9LWNsYXNzLXtjbGFzc30teWVhci17eWVhcn0tbGV0dGVyLS1hcmVhLS1sYW5nLS5odG1sJywKICAgIHVybDogJy92b2QtbGlzdC1pZC1meWNsYXNzLXBnLWZ5cGFnZS1vcmRlci1meWZpbHRlci1hcmVhLS1sYW5nLS5odG1sJywKICAgIGZpbHRlcmFibGU6IDEsIC8v5piv5ZCm5ZCv55So5YiG57G7562b6YCJLAogICAgZmlsdGVyX3VybDogJy1ieS17e2ZsLmJ5fX0tY2xhc3Mte3tmbC5jbGFzc319LXllYXIte3tmbC55ZWFyfX0tbGV0dGVyLXt7ZmwubGV0dGVyfX0nLAogICAgZmlsdGVyOiB7CiAgICAgICAgIjEiOiBbewogICAgICAgICAgICAia2V5IjogImNsYXNzIiwKICAgICAgICAgICAgIm5hbWUiOiAi5Ymn5oOFIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWGkumZqSIsCiAgICAgICAgICAgICAgICAidiI6ICIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLng63ooYAiLAogICAgICAgICAgICAgICAgInYiOiAiMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5aWH5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaBi+eIsSIsCiAgICAgICAgICAgICAgICAidiI6ICI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmoKHlm60iLAogICAgICAgICAgICAgICAgInYiOiAiNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5ZCO5a6rIiwKICAgICAgICAgICAgICAgICJ2IjogIjYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaQnueskSIsCiAgICAgICAgICAgICAgICAidiI6ICI3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpnZLmmKUiLAogICAgICAgICAgICAgICAgInYiOiAiOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi55m+5ZCIIiwKICAgICAgICAgICAgICAgICJ2IjogIjkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuenkeW5uyIsCiAgICAgICAgICAgICAgICAidiI6ICIxNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5o6o55CGIiwKICAgICAgICAgICAgICAgICJ2IjogIjEzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLprZTms5UiLAogICAgICAgICAgICAgICAgInYiOiAiMTIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuelnumtlCIsCiAgICAgICAgICAgICAgICAidiI6ICIxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5rK75oSIIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnq57mioAiLAogICAgICAgICAgICAgICAgInYiOiAiNTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaCrOeWkSIsCiAgICAgICAgICAgICAgICAidiI6ICI2MCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oiY5LqJIiwKICAgICAgICAgICAgICAgICJ2IjogIjYyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLokJ3ojokiLAogICAgICAgICAgICAgICAgInYiOiAiNjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumtlOW5uyIsCiAgICAgICAgICAgICAgICAidiI6ICI2NCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oiY5paXIiwKICAgICAgICAgICAgICAgICJ2IjogIjY1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmrYzoiJ4iLAogICAgICAgICAgICAgICAgInYiOiAiOTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWOhuWPsiIsCiAgICAgICAgICAgICAgICAidiI6ICI5OSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Yqx5b+XIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YG25YOPIiwKICAgICAgICAgICAgICAgICJ2IjogIjExOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6IGM5Zy6IiwKICAgICAgICAgICAgICAgICJ2IjogIjEyMSIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAieWVhciIsCiAgICAgICAgICAgICJuYW1lIjogIuW5tOS7vSIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDELine truncated
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+Wlveeci+WKqOa8qycsCiAgICBob3N0OiAnaHR0cHM6Ly93d3cueW91aml1bGEuY29tLycsCiAgICB1cmw6ICdodHRwczovL3d3dy55b3VqaXVsYS5jb20veW91aml1L2Z5Y2xhc3MtZnlwYWdlLmh0bWwnLAogICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly93d3cueW91aml1bGEuY29tL3NlYXJjaC5waHA/cGFnZT1meXBhZ2Umc2VhcmNod29yZD0qKiZzZWFyY2h0eXBlPScsCiAgICBzZWFyY2hhYmxlOiAyLCAvL+aYr+WQpuWQr+eUqOWFqOWxgOaQnOe0oiwKICAgIHF1aWNrU2VhcmNoOiAwLCAvL+aYr+WQpuWQr+eUqOW/q+mAn+aQnOe0oiwKICAgIGZpbHRlcmFibGU6IDAsIC8v5piv5ZCm5ZCv55So5YiG57G7562b6YCJLAogICAgaGVhZGVyczogewogICAgICAgICdVc2VyLUFnZW50JzogJ1VDX1VBJywgLy8gIkNvb2tpZSI6ICIiCiAgICB9LCAvLyBjbGFzc19wYXJzZTonLnN0dWktaGVhZGVyX19tZW51IGxpOmd0KDApOmx0KDcpO2EmJlRleHQ7YSYmaHJlZjsvKFxcZCspLmh0bWwnLAogICAgY2xhc3NfcGFyc2U6ICcuc3R1aS1oZWFkZXJfX21lbnUgbGk6Z3QoMCk6bHQoNyk7YSYmVGV4dDthJiZocmVmOy4qLyguKj8pLmh0bWwnLAogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIGxhenk6ICcnLAogICAgbGltaXQ6IDYsCiAgICDmjqjojZA6ICd1bC5zdHVpLXZvZGxpc3QuY2xlYXJmaXg7bGk7YSYmdGl0bGU7Lmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsOy5waWMtdGV4dCYmVGV4dDthJiZocmVmJywKICAgIGRvdWJsZTogdHJ1ZSwgLy8g5o6o6I2Q5YaF5a655piv5ZCm5Y+M5bGC5a6a5L2NCiAgICDkuIDnuqc6ICcuc3R1aS12b2RsaXN0IGxpO2EmJnRpdGxlO2EmJmRhdGEtb3JpZ2luYWw7LnBpYy10ZXh0JiZUZXh0O2EmJmhyZWYnLAogICAg5LqM57qnOiB7CiAgICAgICAgInRpdGxlIjogIi5zdHVpLWNvbnRlbnRfX2RldGFpbCAudGl0bGUmJlRleHQ7LnN0dWktY29udGVudF9fZGV0YWlsIHA6ZXEoLTIpJiZUZXh0IiwKICAgICAgICAiaW1nIjogIi5zdHVpLWNvbnRlbnRfX3RodW1iIC5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCIsCiAgICAgICAgImRlc2MiOiAiLnN0dWktY29udGVudF9fZGV0YWlsIHA6ZXEoMCkmJlRleHQ7LnN0dWktY29udGVudF9fZGV0YWlsIHA6ZXEoMSkmJlRleHQ7LnN0dWktY29udGVudF9fZGV0YWlsIHA6ZXEoMikmJlRleHQiLAogICAgICAgICJjb250ZW50IjogIiNkZXNjJiZUZXh0IiwKICAgICAgICAidGFicyI6ICIuc3R1aS1wYW5uZWwtYm94IGgzIiwKICAgICAgICAibGlzdHMiOiAiLnN0dWktY29udGVudF9fcGxheWxpc3Q6ZXEoI2lkKSBsaSIKICAgIH0sCiAgICDmkJzntKI6ICd1bC5zdHVpLXZvZGxpc3QmJmxpO2EmJnRpdGxlOy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbDsudGV4dC1tdXRlZCYmVGV4dDthJiZocmVmOy50ZXh0LW11dGVkOmVxKC0xKSYmVGV4dCcsCgp9
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+iKseWtkOWKqOa8q1vmvKtdJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy5odWF6aWRtLmNvbScsCiAgICBjbGFzc19uYW1lOiAnVFbliqjmvKsm5Ymn5Zy6JueJueaRhCcsCiAgICBjbGFzc191cmw6ICcxJjImMycsCiAgICBzZWFyY2hVcmw6ICcvaW5kZXgucGhwL2FqYXgvc3VnZ2VzdD9taWQ9MSZ3ZD0qKiZsaW1pdD01MCcsCiAgICBzZWFyY2hVcmw6ICcvdm9kc2VhcmNoLyoqLS0tLS0tLS0tLWZ5cGFnZS0tLS5odG1sJywKICAgIHNlYXJjaGFibGU6IDIsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdNT0JJTEVfVUEnLAogICAgfSwKICAgIHVybDogJy9pbmRleC5waHAvYXBpL3ZvZCN0eXBlPWZ5Y2xhc3NmeWZpbHRlciZwYWdlPWZ5cGFnZScsCiAgICBmaWx0ZXJhYmxlOiAwLAogICAgZmlsdGVyX3VybDogJyZjbGFzcz17e2ZsLmNsYXNzfX0meWVhcj17e2ZsLnllYXJ9fSZsZXR0ZXI9e3tmbC5sZXR0ZXJ9fSZieT17e2ZsLmJ5fX0nLAogICAgZmlsdGVyOiB7CiAgICAgICAgIjEiOiBbewogICAgICAgICAgICAia2V5IjogImNsYXNzIiwKICAgICAgICAgICAgIm5hbWUiOiAi57G75Z6LIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuW8guS4lueVjCIsCiAgICAgICAgICAgICAgICAidiI6ICLlvILkuJbnlYwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueZvuWQiCIsCiAgICAgICAgICAgICAgICAidiI6ICLnmb7lkIgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWQjuWuqyIsCiAgICAgICAgICAgICAgICAidiI6ICLlkI7lrqsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueDreihgCIsCiAgICAgICAgICAgICAgICAidiI6ICLng63ooYAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIue6r+eIsSIsCiAgICAgICAgICAgICAgICAidiI6ICLnuq/niLEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuepv+i2iiIsCiAgICAgICAgICAgICAgICAidiI6ICLnqb/otooiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWlh+W5uyIsCiAgICAgICAgICAgICAgICAidiI6ICLlpYflubsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaImOaWlyIsCiAgICAgICAgICAgICAgICAidiI6ICLmiJjmlpciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWQjuWuqyIsCiAgICAgICAgICAgICAgICAidiI6ICLlkI7lrqsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaQnueskSIsCiAgICAgICAgICAgICAgICAidiI6ICLmkJ7nrJEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaXpeW4uCIsCiAgICAgICAgICAgICAgICAidiI6ICLml6XluLgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuenkeW5uyIsCiAgICAgICAgICAgICAgICAidiI6ICLnp5HlubsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuayu+aEiCIsCiAgICAgICAgICAgICAgICAidiI6ICLmsrvmhIgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuagoeWbrSIsCiAgICAgICAgICAgICAgICAidiI6ICLmoKHlm60iCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaBi+eIsSIsCiAgICAgICAgICAgICAgICAidiI6ICLmgYvniLEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWGkumZqSIsCiAgICAgICAgICAgICAgICAidiI6ICLlhpLpmakiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaOqOeQhiIsCiAgICAgICAgICAgICAgICAidiI6ICLmjqjnkIYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacuuaImCIsCiAgICAgICAgICAgICAgICAidiI6ICLmnLrmiJgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumfs+S5kCIsCiAgICAgICAgICAgICAgICAidiI6ICLpn7PkuZAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuiQneiOiSIsCiAgICAgICAgICAgICAgICAidiI6ICLokJ3ojokiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaBkOaAliIsCiAgICAgICAgICAgICAgICAidiI6ICLmgZDmgJYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaDiuaCmiIsCiAgICAgICAgICAgICAgICAidiI6ICLmg4rmgpoiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuazoemdoueVqiIsCiAgICAgICAgICAgICAgICAidiI6ICLms6HpnaLnlaoiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIua4uOaIj+aUuSIsCiAgICAgICAgICAgICAgICAidiI6ICLmuLjmiI/mlLkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWwj+ivtOaUuSIsCiAgICAgICAgICAgICAgICAidiI6ICLlsI/or7TmlLkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIua8q+eUu+aUuSIsCiAgICAgICAgICAgICAgICAidiI6ICLmvKvnlLvmlLkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuiFkCIsCiAgICAgICAgICAgICAgICAidiI6ICLohZAiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku70iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICBLine truncated
+1
View File
@@ -0,0 +1 @@
T2JqZWN0LmFzc2lnbihtdWJhbi5teHByby7kuoznuqcsIHsKICAgIHRhYl90ZXh0OiAnZGl2LS1zbWFsbCYmVGV4dCcsCn0pOwp2YXIgcnVsZSA9IHsKICAgIOaooeadvzogJ214cHJvJywKICAgIHRpdGxlOiAn5Ymn5ZyI5ZyIJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy5qcXF6eC5jYy8nLAogICAgdXJsOiAnL3ZvZHNob3cvaWQvZnljbGFzcy9wYWdlL2Z5cGFnZS5odG1sJywKICAgIHNlYXJjaFVybDogJy92b2RzZWFyY2gqKi9wYWdlL2Z5cGFnZS5odG1sJywKICAgIGNsYXNzX3BhcnNlOiAnLm5hdmJhci1pdGVtcyBsaTpndCgyKTpsdCg4KTthJiZUZXh0O2EmJmhyZWY7LiovKC4qPylcLmh0bWwnLAogICAgY2F0ZV9leGNsdWRlOiAn5LuK5pel5pu05pawfOeDreamnCcsCn0=
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+eci+S6huS5iCcsCiAgICBob3N0OiAnaHR0cHM6Ly93d3cua3Nrc2wuY29tJywKICAgIC8vIHVybDonL3Nob3cvZnljbGFzcy9wYWdlL2Z5cGFnZS5odG1sJywKICAgIHVybDogJy9zaG93L2Z5Y2xhc3NmeWZpbHRlci5odG1sJywKICAgIGZpbHRlcmFibGU6IDEsIC8v5piv5ZCm5ZCv55So5YiG57G7562b6YCJLAogICAgZmlsdGVyX3VybDogJ3t7ZmwuYXJlYX19e3tmbC5ieSBvciAiL2J5L3RpbWUifX17e2ZsLmNsYXNzfX0vcGFnZS9meXBhZ2V7e2ZsLnllYXJ9fScsCiAgICBmaWx0ZXI6IHsKICAgICAgICAiZHkiOiBbewogICAgICAgICAgICAia2V5IjogImFyZWEiLAogICAgICAgICAgICAibmFtZSI6ICLlnLDljLoiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Lit5Zu95aSn6ZmGIiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+S4reWbveWkp+mZhiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Lit5Zu96aaZ5rivIiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+S4reWbvemmmea4ryIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Lit5Zu95Y+w5rm+IiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+S4reWbveWPsOa5viIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi576O5Zu9IiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+e+juWbvSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pel5pysIiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+aXpeacrCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6Z+p5Zu9IiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+mfqeWbvSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6Iux5Zu9IiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+iLseWbvSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5rOV5Zu9IiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+azleWbvSIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiY2xhc3MiLAogICAgICAgICAgICAibmFtZSI6ICLliIbnsbsiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Zac5YmnIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/llpzliaciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueIseaDhSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv54ix5oOFIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmgZDmgJYiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aBkOaAliIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Yqo5L2cIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/liqjkvZwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuenkeW5uyIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv56eR5bm7IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLliafmg4UiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WJp+aDhSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6K2m5YyqIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/orabljKoiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueKr+e9qiIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv54qv572qIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLliqjnlLsiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WKqOeUuyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5aWH5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/lpYflubsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuatpuS+oCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5q2m5L6gIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhpLpmakiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WGkumZqSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5p6q5oiYIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/mnqrmiJgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaBkOaAliIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5oGQ5oCWIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmgqznlpEiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aCrOeWkSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oOK5oKaIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/mg4rmgpoiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIue7j+WFuCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv57uP5YW4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpnZLmmKUiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+mdkuaYpSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5paH6Im6IiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/mlofoiboiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWPpOijhSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5Y+k6KOFIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLljoblj7IiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WOhuWPsiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6L+Q5YqoIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/ov5DliqgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWGnOadkSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5Yac5p2RIgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05Lu9IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICALine truncated
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogIui3r+a8q+a8qyIsCiAgICBob3N0OiAiaHR0cDovL3d3dy5sbW0zNi5jb20iLAogICAgdXJsOiAiL3ZvZC9zaG93L2lkL2Z5Y2xhc3NmeWZpbHRlci5odG1sIiwKICAgIHNlYXJjaFVybDogJy92b2Qvc2VhcmNoL3BhZ2UvZnlwYWdlL3dkLyoqLmh0bWwnLAogICAgc2VhcmNoYWJsZTogMiwKICAgIHF1aWNrU2VhcmNoOiAwLAogICAgZmlsdGVyYWJsZTogMSwKICAgIGZpbHRlcjogewogICAgICAgICIzIjogW3sKICAgICAgICAgICAgImtleSI6ICLlubTku6MiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuabtOaXqSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE0LTE5ODAiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogIuaOkuW6jyIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDov5Hmm7TmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiL2J5L3RpbWUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOmrmOS6uuawlCIsCiAgICAgICAgICAgICAgICAidiI6ICIvYnkvaGl0cyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA6auY6K+E5YiGIiwKICAgICAgICAgICAgICAgICJ2IjogIi9ieS9zY29yZSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA5aSa54K56LWeIiwKICAgICAgICAgICAgICAgICJ2IjogIi9ieS91cCIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAiNCI6IFt7CiAgICAgICAgICAgICJrZXkiOiAi5bm05LujIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTYiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmm7Tml6kiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAxNC0xOTgwIgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICLmjpLluo8iLAogICAgICAgICAgICAibmFtZSI6ICLmjpLluo8iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5pyA6L+R5pu05pawIiwKICAgICAgICAgICAgICAgICJ2IjogIi9ieS90aW1lIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDpq5jkurrmsJQiLAogICAgICAgICAgICAgICAgInYiOiAiL2J5L2hpdHMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOmrmOivhOWIhiIsCiAgICAgICAgICAgICAgICAidiI6ICIvYnkvc2NvcmUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOWkmueCuei1niIsCiAgICAgICAgICAgICAgICAidiI6ICIvYnkvdXAiCiAgICAgICAgICAgIH1dCiAgICAgICAgfV0sCiAgICAgICAgIjUiOiBbewogICAgICAgICAgICAia2V5IjogIuW5tOS7oyIsCiAgICAgICAgICAgICJuYW1lIjogIuW5tOS7oyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICALine truncated
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+aHkuebmOaQnCcsCiAgICBob3N0OiAnaHR0cHM6Ly93d3cubHpwYW54LmNvbS8nLAogICAgaG9zdEpzOiAnJywKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoTGludXg7IEFuZHJvaWQgMTE7IFBpeGVsIDUpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS85MC4wLjQ0MzAuOTEgTW9iaWxlIFNhZmFyaS81MzcuMzYnLAogICAgfSwKICAgIOe8lueggTogJ3V0Zi04JywKICAgIHRpbWVvdXQ6IDUwMDAsCiAgICB1cmw6ICdodHRwczovL3d3dy5senBhbnguY29tL3NlYXJjaD9xPWZ5Y2xhc3MmZm9ybWF0PXZpZGVvJnBhZ2U9ZnlwYWdlJywKICAgIGZpbHRlcl91cmw6ICcnLAogICAgZGV0YWlsVXJsOiAnJywKICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vd3d3Lmx6cGFueC5jb20vc2VhcmNoP3E9KiomZm9ybWF0PXZpZGVvJnBhZ2U9ZnlwYWdlJywKICAgIHNlYXJjaGFibGU6IDEsCiAgICBxdWlja1NlYXJjaDogMSwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBjbGFzc19uYW1lOiAn5Ymn6ZuGJueUteW9sSbnn63liacm5Yqo5ryrJue7vOiJuicsCiAgICBjbGFzc191cmw6ICfliafpm4Ym55S15b2xJuefree9keWJpybliqjmvKsm57u86Im6JywKICAgIHByb3h5X3J1bGU6ICcnLAogICAgc25pZmZlcjogZmFsc2UsCiAgICBpc1ZpZGVvOiAnJywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBwYXJzZV91cmw6ICcnLAogICAgbGF6eTogImpzOlxuICAgICAgICBpbnB1dCA9ICdwdXNoOi8vJyArIGlucHV0O1xuICAgICIsCiAgICBsaW1pdDogOSwKICAgIGRvdWJsZTogZmFsc2UsCiAgICAvLyDmjqjojZA6ICcqJywKICAgIOS4gOe6pzogJ2pzOlxuICAgICAgICBsZXQgaHRtbCA9IGZldGNoKGlucHV0KTtcbiAgICAgICAgbGV0IGxpc3QgPSBwZGZhKGh0bWwsICJib2R5JiYuc2VtaS1zcGFjZS1tZWRpdW0tdmVydGljYWwiKTtcbiAgICAgICAgVk9EUyA9IGxpc3QubWFwKHggPT4ge1xuICAgICAgICAgICAgbGV0IHJlbWFya3MgPSBwZGZoKHgsICJkaXYmJmltZyYmYWx0Iik7XG4gICAgICAgICAgICAvLyDov4fmu6TmjonljIXlkKsi6L+F6Zu35LqR55uYIueahOWGheWuuVxuICAgICAgICAgICAgaWYocmVtYXJrcy5pbmNsdWRlcygi6L+F6Zu35LqR55uYIikpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2b2RfbmFtZTogcGRmaCh4LCAiZGl2JiZhJiZ0aXRsZSIpLFxuICAgICAgICAgICAgICAgIHZvZF9waWM6IFwnaHR0cHM6Ly93dzEuc2luYWltZy5jbi9tdzY5MC8wMDZmYU1uZGx5MWh0bWIxbTA4YWRqMzBlMjBlMnEzbS5qcGdcJyxcbiAgICAgICAgICAgICAgICB2b2RfcmVtYXJrczogcmVtYXJrcyxcbiAgICAgICAgICAgICAgICB2b2RfY29udGVudDogcmVtYXJrcyxcbiAgICAgICAgICAgICAgICB2b2RfaWQ6IHBkZmgoeCwgImRpdiYmYSYmaHJlZiIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmZpbHRlcih4ID0+IHggIT09IG51bGwpO1xuICAgICcsCiAgICDkuoznuqc6IHsKICAgICAgICB0aXRsZTogJ2gxJiZUZXh0JywKICAgICAgICBpbWc6ICdpbWcmJnNyYycsCiAgICAgICAgZGVzYzogJy5jYXJkLXRleHQ6ZXEoMikmJlRleHQ7Ozs7JywKICAgICAgICBjb250ZW50OiAnYm9keSYmLnNlbWktc3BhY2UtbG9vc2UtdmVydGljYWwmJmEmJmhyZWYnLAogICAgICAgIHRhYnM6ICJqczpUQUJTID0gWyfmh5Lnm5gnXSIsCiAgICAgICAgbGlzdHM6ICJqczpcbiAgICAgICAgICAgIExJU1RTID0gW107XG4gICAgICAgICAgICBsZXQgbGlzdHMxID0gcGRmYShodG1sLCAnYm9keSYmLnNlbWktc3BhY2UtbG9vc2UtdmVydGljYWwnKS5tYXAoaXQgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBfdHQgPSBwZGZoKGl0LCAnc3BhbiYmdGl0bGUnKTtcbiAgICAgICAgICAgICAgICBsZXQgX3V1ID0gcGRmaChpdCwgJ2EmJmhyZWYnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3R0ICsgJyQnICsgX3V1O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBMSVNUUy5wdXNoKGxpc3RzMSk7XG4gICAgICAgICIsCiAgICB9LAogICAg5pCc57SiOiAnanM6XG4gICAgICAgIGxldCBodG1sID0gZmV0Y2goaW5wdXQpO1xuICAgICAgICBsZXQgbGlzdCA9IHBkZmEoaHRtbCwgImJvZHkmJi5zZW1pLXNwYWNlLW1lZGl1bS12ZXJ0aWNhbCIpO1xuICAgICAgICBWT0RTID0gbGlzdC5tYXAoeCA9PiB7XG4gICAgICAgICAgICBsZXQgcmVtYXJrcyA9IHBkZmgoeCwgImRpdiYmaW1nJiZhbHQiKTtcbiAgICAgICAgICAgIC8vIOi/h+a7pOaOieWMheWQqyLov4Xpm7fkupHnm5gi55qE5YaF5a65XG4gICAgICAgICAgICBpZihyZW1hcmtzLmluY2x1ZGVzKCLov4Xpm7fkupHnm5giKSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHZvZF9uYW1lOiBwZGZoKHgsICJkaXYmJmEmJnRpdGxlIiksXG4gICAgICAgICAgICAgICAgdm9kX3BpYzogXCdodHRwczovL3d3MS5zaW5haW1nLmNuL213NjkwLzAwNmZhTW5kbHkxaHRtYjFtMDhhZGozMGUyMGUycTNtLmpwZ1wnLFxuICAgICAgICAgICAgICAgIHZvZF9yZW1hcmtzOiByZW1hcmtzLFxuICAgICAgICAgICAgICAgIHZvZF9jb250ZW50OiByZW1hcmtzLFxuICAgICAgICAgICAgICAgIHZvZF9pZDogcGRmaCh4LCAiZGl2JiZhJiZocmVmIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuZmlsdGVyKHggPT4geCAhPT0gbnVsbCk7XG4gICAgJywKICAgIGNhdGVfZXhjbHVkZTogJ+mmlumhtXznlZnoqIB8QVBQfOS4i+i9vXzotYTorq985paw6Ze7fOWKqOaAgScsCiAgICB0YWJfZXhjbHVkZTogJ+eMnOS9oHzllpzmrKJ85LiL6L29fOWJp+aDhXzmppx86K+E6K66JywKICAgIOexu+WeizogJ+W9seinhicsCiAgICBob21lVXJsOiAnaHR0cHM6Ly93d3cubHpwYW54LmNvbS8nLAogICAg5LqM57qn6K6/6Zeu5YmNOiAnJywKICAgIGVuY29kaW5nOiAndXRmLTgnLAogICAgc2VhcmNoX2VuY29kaW5nOiAnJywKICAgIOWbvueJh+adpea6kDogJycsCiAgICDlm77niYfmm7/mjaI6ICcnLAogICAgcGxheV9qc29uOiBbXSwKICAgIHBhZ2Vjb3VudDoge30sCiAgICB0YWJfcmVtb3ZlOiBbXSwKICAgIHRhYl9vcmRlcjogW10sCiAgICB0YWJfcmVuYW1lOiB7fSwKfQ==
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+eZvuW/meaXoOaenFvlrphdJywKICAgIGhvc3Q6ICdodHRwczovL3BpYW5rdS5hcGkuJTZkJTY3JTc0JTc2LmNvbScsCiAgICBob21lVXJsOiAnJywKICAgIC8vIHNlYXJjaFVybDogJ2h0dHBzOi8vbW9iaWxlc28uYnouJTZkJTY3JTc0JTc2LmNvbS9wYy9zZWFyY2gvdjE/cT0qKiZwbj1meXBhZ2UmcGM9MTAnLAogICAgLy8g5paw54mI5o6l5Y+j5pCc57Si5Y+Y5oiQdjLlubbkuJTliqDkuobpqozor4HvvIzom4vnlrwKICAgIC8vIHNlYXJjaFVybDogJ2h0dHBzOi8vbW9iaWxlc28uYnoubWd0di5jb20vcGMvc2VhcmNoL3YyP2FsbG93ZWRSQz0xJnNyYz1tZ3R2JmRpZD1jZjAzYjk1OS02OTQ1LTRjYjYtYmNiMy04ODc2MjQ1OTM1NGQmdGltZXN0YW1wPTIwMjQtMDYtMjFUMTUlM0E1MiUzQTU1WiZzaWduVmVyc2lvbj0xJnNpZ25Ob25jZT04ZGFlNjdhMWZhZmM0YmRhOTg0ZWM4ZGViNDc2NjZhZCZxPSoqJnBuPWZ5cGFnZSZwYz0xMCZjb3JyPTEmX3N1cHBvcnQ9MTAwMDAwMDAmc2lnbmF0dXJlPTRlMjdmZGRjZDJhMWE2NmQ2YzE3NjRlZDZiNzRiYWI3JywKICAgIC8vIOeUqOaJi+acuueahOWQp++8jOaQnuS4jeWumui/meS4qgogICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9tb2JpbGVzby5iei4lNmQlNjclNzQlNzYuY29tL21zaXRlL3NlYXJjaC92Mj9xPSoqJnBuPWZ5cGFnZSZwYz0xMCcsCiAgICBkZXRhaWxVcmw6ICdodHRwczovL3Bjd2ViLmFwaS5tZ3R2LmNvbS9lcGlzb2RlL2xpc3Q/cGFnZT0xJnNpemU9NTAmdmlkZW9faWQ9ZnlpZCcsCiAgICBzZWFyY2hhYmxlOiAyLAogICAgcXVpY2tTZWFyY2g6IDAsCiAgICBmaWx0ZXJhYmxlOiAxLAogICAgbXVsdGk6IDEsCiAgICAvLyDliIbnsbvpk77mjqVmeXBhZ2Xlj4LmlbDmlK/mjIEx5LiqKCnooajovr7lvI8KICAgIC8vIGh0dHBzOi8vd3d3Lm1ndHYuY29tL2xpYi8zP2xhc3RwPWxpc3RfaW5kZXgma2luZD1hMSZ5ZWFyPWFsbCZjaGFyZ2VJbmZvPWExJnNvcnQ9YzIKICAgIHVybDogJy9yaWRlci9saXN0L3Bjd2ViL3YzP3BsYXRmb3JtPXBjd2ViJmNoYW5uZWxJZD1meWNsYXNzJnBuPWZ5cGFnZSZwYz04MCZodWRvbmc9MSZfc3VwcG9ydD0xMDAwMDAwMCZraW5kPWExJmFyZWE9YTEnLAogICAgZmlsdGVyX3VybDogJ3llYXI9e3tmbC55ZWFyIG9yICJhbGwifX0mc29ydD17e2ZsLnNvcnQgb3IgImFsbCJ9fSZjaGFyZ2VJbmZvPXt7ZmwuY2hhcmdlSW5mbyBvciAiYWxsIn19JywKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdQQ19VQScKICAgIH0sCiAgICB0aW1lb3V0OiA1MDAwLAogICAgY2xhc3NfbmFtZTogJ+eUteinhuWJpybnlLXlvbEm57u86Im6JuWKqOa8qybnuqrlvZXniYcm5pWZ6IKyJuWwkeWEvycsCiAgICBjbGFzc191cmw6ICcyJjMmMSY1MCY1MSYxMTUmMTAnLAogICAgZmlsdGVyOiB7CiAgICAgICAgIjEiOiBbewogICAgICAgICAgICAia2V5IjogImNoYXJnZUluZm8iLAogICAgICAgICAgICAibmFtZSI6ICLku5jotLnnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YWN6LS5IiwKICAgICAgICAgICAgICAgICJ2IjogImIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJ2aXAiLAogICAgICAgICAgICAgICAgInYiOiAiYjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIlZJUOeUqOWIuCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5LuY6LS554K55pKtIiwKICAgICAgICAgICAgICAgICJ2IjogImI0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOaWsCIsCiAgICAgICAgICAgICAgICAidiI6ICJjMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogImMyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnn6XkuY7pq5jliIYiLAogICAgICAgICAgICAgICAgInYiOiAiYzQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOCIKICAgICAgICAgICAgfSwgewogICAgICAgICALine truncated
+1
View File
@@ -0,0 +1 @@
Ly8g572R5Z2A5Y+R5biD6aG1IGh0dHBzOi8vbW9saWNwLmNvbQptdWJhbi7pppblm74u5LqM57qnLnRpdGxlID0gJy50ZXh0LWZmZi0tZm9udCYmVGV4dDsuZGF0YS0tc3BhbjplcSgwKSYmVGV4dCc7Cm11YmFuLummluWbvi7kuoznuqcuZGVzYyA9ICcjcmF0aW5nJiZUZXh0Ozs7LmRhdGEtLXNwYW46ZXEoMSkmJlRleHQ7LmRhdGEtLXNwYW46ZXEoMikmJlRleHQnOwptdWJhbi7pppblm74u5LqM57qnLmNvbnRlbnQgPSAnLmRlc2MmJlRleHQnOwp2YXIgcnVsZSA9IHsKICAgIHRpdGxlOiAnSERtb2xpJywKICAgIOaooeadvzogJ+mmluWbvicsCiAgICBob3N0OiAnaHR0cHM6Ly93d3cuaGRtb2xpLnBybycsCiAgICAvLyB1cmw6Jy9tbGlzdC9meWNsYXNzLWZ5cGFnZS5odG1sJywKICAgIHVybDogJy9zZWFyY2gucGhwP3BhZ2U9ZnlwYWdlJnNlYXJjaHR5cGU9NSZ0aWQ9ZnlmaWx0ZXInLAogICAgZmlsdGVyYWJsZTogMSwgLy/mmK/lkKblkK/nlKjliIbnsbvnrZvpgIksCiAgICBmaWx0ZXJfdXJsOiAne3tmbC5jYXRlSWR9fSZqcT17e2ZsLmNsYXNzfX0mYXJlYT17e2ZsLmFyZWF9fSZ5ZWFyPXt7ZmwueWVhcn19JnN0YXRlPXt7Zmwuc3RhdGV9fSZvcmRlcj17e2ZsLmJ5fX0nLAogICAgZmlsdGVyOiB7CiAgICAgICAgIjEiOiBbewogICAgICAgICAgICAia2V5IjogImNhdGVJZCIsCiAgICAgICAgICAgICJuYW1lIjogIuexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Yqo5L2cIiwKICAgICAgICAgICAgICAgICJ2IjogIjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueIseaDhSIsCiAgICAgICAgICAgICAgICAidiI6ICI2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnp5HlubsiLAogICAgICAgICAgICAgICAgInYiOiAiNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oGQ5oCWIiwKICAgICAgICAgICAgICAgICJ2IjogIjgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaImOS6iSIsCiAgICAgICAgICAgICAgICAidiI6ICI5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLllpzliaciLAogICAgICAgICAgICAgICAgInYiOiAiMTAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIue6quW9leeJhyIsCiAgICAgICAgICAgICAgICAidiI6ICIxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Ymn5oOFIiwKICAgICAgICAgICAgICAgICJ2IjogIjEyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLniq/nvaoiLAogICAgICAgICAgICAgICAgInYiOiAiMzAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWKqOeUuyIsCiAgICAgICAgICAgICAgICAidiI6ICIzMiIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiY2xhc3MiLAogICAgICAgICAgICAibmFtZSI6ICLliafmg4UiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oiY5LqJIiwKICAgICAgICAgICAgICAgICJ2IjogIuaImOS6iSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oGQ5oCWIiwKICAgICAgICAgICAgICAgICJ2IjogIuaBkOaAliIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Ymn5oOFIiwKICAgICAgICAgICAgICAgICJ2IjogIuWJp+aDhSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi54ix5oOFIiwKICAgICAgICAgICAgICAgICJ2IjogIueIseaDhSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5a625bqtIiwKICAgICAgICAgICAgICAgICJ2IjogIuWutuW6rSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Yqx5b+XIiwKICAgICAgICAgICAgICAgICJ2IjogIuWKseW/lyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oKs55aRIiwKICAgICAgICAgICAgICAgICJ2IjogIuaCrOeWkSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Yqo5L2cIiwKICAgICAgICAgICAgICAgICJ2IjogIuWKqOS9nCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5aWH5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIuWlh+W5uyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YaS6ZmpIiwKICAgICAgICAgICAgICAgICJ2IjogIuWGkumZqSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Y6G5Y+yIiwKICAgICAgICAgICAgICAgICJ2IjogIuWOhuWPsiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oOK5oKaIiwKICAgICAgICAgICAgICAgICJ2IjogIuaDiuaCmiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6Z+z5LmQIiwKICAgICAgICAgICAgICAgICJ2IjogIumfs+S5kCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56eR5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIuenkeW5uyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi54qv572qIiwKICAgICAgICAgICAgICAgICJ2IjogIueKr+e9qiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6L+Q5YqoIiwKICAgICAgICAgICAgICAgICJ2IjogIui/kOWKqCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Zac5YmnIiwKICAgICAgICAgICAgICAgICJ2IjogIuWWnOWJpyIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiYXJlYSIsCiAgICAgICAgICAgICJuYW1lIjogIuWcsOWMuiIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnvo7lm70iLAogICAgICAgICAgICAgICAgInYiOiAi576O5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpn6nlm70iLAogICAgICAgICAgICAgICAgInYiOiAi6Z+p5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLoi7Hlm70iLAogICAgICAgICAgICAgICAgInYiOiAi6Iux5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLml6XmnKwiLAogICAgICAgICAgICAgICAgInYiOiAi5pel5pysIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLms7Dlm70iLAogICAgICAgICAgICAgICAgInYiOiAi5rOw5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLkuK3lm70iLAogICAgICAgICAgICAgICAgInYiOiAi5Lit5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhbbku5YiLAogICAgICAgICAgICAgICAgInYiOiAi5YW25LuWIgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsLine truncated
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+exs+aQnCcsCiAgICBob3N0OiAnaHR0cHM6Ly9taXNvc28uY2MvJywKICAgIGhvc3RKczogJycsCiAgICBoZWFkZXJzOiB7CiAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIDExOyBQaXhlbCA1KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTAuMC40NDMwLjkxIE1vYmlsZSBTYWZhcmkvNTM3LjM2JywKICAgIH0sCiAgICDnvJbnoIE6ICd1dGYtOCcsCiAgICB0aW1lb3V0OiA1MDAwLAogICAgdXJsOiAnaHR0cHM6Ly9taXNvc28uY2Mvc2VhcmNoP3E9ZnljbGFzcyZmb3JtYXQ9dmlkZW8mcGFnZT1meXBhZ2UnLAogICAgZmlsdGVyX3VybDogJycsCiAgICBkZXRhaWxVcmw6ICcnLAogICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9taXNvc28uY2Mvc2VhcmNoP3E9KiomZm9ybWF0PXZpZGVvJnBhZ2U9ZnlwYWdlJywKICAgIHNlYXJjaGFibGU6IDEsCiAgICBxdWlja1NlYXJjaDogMSwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBjbGFzc19uYW1lOiAnJywKICAgIGNsYXNzX3VybDogJycsCiAgICBwcm94eV9ydWxlOiAnJywKICAgIHNuaWZmZXI6IGZhbHNlLAogICAgaXNWaWRlbzogJycsCiAgICBwbGF5X3BhcnNlOiB0cnVlLAogICAgcGFyc2VfdXJsOiAnJywKICAgIGxhenk6ICJqczpcbiAgICAgICAgaW5wdXQgPSAncHVzaDovLycgKyBpbnB1dDtcbiAgICAiLAogICAgbGltaXQ6IDksCiAgICBkb3VibGU6IGZhbHNlLAogICAgLy8g5o6o6I2QOiAnKicsCiAgICDkuIDnuqc6ICdqczpcbiAgICAgICAgbGV0IGh0bWwgPSBmZXRjaChpbnB1dCk7XG4gICAgICAgIGxldCBsaXN0ID0gcGRmYShodG1sLCAiYm9keSYmLnNlbWktc3BhY2UtbWVkaXVtLXZlcnRpY2FsIik7XG4gICAgICAgIFZPRFMgPSBsaXN0Lm1hcCh4ID0+IHtcbiAgICAgICAgICAgIGxldCByZW1hcmtzID0gcGRmaCh4LCAiZGl2JiZpbWcmJmFsdCIpO1xuICAgICAgICAgICAgLy8g6L+H5ruk5o6J5YyF5ZCrIui/hembt+S6keebmCLnmoTlhoXlrrlcbiAgICAgICAgICAgIGlmKHJlbWFya3MuaW5jbHVkZXMoIui/hembt+S6keebmCIpKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdm9kX25hbWU6IHBkZmgoeCwgImRpdiYmYSYmdGl0bGUiKSxcbiAgICAgICAgICAgICAgICB2b2RfcGljOiBcJ2h0dHBzOi8vaXMyLXNzbC5tenN0YXRpYy5jb20vaW1hZ2UvdGh1bWIvUHVycGxlMTIzL3Y0LzQ5LzI1Lzk3LzQ5MjU5Nzc1LTFhNmItYmE2Mi0zYzI4LWIyN2JmNjcxMmFkZS9zb3VyY2UvMTAyNHgxMDI0YmIuanBnXCcsXG4gICAgICAgICAgICAgICAgdm9kX3JlbWFya3M6IHJlbWFya3MsXG4gICAgICAgICAgICAgICAgdm9kX2NvbnRlbnQ6IHJlbWFya3MsXG4gICAgICAgICAgICAgICAgdm9kX2lkOiBwZGZoKHgsICJkaXYmJmEmJmhyZWYiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KS5maWx0ZXIoeCA9PiB4ICE9PSBudWxsKTtcbiAgICAnLAogICAg5LqM57qnOiB7CiAgICAgICAgdGl0bGU6ICdoMSYmVGV4dCcsCiAgICAgICAgaW1nOiAnaW1nJiZzcmMnLAogICAgICAgIGRlc2M6ICcuY2FyZC10ZXh0OmVxKDIpJiZUZXh0Ozs7OycsCiAgICAgICAgY29udGVudDogJ2JvZHkmJi5zZW1pLXNwYWNlLWxvb3NlLXZlcnRpY2FsJiZhJiZocmVmJywKICAgICAgICB0YWJzOiAianM6VEFCUyA9IFsn57Gz5pCcJ10iLAogICAgICAgIGxpc3RzOiAianM6XG4gICAgICAgICAgICBMSVNUUyA9IFtdO1xuICAgICAgICAgICAgbGV0IGxpc3RzMSA9IHBkZmEoaHRtbCwgJ2JvZHkmJi5zZW1pLXNwYWNlLWxvb3NlLXZlcnRpY2FsJykubWFwKGl0ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgX3R0ID0gcGRmaChpdCwgJ3NwYW4mJnRpdGxlJyk7XG4gICAgICAgICAgICAgICAgbGV0IF91dSA9IHBkZmgoaXQsICdhJiZocmVmJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90dCArICckJyArIF91dTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgTElTVFMucHVzaChsaXN0czEpO1xuICAgICAgICAiLAogICAgfSwKICAgIOaQnOe0ojogJ2pzOlxuICAgICAgICBsZXQgaHRtbCA9IGZldGNoKGlucHV0KTtcbiAgICAgICAgbGV0IGxpc3QgPSBwZGZhKGh0bWwsICJib2R5JiYuc2VtaS1zcGFjZS1tZWRpdW0tdmVydGljYWwiKTtcbiAgICAgICAgVk9EUyA9IGxpc3QubWFwKHggPT4ge1xuICAgICAgICAgICAgbGV0IHJlbWFya3MgPSBwZGZoKHgsICJkaXYmJmltZyYmYWx0Iik7XG4gICAgICAgICAgICAvLyDov4fmu6TmjonljIXlkKsi6L+F6Zu35LqR55uYIueahOWGheWuuVxuICAgICAgICAgICAgaWYocmVtYXJrcy5pbmNsdWRlcygi6L+F6Zu35LqR55uYIikpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2b2RfbmFtZTogcGRmaCh4LCAiZGl2JiZhJiZ0aXRsZSIpLFxuICAgICAgICAgICAgICAgIHZvZF9waWM6IFwnaHR0cHM6Ly9pczItc3NsLm16c3RhdGljLmNvbS9pbWFnZS90aHVtYi9QdXJwbGUxMjMvdjQvNDkvMjUvOTcvNDkyNTk3NzUtMWE2Yi1iYTYyLTNjMjgtYjI3YmY2NzEyYWRlL3NvdXJjZS8xMDI0eDEwMjRiYi5qcGdcJyxcbiAgICAgICAgICAgICAgICB2b2RfcmVtYXJrczogcmVtYXJrcyxcbiAgICAgICAgICAgICAgICB2b2RfY29udGVudDogcmVtYXJrcyxcbiAgICAgICAgICAgICAgICB2b2RfaWQ6IHBkZmgoeCwgImRpdiYmYSYmaHJlZiIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmZpbHRlcih4ID0+IHggIT09IG51bGwpO1xuICAgICcsCiAgICBjYXRlX2V4Y2x1ZGU6ICfpppbpobV855WZ6KiAfEFQUHzkuIvovb186LWE6K6vfOaWsOmXu3zliqjmgIEnLAogICAgdGFiX2V4Y2x1ZGU6ICfnjJzkvaB85Zac5qyifOS4i+i9vXzliafmg4V85qacfOivhOiuuicsCiAgICDnsbvlnos6ICflvbHop4YnLAogICAgaG9tZVVybDogJ2h0dHBzOi8vbWlzb3NvLmNjLycsCiAgICDkuoznuqforr/pl67liY06ICcnLAogICAgZW5jb2Rpbmc6ICd1dGYtOCcsCiAgICBzZWFyY2hfZW5jb2Rpbmc6ICcnLAogICAg5Zu+54mH5p2l5rqQOiAnJywKICAgIOWbvueJh+abv+aNojogJycsCiAgICBwbGF5X2pzb246IFtdLAogICAgcGFnZWNvdW50OiB7fSwKICAgIHRhYl9yZW1vdmU6IFtdLAogICAgdGFiX29yZGVyOiBbXSwKICAgIHRhYl9yZW5hbWU6IHt9LAp9
+1
View File
@@ -0,0 +1 @@
bXViYW4udmZlZC7kuoznuqcudGl0bGUgPSAnaDEmJlRleHQ7LmZlZC1jb2wtbWQzLS1zcGFuOmVxKDApJiZUZXh0JzsKbXViYW4udmZlZC7kuoznuqcuZGVzYyA9ICcuZmVkLWNvbC1tZDM6ZXEoMykmJlRleHQ7OzsuZmVkLWNvbC1tZDY6ZXEoMCkmJlRleHQ7LmZlZC1jb2wtbWQ2LS1zcGFuOmVxKDEpJiZUZXh0JzsKdmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+WOu+eci+WQpycsCiAgICDmqKHmnb86ICd2ZmVkJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy5rOWRtLmNvbScsCiAgICAvLyB1cmw6ICcvaW5kZXgucGhwL3ZvZC9zaG93L2lkL2Z5Y2xhc3MvcGFnZS9meXBhZ2UuaHRtbCcsCiAgICB1cmw6ICcvaW5kZXgucGhwL3ZvZC9zaG93L2lkL2Z5Y2xhc3NmeWZpbHRlci5odG1sJywKICAgIGZpbHRlcmFibGU6IDEsIC8v5piv5ZCm5ZCv55So5YiG57G7562b6YCJLAogICAgZmlsdGVyX3VybDogJ3t7ZmwuYXJlYX19e3tmbC5ieX19e3tmbC5jbGFzc319L3BhZ2UvZnlwYWdle3tmbC55ZWFyfX0nLAogICAgZmlsdGVyOiB7CiAgICAgICAgIjMzIjogW3sKICAgICAgICAgICAgImtleSI6ICJjbGFzcyIsCiAgICAgICAgICAgICJuYW1lIjogIuexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmkJ7nrJEiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aQnueskSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi57uP5YW4IiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/nu4/lhbgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueDreihgCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv54Ot6KGAIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlgqzms6oiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WCrOazqiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5rK75oSIIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/msrvmhIgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueMjuWlhyIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv54yO5aWHIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlirHlv5ciLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WKseW/lyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oiY5paXIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/miJjmlpciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWQjuWuqyIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5ZCO5a6rIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnLrmiJgiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+acuuaImCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oGL54ixIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/mgYvniLEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueZvuWQiCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv55m+5ZCIIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnp5HlubsiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+enkeW5uyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5aWH5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/lpYflubsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaOqOeQhiIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5o6o55CGIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmoKHlm60iLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+agoeWbrSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6L+Q5YqoIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/ov5DliqgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumtlOazlSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv6a2U5rOVIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLljoblj7IiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WOhuWPsiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Lyq5aiYIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/kvKrlqJgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIue+juWwkeWlsyIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv576O5bCR5aWzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLokJ3ojokiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+iQneiOiSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Lqy5a2QIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/kurLlrZAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumdkuaYpSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv6Z2S5pilIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhpLpmakiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WGkumZqSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56ue5oqAIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/nq57mioAiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICALine truncated
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+Wlh+exs+WKqOa8qycsCiAgICBob3N0OiAnaHR0cDovL3d3dy5xaW1pcWltaS5uZXQnLAogICAgdXJsOiAnL3Nob3cvZnljbGFzc2Z5ZmlsdGVyLmh0bWwnLAogICAgZmlsdGVyYWJsZTogMSwgLy/mmK/lkKblkK/nlKjliIbnsbvnrZvpgIksCiAgICBmaWx0ZXJfdXJsOiAne3tmbC5hcmVhfX17e2ZsLmJ5fX17e2ZsLmNsYXNzfX17e2ZsLmxldHRlcn19L3BhZ2UvZnlwYWdle3tmbC55ZWFyfX0nLAogICAgZmlsdGVyOiB7CiAgICAgICAgInhpbmZhbiI6IFt7CiAgICAgICAgICAgICJrZXkiOiAiY2xhc3MiLAogICAgICAgICAgICAibmFtZSI6ICLnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YaS6ZmpIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/lhpLpmakiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueDreihgCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv54Ot6KGAIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlpYflubsiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+Wlh+W5uyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oGL54ixIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/mgYvniLEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuagoeWbrSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5qCh5ZutIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlkI7lrqsiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WQjuWuqyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pCe56yRIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/mkJ7nrJEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuayu+aEiCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5rK75oSIIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnpZ7prZQiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+elnumtlCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6a2U5rOVIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/prZTms5UiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueZvuWQiCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv55m+5ZCIIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmjqjnkIYiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aOqOeQhiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56eR5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/np5HlubsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuernuaKgCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv56ue5oqAIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmgqznlpEiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aCrOeWkSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6Z2S5pilIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/pnZLmmKUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaImOS6iSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5oiY5LqJIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLokJ3ojokiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+iQneiOiSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6a2U5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/prZTlubsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaImOaWlyIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5oiY5paXIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLml6XluLgiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aXpeW4uCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiYXJlYSIsCiAgICAgICAgICAgICJuYW1lIjogIuWcsOWMuiIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLml6XmnKwiLAogICAgICAgICAgICAgICAgInYiOiAiL2FyZWEv5pel5pysLyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5aSn6ZmGIiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+S4reWbvS8iCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuasp+e+jiIsCiAgICAgICAgICAgICAgICAidiI6ICIvYXJlYS/mrKfnvo4vIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpn6nlm70iLAogICAgICAgICAgICAgICAgInYiOiAiL2FyZWEv6Z+p5Zu9LyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5riv5Y+wIiwKICAgICAgICAgICAgICAgICJ2IjogIi9hcmVhL+a4r+WPsC8iCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku70iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICILine truncated
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflvbHop4YnLAogICAgdGl0bGU6ICfmgJ3lj6TlvbHop4YnLAogICAgaG9zdDogJ2h0dHBzOi8vc2lndXl5LmNuJywKICAgIHVybDogJy9zaG93L2Z5Y2xhc3MtLS0tLS0tLWZ5cGFnZS0tLS8nLAogICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9zaWd1eXkuY24vc2VhcmNoLy0tLS0tLS0tLS0tLS0vP3dkPSoqJywKICAgIHNlYXJjaGFibGU6IDIsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIHRpbWVvdXQ6IDUwMDAsCiAgICBwbGF5X3BhcnNlOiB0cnVlLAogICAgZmlsdGVyYWJsZTogMCwKICAgIGNsYXNzX25hbWU6ICfnlLXlvbEm55S16KeG5YmnJue7vOiJuibliqjmvKsnLAogICAgY2xhc3NfdXJsOiAnMSYyJjMmNCcsCiAgICBsYXp5OiBganM6CiAgICAgICAgICAgIGlmKC9cXC4obTN1OHxtcDQpLy50ZXN0KGlucHV0KSl7CiAgICAgICAgICAgICAgICBpbnB1dCA9IHtwYXJzZTowLHVybDppbnB1dH0KICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICBpZihydWxlLnBhcnNlX3VybC5zdGFydHNXaXRoKCdqc29uOicpKXsKICAgICAgICAgICAgICAgICAgICBsZXQgcHVybCA9IHJ1bGUucGFyc2VfdXJsLnJlcGxhY2UoJ2pzb246JywnJykraW5wdXQ7CiAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSByZXF1ZXN0KHB1cmwpOwogICAgICAgICAgICAgICAgICAgIGlucHV0ID0ge3BhcnNlOjAsdXJsOkpTT04ucGFyc2UoaHRtbCkudXJsfQogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQ9IHJ1bGUucGFyc2VfdXJsK2lucHV0OyAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYCwKICAgIGhlYWRlcnM6IHsKICAgICAgICAiVXNlci1BZ2VudCI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTMxLjAuMC4wIFNhZmFyaS81MzcuMzYgRWRnLzEzMS4wLjAuMCIsCiAgICB9LAogICAg5o6o6I2QOiAnKicsCiAgICDkuIDnuqc6ICcuY29udGFpbmVyIC5mbGV4LmRlc2t0b3AtaG92ZXItZWZmZWN0O3NwYW4mJlRleHQ7aW1nJiZkYXRhLW9yaWdpbmFsO3AudHJ1bmNhdGUmJlRleHQ7YSYmaHJlZicsCiAgICDkuoznuqc6IHsKICAgICAgICB0aXRsZTogJy5wLTMubW9iaWxlJiZUZXh0JywKICAgICAgICBpbWc6ICdpbWcmJmRhdGEtb3JpZ2luYWwnLAogICAgICAgIGRlc2M6ICcudGV4dC1zbS5weS0xJiZUZXh0JywKICAgICAgICBjb250ZW50OiAnLnRleHQtc2Vjb25kYXJ5JiZUZXh0JywKICAgICAgICB0YWJzOiAnLmZsZXguZmxleC1yb3cuZ2FwLTEuaXRlbXMtY2VudGVyJywKICAgICAgICBsaXN0czogJy5mbGV4LmZsZXgtY29sdW1uLm92ZXJmbG93LWF1dG8ubm8tc2Nyb2xsYmFyJiZsaScsCiAgICAgICAgdGFiX3RleHQ6ICdib2R5JiZUZXh0JywKICAgICAgICBsaXN0X3RleHQ6ICdhJiZUZXh0JywKICAgICAgICBsaXN0X3VybDogJ2EmJmhyZWYnLAogICAgfSwKICAgIGRvdWJsZTogZmFsc2UsCiAgICDmkJzntKI6ICcuY29sLWxnLTYuY29sLW1kLTEyLm10LTIubWItMi5jdXJzb3ItcG9pbnRlcjsudG9waWMtZGV0YWlscy10aXRsZS1zdWIudGV4dC1zZWNvbmRhcnkmJlRleHQ7aW1nJiZkYXRhLW9yaWdpbmFsOy50b3BpYy1kZXRhaWxzLXRpdGxlJiZUZXh0O2EmJmhyZWYnLAp9
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+WPjOWtkOaYnycsCiAgICBob3N0OiAnaHR0cHM6Ly8xLnN0YXIyLmNuJywKICAgIGhvc3RKczogJycsCiAgICBoZWFkZXJzOiB7CiAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIDExOyBQaXhlbCA1KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTAuMC40NDMwLjkxIE1vYmlsZSBTYWZhcmkvNTM3LjM2JywKICAgIH0sCiAgICDnvJbnoIE6ICd1dGYtOCcsCiAgICB0aW1lb3V0OiA1MDAwLAogICAgdXJsOiAnaHR0cHM6Ly8xLnN0YXIyLmNuL2Z5Y2xhc3MvJywKICAgIGZpbHRlcl91cmw6ICcnLAogICAgZGV0YWlsVXJsOiAnJywKICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vMS5zdGFyMi5jbi9zZWFyY2gvP2tleXdvcmQ9KionLAogICAgc2VhcmNoYWJsZTogMSwKICAgIHF1aWNrU2VhcmNoOiAxLAogICAgZmlsdGVyYWJsZTogMSwKICAgIGNsYXNzX25hbWU6ICfnn63liacm5Zu95YmnJue7vOiJuibnlLXlvbEm6Z+p5pelJuiLsee+jiblpJbliacm5Yqo5ryrJywKICAgIGNsYXNzX3VybDogJ2RqJmp1Jnp5Jm12JnJoJnltJndqJmRtJywKICAgIHByb3h5X3J1bGU6ICcnLAogICAgc25pZmZlcjogZmFsc2UsCiAgICBpc1ZpZGVvOiAnJywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBwYXJzZV91cmw6ICcnLAogICAgbGF6eTogImpzOlxuICAgICAgICBpbnB1dCA9ICdwdXNoOi8vJyArIGlucHV0O1xuICAgICIsCiAgICBsaW1pdDogOSwKICAgIGRvdWJsZTogZmFsc2UsCiAgICDmjqjojZA6ICcqJywKICAgIOS4gOe6pzogJ2pzOlxuICAgICAgICBsZXQgaHRtbCA9IGZldGNoKGlucHV0KTtcbiAgICAgICAgbGV0IGxpc3QgPSBwZGZhKGh0bWwsICIuZXJ4LWxpc3QmJmxpIik7XG4gICAgICAgIFZPRFMgPSBsaXN0Lm1hcCh4ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdm9kX25hbWU6IHBkZmgoeCwgImEmJlRleHQiKSxcbiAgICAgICAgICAgICAgICB2b2RfcGljOiBcJ2h0dHBzOi8vZnMtaW0ta2VmdS43bW9vci1mczEuY29tL2x5LzRkMmMzZjAwLTdkNGMtMTFlNS1hZjE1LTQxYmY2M2FlNGVhMC8xNzQ2MjY5ODI3MTIwLzEuanBlZ1wnLFxuICAgICAgICAgICAgICAgIHZvZF9yZW1hcmtzOiBwZGZoKHgsICJhJiZUZXh0IiksXG4gICAgICAgICAgICAgICAgdm9kX2NvbnRlbnQ6IHBkZmgoeCwgImEmJlRleHQiKSxcbiAgICAgICAgICAgICAgICB2b2RfaWQ6IHBkZmgoeCwgImEmJmhyZWYiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAnLAogICAg5LqM57qnOiB7CiAgICAgICAgdGl0bGU6ICdoMSYmVGV4dCcsCiAgICAgICAgaW1nOiAnaHR0cHM6Ly9mcy1pbS1rZWZ1Ljdtb29yLWZzMS5jb20vbHkvNGQyYzNmMDAtN2Q0Yy0xMWU1LWFmMTUtNDFiZjYzYWU0ZWEwLzE3NDYyNjk4MjcxMjAvMS5qcGVnJywKICAgICAgICBkZXNjOiAnLmNhcmQtdGV4dDplcSgyKSYmVGV4dDs7OzsnLAogICAgICAgIGNvbnRlbnQ6ICcuY2FyZC10ZXh0OmVxKDApJiZUZXh0JywKICAgICAgICB0YWJzOiAianM6VEFCUyA9IFsn5Y+M5pifJ10iLAogICAgICAgIGxpc3RzOiAianM6XG4gICAgICAgICAgICBMSVNUUyA9IFtdO1xuICAgICAgICAgICAgbGV0IGxpc3RzMSA9IHBkZmEoaHRtbCwgJy5kbGlwcC1jb250LWJkJykubWFwKGl0ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgX3R0ID0gcGRmaChpdCwgJ2EmJlRleHQnKTtcbiAgICAgICAgICAgICAgICBsZXQgX3V1ID0gcGRmaChpdCwgJ2EmJmhyZWYnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3R0ICsgJyQnICsgX3V1O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBMSVNUUy5wdXNoKGxpc3RzMSk7XG4gICAgICAgICIsCiAgICB9LAogICAg5pCc57SiOiAnanM6XG4gICAgICAgIGxldCBodG1sID0gZmV0Y2goaW5wdXQpO1xuICAgICAgICBsZXQgbGlzdCA9IHBkZmEoaHRtbCwgIi5lcngtbGlzdCYmbGkiKTtcbiAgICAgICAgVk9EUyA9IGxpc3QubWFwKHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2b2RfbmFtZTogcGRmaCh4LCAiYSYmVGV4dCIpLFxuICAgICAgICAgICAgICAgIHZvZF9waWM6IFwnaHR0cHM6Ly9mcy1pbS1rZWZ1Ljdtb29yLWZzMS5jb20vbHkvNGQyYzNmMDAtN2Q0Yy0xMWU1LWFmMTUtNDFiZjYzYWU0ZWEwLzE3NDYyNjk4MjcxMjAvMS5qcGVnXCcsIFxuICAgICAgICAgICAgICAgIHZvZF9yZW1hcmtzOiBwZGZoKHgsICJhJiZUZXh0IiksXG4gICAgICAgICAgICAgICAgdm9kX2NvbnRlbnQ6IHBkZmgoeCwgImEmJlRleHQiKSxcbiAgICAgICAgICAgICAgICB2b2RfaWQ6IHBkZmgoeCwgImEmJmhyZWYiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAnLAogICAgY2F0ZV9leGNsdWRlOiAn6aaW6aG1fOeVmeiogHxBUFB85LiL6L29fOi1hOiur3zmlrDpl7t85Yqo5oCBJywKICAgIHRhYl9leGNsdWRlOiAn54yc5L2gfOWWnOasonzkuIvovb185Ymn5oOFfOamnHzor4TorronLAogICAg57G75Z6LOiAn5b2x6KeGJywKICAgIGhvbWVVcmw6ICdodHRwczovLzEuc3RhcjIuY24nLAogICAg5LqM57qn6K6/6Zeu5YmNOiAnJywKICAgIGVuY29kaW5nOiAndXRmLTgnLAogICAgc2VhcmNoX2VuY29kaW5nOiAnJywKICAgIOWbvueJh+adpea6kDogJycsCiAgICDlm77niYfmm7/mjaI6ICcnLAogICAgcGxheV9qc29uOiBbXSwKICAgIHBhZ2Vjb3VudDoge30sCiAgICB0YWJfcmVtb3ZlOiBbXSwKICAgIHRhYl9vcmRlcjogW10sCiAgICB0YWJfcmVuYW1lOiB7fSwKfQ==
+1
View File
@@ -0,0 +1 @@
Z2xvYmFsVGhpcy52b2QxID0gZnVuY3Rpb24oaWRzKSB7CiAgICBsZXQgaHRtbDEgPSByZXF1ZXN0KCdodHRwczovL3BiYWNjZXNzLnZpZGVvLnFxLmNvbS90cnBjLnZpZGVvc2VhcmNoLm1vYmlsZV9zZWFyY2guTXVsdGlUZXJtaW5hbFNlYXJjaC9NYlNlYXJjaD92cGxhdGZvcm09MicsIHsKICAgICAgICBib2R5OiB7CiAgICAgICAgICAgICJ2ZXJzaW9uIjogIjI1MDQyMjAxIiwKICAgICAgICAgICAgImNsaWVudFR5cGUiOiAxLAogICAgICAgICAgICAiZmlsdGVyVmFsdWUiOiAiIiwKICAgICAgICAgICAgInV1aWQiOiAiQjFFNTA4NDctRDI1Ri00QzRCLUJCQTAtMzZGMDA5MzQ4N0Y2IiwKICAgICAgICAgICAgInJldHJ5IjogMCwKICAgICAgICAgICAgInF1ZXJ5IjogaWRzLAogICAgICAgICAgICAicGFnZW51bSI6IDAsCiAgICAgICAgICAgICJpc1ByZWZldGNoIjogdHJ1ZSwKICAgICAgICAgICAgInBhZ2VzaXplIjogMzAsCiAgICAgICAgICAgICJxdWVyeUZyb20iOiAwLAogICAgICAgICAgICAic2VhcmNoRGF0YWtleSI6ICIiLAogICAgICAgICAgICAidHJhbnNJbmZvIjogIiIsCiAgICAgICAgICAgICJpc25lZWRRYyI6IHRydWUsCiAgICAgICAgICAgICJwcmVRaWQiOiAiIiwKICAgICAgICAgICAgImFkQ2xpZW50SW5mbyI6ICIiLAogICAgICAgICAgICAiZXh0cmFJbmZvIjogewogICAgICAgICAgICAgICAgImlzTmV3TWFya0xhYmVsIjogIjEiLAogICAgICAgICAgICAgICAgIm11bHRpX3Rlcm1pbmFsX3BjIjogIjEiLAogICAgICAgICAgICAgICAgInRoZW1lVHlwZSI6ICIxIiwKICAgICAgICAgICAgICAgICJzdWdSZWxhdGVkSWRzIjogInt9IiwKICAgICAgICAgICAgICAgICJhcHBWZXJzaW9uIjogIiIKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTguMC40NzU4LjEzOSBTYWZhcmkvNTM3LjM2JywKICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICAgICAgJ29yaWdpbic6ICdodHRwczovL3YucXEuY29tJywKICAgICAgICAgICAgJ3JlZmVyZXInOiAnaHR0cHM6Ly92LnFxLmNvbS8nCiAgICAgICAgfSwKICAgICAgICAnbWV0aG9kJzogJ1BPU1QnCiAgICB9LCB0cnVlKTsKICAgIHJldHVybiBodG1sMTsKfQp2YXIgcnVsZSA9IHsKICAgIHRpdGxlOiAn6IW+5LqR6am+6Zu+W+WumF0nLAogICAgaG9zdDogJ2h0dHBzOi8vdi4lNzElNzEuY29tJywKICAgIC8vIGhvbWVVcmw6ICcveC9idS9wYWdlc2hlZXQvbGlzdD9fYWxsPTEmYXBwZW5kPTEmY2hhbm5lbD1jaG9pY2UmbGlzdHBhZ2U9MSZvZmZzZXQ9MCZwYWdlc2l6ZT0yMSZpYXJlYT0tMSZzb3J0PTE4JywKICAgIGhvbWVVcmw6ICcveC9idS9wYWdlc2hlZXQvbGlzdD9fYWxsPTEmYXBwZW5kPTEmY2hhbm5lbD1jYXJ0b29uJmxpc3RwYWdlPTEmb2Zmc2V0PTAmcGFnZXNpemU9MjEmaWFyZWE9LTEmc29ydD0xOCcsCiAgICBkZXRhaWxVcmw6ICdodHRwczovL25vZGUudmlkZW8uJTcxJTcxLmNvbS94L2FwaS9mbG9hdF92aW5mbzI/Y2lkPWZ5aWQnLAogICAgc2VhcmNoVXJsOiAnL3gvc2VhcmNoLz9xPSoqJnN0YWc9ZnlwYWdlJywKICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vcGJhY2Nlc3MudmlkZW8uJTcxJTcxLmNvbS90cnBjLnZpZGVvc2VhcmNoLnNtYXJ0Ym94U2VydmVyLkh0dHBSb3VudFJlY2FsbC9TbWFydGJveD9xdWVyeT0qKiZhcHBJRD0zMTcyJmFwcEtleT1sR2hGSVBlRDNIc085eEVwJnBhZ2VOdW09KGZ5cGFnZS0xKSZwYWdlU2l6ZT0xMCcsCiAgICBzZWFyY2hVcmw6ICcqKicsCiAgICBzZWFyY2hhYmxlOiAyLAogICAgZmlsdGVyYWJsZTogMSwKICAgIG11bHRpOiAxLAogICAgLy8gdXJsOicvY2hhbm5lbC9meWNsYXNzP2xpc3RwYWdlPWZ5cGFnZSZjaGFubmVsPWZ5Y2xhc3Mmc29ydD0xOCZfYWxsPTEnLAogICAgdXJsOiAnL3gvYnUvcGFnZXNoZWV0L2xpc3Q/X2FsbD0xJmFwcGVuZD0xJmNoYW5uZWw9ZnljbGFzcyZsaXN0cGFnZT0xJm9mZnNldD0oKGZ5cGFnZS0xKSoyMSkmcGFnZXNpemU9MjEmaWFyZWE9LTEnLAogICAgLy8gZmlsdGVyX3VybDogJ3NvcnQ9e3tmbC5zb3J0IG9yIDE4fX0meWVhcj17e2ZsLnllYXJ9fSZwYXk9e3tmbC5wYXl9fScsCiAgICAvLyBmaWx0ZXJfdXJsOiAnc29ydD17e2ZsLnNvcnQgb3IgNzV9fSZ5ZWFyPXt7ZmwueWVhcn19JnBheT17e2ZsLnBheX19JywKICAgIGZpbHRlcl91cmw6ICdzb3J0PXt7Zmwuc29ydCBvciA3NX19Jml5ZWFyPXt7ZmwuaXllYXJ9fSZ5ZWFyPXt7ZmwueWVhcn19Jml0eXBlPXt7ZmwudHlwZX19JmlmZWF0dXJlPXt7ZmwuZmVhdHVyZX19JmlhcmVhPXt7ZmwuYXJlYX19Jml0cmFpbGVyPXt7ZmwuaXRyYWlsZXJ9fSZnZW5kZXI9e3tmbC5zZXh9fScsCiAgICAvLyBmaWx0ZXI6ICdINHNJQUFBQUFBQUFBKzJVelVyRFFCQ0EzMlhPRVpMVUpyR3ZJajBzYWFEQk5pc3hCa0lKQ0czRmk0b2VwSWczRVFvaWVxaUgrdk0yM1pxK2hSdWFaTFo0Y2U5ejIvbG1kMmQyK05nUitIMGUrZ0YwRGtkd0ZHVFFnUk1lSjJCQXhJYVN3dnJxVm54Y3l6aGxnOVB0dHFqRUQyYy80NWNTeThEeUlEY2F2cjU3cS9sQnc4WFRkL0U2cWJuVDhNM3pURnljNzJSdEMvSnVtZCsyYzh3eTdLWjRueFNMNVo5dXhIUytHYytyODNzV1ZwMWVWdHRsNERsdWsxaDkzWXViV1pWd2R1cGxBWXV4b0ZndVZwK1AveTVvbS9aKy9ZeHlxZkFXOHBiS2JlUzJ5aTNrTy9lYnlFMkZ5MW5YWEJtN0REemtuc3BkNUs3S0hlU095dHZJMitYQXVnWWtLV2xEMm1ock0rUnBTQjhPbWFOdlRzcmlNRWd5Y29mYzBYYkhaM0hDZVVUdWtEdjY3dlREUVkvTUlYTzB6ZWx4bjVNNEpJNm1PUGt2Z3N3U0VwZ1BBQUE9JywKICAgIGZpbHRlcjogewogICAgICAgICJjaG9pY2UiOiBbewogICAgICAgICAgICAia2V5IjogInNvcnQiLAogICAgICAgICAgICAibmFtZSI6ICLmjpLluo8iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogIjc1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiODMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWlveivhCIsCiAgICAgICAgICAgICAgICAidiI6ICI4MSIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiaXllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIi0xIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICALine truncated
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+S8mOmFt1vlrphdJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy4lNzklNmYlNzUlNmIlNzUuY29tJywKICAgIGhvbWVVcmw6ICcnLAogICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9zZWFyY2guJTc5JTZmJTc1JTZiJTc1LmNvbS9hcGkvc2VhcmNoP3BnPWZ5cGFnZSZrZXl3b3JkPSoqJywKICAgIHNlYXJjaGFibGU6IDIsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBtdWx0aTogMSwKICAgIHVybDogJy9jYXRlZ29yeS9kYXRhP29wdGlvblJlZnJlc2g9MSZwYWdlTm89ZnlwYWdlJnBhcmFtcz1meWZpbHRlcicsCiAgICBmaWx0ZXJfdXJsOiAne3tmbH19JywKICAgIGZpbHRlcjogewogICAgICAgICLnlLXop4bliaciOiBbewogICAgICAgICAgICAia2V5IjogIm1haW5fYXJlYSIsCiAgICAgICAgICAgICJuYW1lIjogIuWFqOmDqOWcsOWMuiIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6jlnLDljLoiLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhoXlnLDliaciLAogICAgICAgICAgICAgICAgInYiOiAi5Lit5Zu95YaF5ZywIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmuK/liaciLAogICAgICAgICAgICAgICAgInYiOiAi5Lit5Zu96aaZ5rivIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlj7DliaciLAogICAgICAgICAgICAgICAgInYiOiAi5Lit5Zu95Y+w5rm+IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpn6nliaciLAogICAgICAgICAgICAgICAgInYiOiAi6Z+p5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnvo7liaciLAogICAgICAgICAgICAgICAgInYiOiAi576O5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLoi7HliaciLAogICAgICAgICAgICAgICAgInYiOiAi6Iux5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLml6XliaciLAogICAgICAgICAgICAgICAgInYiOiAi5pel5pysIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLms7DliaciLAogICAgICAgICAgICAgICAgInYiOiAi5rOw5Zu9IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ0YWdzIiwKICAgICAgICAgICAgIm5hbWUiOiAi5YWo6YOo57G75Z6LIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqOexu+WeiyIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumdkuaYpSIsCiAgICAgICAgICAgICAgICAidiI6ICLpnZLmmKUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWPpOijhSIsCiAgICAgICAgICAgICAgICAidiI6ICLlj6Too4UiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueIseaDhSIsCiAgICAgICAgICAgICAgICAidiI6ICLniLHmg4UiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumDveW4giIsCiAgICAgICAgICAgICAgICAidiI6ICLpg73luIIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWWnOWJpyIsCiAgICAgICAgICAgICAgICAidiI6ICLllpzliacs5pCe56yRIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmiJjkuokiLAogICAgICAgICAgICAgICAgInYiOiAi5oiY5LqJIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhpvml4UiLAogICAgICAgICAgICAgICAgInYiOiAi5Yab5peFIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLosI3miJgiLAogICAgICAgICAgICAgICAgInYiOiAi6LCN5oiYIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlgbblg48iLAogICAgICAgICAgICAgICAgInYiOiAi5YG25YOPIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLorabljKoiLAogICAgICAgICAgICAgICAgInYiOiAi6K2m5YyqIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhpLpmakiLAogICAgICAgICAgICAgICAgInYiOiAi5YaS6ZmpIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnqb/otooiLAogICAgICAgICAgICAgICAgInYiOiAi56m/6LaKIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLku5nkvqAiLAogICAgICAgICAgICAgICAgInYiOiAi5LuZ5L6gIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmrabkvqAiLAogICAgICAgICAgICAgICAgInYiOiAi5q2m5L6gIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmgqznlpEiLAogICAgICAgICAgICAgICAgInYiOiAi5oKs55aRIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnvarmoYgiLAogICAgICAgICAgICAgICAgInYiOiAi572q5qGIIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlrrbluq0iLAogICAgICAgICAgICAgICAgInYiOiAi5a625bqtIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLljoblj7IiLAogICAgICAgICAgICAgICAgInYiOiAi5Y6G5Y+yIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlubTku6MiLAogICAgICAgICAgICAgICAgInYiOiAi5bm05LujIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhpzmnZEiLAogICAgICAgICAgICAgICAgInYiOiAi5Yac5p2RIgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5YWo6YOo5bm05Lu9IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqOW5tOS7vSIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwLine truncated
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+W8guS4lueVjOWKqOa8qycsCiAgICBob3N0OiAnaHR0cHM6Ly93d3cuZG1taWt1LmNvbS8nLAogICAgaG9tZVVybDogJy9pbmRleC5waHAvdm9kL3Nob3cvaWQvMjIuaHRtbCcsCiAgICAvLyB1cmw6Jy9pbmRleC5waHAvdm9kL3Nob3cvY2xhc3MvZnljbGFzcy9pZC8yMC9wYWdlL2Z5cGFnZS5odG1sJywKICAgIHVybDogJy9pbmRleC5waHAvdm9kL3Nob3cvZnljbGFzc2Z5ZmlsdGVyLmh0bWwnLAogICAgZmlsdGVyYWJsZTogMSwKICAgIGZpbHRlcl91cmw6ICd7e2ZsLnR5cGV9fS9pZC8yMC9wYWdlL2Z5cGFnZXt7ZmwueWVhcn19JywKICAgIGZpbHRlcjogewogICAgICAgICJhcmVhL+aXpeacrCI6IFt7CiAgICAgICAgICAgICJrZXkiOiAidHlwZSIsCiAgICAgICAgICAgICJuYW1lIjogIuexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJPVkEiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL09WQSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Ymn5Zy654mIIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/liaflnLrniYgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaXoOS/riIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3MvQkTml6Dkv64iCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuiQneiOiSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv6JCd6I6JIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlrablnJIiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WtpuWckiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5ZCO5a6rIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/lkI7lrqsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaBi+eIsSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5oGL54ixIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLng63ooYAiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+eDreihgCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56We6a2UIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/npZ7prZQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWlh+W5uyIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5aWH5bm7IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmsrvmhIgiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+ayu+aEiCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pCe56yRIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/mkJ7nrJEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueZvuWQiCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv55m+5ZCIIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhpLpmakiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+WGkumZqSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6a2U5rOVIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/prZTms5UiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacuuaImCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5py65oiYIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmiJjkuokiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aImOS6iSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi54qv572qIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/niq/nvaoiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaCrOeWkSIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5oKs55aRIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmjqjnkIYiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+aOqOeQhiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56eR5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/np5HlubsiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuernuaKgCIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv56ue5oqAIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLov5DliqgiLAogICAgICAgICAgICAgICAgInYiOiAiL2NsYXNzL+i/kOWKqCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6IC9576OIiwKICAgICAgICAgICAgICAgICJ2IjogIi9jbGFzcy/ogL3nvo4iCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWFtuS7liIsCiAgICAgICAgICAgICAgICAidiI6ICIvY2xhc3Mv5YW25LuWIgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05Lu9IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFyLzIwMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTYiLAogICAgICAgICAgICAgICAgInYiOiAiL3llYXIvMjAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNSIsCiAgICAgICAgICAgICAgICAidiI6ICIveWVhci8yMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE0IiwKICAgICAgICAgICAgICAgICJ2IjogIi95ZWFLine truncated
+1
View File
@@ -0,0 +1 @@
Ly8g5Y+R5biD6aG1IGh0dHBzOi8vYWNnZmFucy5vcmcvcHViLmh0bWwKdmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+aAoeiQseWKqOa8qycsCiAgICAvLyBob3N0OidodHRwczovL3d3dy55eGRtbG92ZS5jb20nLAogICAgaG9zdDogJ2h0dHBzOi8vYWNnZmFucy5vcmcvcHViLmh0bWwnLAogICAgaG9zdEpzOiAncHJpbnQoSE9TVCk7bGV0IGh0bWw9cmVxdWVzdChIT1NULHtoZWFkZXJzOnsiVXNlci1BZ2VudCI6UENfVUF9fSk7bGV0IHNyYyA9IGpzcC5wZGZoKGh0bWwsInA6ZXEoMCkmJmEmJlRleHQiKTtwcmludChzcmMpO0hPU1Q9c3JjJywgLy/nvZHpobXln5/lkI3moLnliqjmgIHmipPlj5Zqc+S7o+eggeOAgumAmui/h0hPU1Q96LWL5YC8CiAgICAvLyB1cmw6Jy9jYXRlZ29yeS5odG1sP2NoYW5uZWw9MTcmemhvbmdsZWk9ZnljbGFzcyZvcmRlcmJ5PXB1YmRhdGUmdG90YWxyZXN1bHQ9Mjk5OSZwYWdlbm89ZnlwYWdlJywKICAgIHVybDogJy9jYXRlZ29yeS5odG1sP2NoYW5uZWw9MTcmemhvbmdsZWk9ZnljbGFzc2Z5ZmlsdGVyJnBhZ2Vubz1meXBhZ2UnLAogICAgZmlsdGVyYWJsZTogMSwgLy/mmK/lkKblkK/nlKjliIbnsbvnrZvpgIksCiAgICBmaWx0ZXJfdXJsOiAnJnt7ZmwuYnkgb3IgIm9yZGVyYnk9cHViZGF0ZSJ9fSZ7e2ZsLnllYXJ9fSZ7e2ZsLmFyZWF9fSZ7e2ZsLnN0YX19Jnt7ZmwuY2xhc3N9fScsCiAgICBmaWx0ZXI6IHsKICAgICAgICAiVFYiOiBbewogICAgICAgICAgICAia2V5IjogInN0YSIsCiAgICAgICAgICAgICJuYW1lIjogIui/m+W6piIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLov57ovb3kuK0iLAogICAgICAgICAgICAgICAgInYiOiAic3RhdHVzPei/nui9veS4rSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5bey5a6M57uTIiwKICAgICAgICAgICAgICAgICJ2IjogInN0YXR1cz3lt7Llroznu5MiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacquaSreaUviIsCiAgICAgICAgICAgICAgICAidiI6ICJzdGF0dXM95pyq5pKt5pS+IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJhcmVhIiwKICAgICAgICAgICAgIm5hbWUiOiAi5Zyw5Yy6IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaXpeacrCIsCiAgICAgICAgICAgICAgICAidiI6ICJhcmVhPeaXpeacrCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Lit5Zu9IiwKICAgICAgICAgICAgICAgICJ2IjogImFyZWE95Lit5Zu9IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmrKfnvo4iLAogICAgICAgICAgICAgICAgInYiOiAiYXJlYT3mrKfnvo4iCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku70iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICJ5ZWFyPTIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAieWVhcj0yMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogInllYXI9MjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICJ5ZWFyPTIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAieWVhcj0yMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogInllYXI9MjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICJ5ZWFyPTIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAieWVhcj0yMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogInllYXI9MjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICJ5ZWFyPTIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAieWVhcj0yMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE0IiwKICAgICAgICAgICAgICAgICJ2IjogInllYXI9MjAxNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMyIsCiAgICAgICAgICAgICAgICAidiI6ICJ5ZWFyPTIwMTMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTIiLAogICAgICAgICAgICAgICAgInYiOiAieWVhcj0yMDEyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDExIiwKICAgICAgICAgICAgICAgICJ2IjogInllYXI9MjAxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMCIsCiAgICAgICAgICAgICAgICAidiI6ICJ5ZWFyPTIwMTAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuabtOaXqSIsCiAgICAgICAgICAgICAgICAidiI6ICJ5ZWFyPTIwMTDliY0iCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogImNsYXNzIiwKICAgICAgICAgICAgIm5hbWUiOiAi5Ymn5oOFIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWGkumZqSIsCiAgICAgICAgICAgICAgICAidiI6ICJqcWx4PeWGkumZqSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi54Ot6KGAIiwKICAgICAgICAgICAgICAgICJ2IjogImpxbHg954Ot6KGAIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLniLHmg4UiLAogICAgICAgICAgICAgICAgInYiOiAianFseD3niLHmg4UiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaQnueskSIsCiAgICAgICAgICAgICAgICAidiI6ICJqcWx4PeaQnueskSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5ZCO5a6rIiwKICAgICAgICAgICAgICAgICJ2IjogImpxbHg95ZCO5a6rIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmoKHlm60iLAogICAgICAgICAgICAgICAgInYiOiAianFseD3moKHlm60iCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICALine truncated
-843
View File
@@ -1,843 +0,0 @@
var rule = {
title: '360影视[官]',
host: 'https://www.360kan.com',
homeUrl: 'https://api.web.360kan.com/v1/rank?cat=2&size=9',
detailUrl: 'https://api.web.360kan.com/v1/detail?cat=fyclass&id=fyid',
searchUrl: 'https://api.so.360kan.com/index?force_v=1&kw=**&from=&pageno=fypage&v_ap=1&tab=all',
url: 'https://api.web.360kan.com/v1/fyfilter&size=35&pageno=fypage&callback=',
filterable: 1,
filter_url: 'filter/list?catid=fyclass&rank={{fl.排序}}&cat={{fl.类型}}&year={{fl.年代}}&area={{fl.地区}}',
filter: {
"1": [{
"key": "类型",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "喜剧",
"v": "喜剧"
}, {
"n": "爱情",
"v": "爱情"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "恐怖",
"v": "恐怖"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "犯罪",
"v": "犯罪"
}, {
"n": "奇幻",
"v": "奇幻"
}, {
"n": "战争",
"v": "战争"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "动画",
"v": "动画"
}, {
"n": "文艺",
"v": "文艺"
}, {
"n": "纪录",
"v": "纪录"
}, {
"n": "传记",
"v": "传记"
}, {
"n": "歌舞",
"v": "歌舞"
}, {
"n": "古装",
"v": "古装"
}, {
"n": "历史",
"v": "历史"
}, {
"n": "惊悚",
"v": "惊悚"
}, {
"n": "伦理",
"v": "伦理"
}, {
"n": "其他",
"v": "其他"
}]
}, {
"key": "地区",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "内地",
"v": "大陆"
}, {
"n": "中国香港",
"v": "香港"
}, {
"n": "中国台湾",
"v": "台湾"
}, {
"n": "泰国",
"v": "泰国"
}, {
"n": "美国",
"v": "美国"
}, {
"n": "韩国",
"v": "韩国"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "法国",
"v": "法国"
}, {
"n": "英国",
"v": "英国"
}, {
"n": "德国",
"v": "德国"
}, {
"n": "印度",
"v": "印度"
}, {
"n": "其他",
"v": "其他"
}]
}, {
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "更早",
"v": "lt_year"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近热映",
"v": "rankhot"
}, {
"n": "最近上映",
"v": "ranklatest"
}, {
"n": "最受好评",
"v": "rankpoint"
}]
}],
"2": [{
"key": "类型",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "言情",
"v": "言情"
}, {
"n": "剧情",
"v": "剧情"
}, {
"n": "伦理",
"v": "伦理"
}, {
"n": "喜剧",
"v": "喜剧"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "都市",
"v": "都市"
}, {
"n": "偶像",
"v": "偶像"
}, {
"n": "古装",
"v": "古装"
}, {
"n": "军事",
"v": "军事"
}, {
"n": "警匪",
"v": "警匪"
}, {
"n": "历史",
"v": "历史"
}, {
"n": "励志",
"v": "励志"
}, {
"n": "神话",
"v": "神话"
}, {
"n": "谍战",
"v": "谍战"
}, {
"n": "青春",
"v": "青春剧"
}, {
"n": "家庭",
"v": "家庭剧"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "情景",
"v": "情景"
}, {
"n": "武侠",
"v": "武侠"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "其他",
"v": "其他"
}]
}, {
"key": "地区",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "内地",
"v": "内地"
}, {
"n": "中国香港",
"v": "香港"
}, {
"n": "中国台湾",
"v": "台湾"
}, {
"n": "泰国",
"v": "泰国"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "韩国",
"v": "韩国"
}, {
"n": "美国",
"v": "美国"
}, {
"n": "英国",
"v": "英国"
}, {
"n": "新加坡",
"v": "新加坡"
}]
}, {
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "更早",
"v": "lt_year"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近热映",
"v": "rankhot"
}, {
"n": "最近上映",
"v": "ranklatest"
}, {
"n": "最受好评",
"v": "rankpoint"
}]
}],
"3": [{
"key": "类型",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "脱口秀",
"v": "脱口秀"
}, {
"n": "真人秀",
"v": "真人秀"
}, {
"n": "搞笑",
"v": "搞笑"
}, {
"n": "选秀",
"v": "选秀"
}, {
"n": "八卦",
"v": "八卦"
}, {
"n": "访谈",
"v": "访谈"
}, {
"n": "情感",
"v": "情感"
}, {
"n": "生活",
"v": "生活"
}, {
"n": "晚会",
"v": "晚会"
}, {
"n": "音乐",
"v": "音乐"
}, {
"n": "职场",
"v": "职场"
}, {
"n": "美食",
"v": "美食"
}, {
"n": "时尚",
"v": "时尚"
}, {
"n": "游戏",
"v": "游戏"
}, {
"n": "少儿",
"v": "少儿"
}, {
"n": "体育",
"v": "体育"
}, {
"n": "纪实",
"v": "纪实"
}, {
"n": "科教",
"v": "科教"
}, {
"n": "曲艺",
"v": "曲艺"
}, {
"n": "歌舞",
"v": "歌舞"
}, {
"n": "财经",
"v": "财经"
}, {
"n": "汽车",
"v": "汽车"
}, {
"n": "播报",
"v": "播报"
}, {
"n": "其他",
"v": "其他"
}]
}, {
"key": "地区",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "内地",
"v": "大陆"
}, {
"n": "中国香港",
"v": "香港"
}, {
"n": "中国台湾",
"v": "台湾"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "欧美",
"v": "欧美"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近热映",
"v": "rankhot"
}, {
"n": "最近上映",
"v": "ranklatest"
}]
}],
"4": [{
"key": "类型",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "热血",
"v": "热血"
}, {
"n": "科幻",
"v": "科幻"
}, {
"n": "美少女",
"v": "美少女"
}, {
"n": "魔幻",
"v": "魔幻"
}, {
"n": "经典",
"v": "经典"
}, {
"n": "励志",
"v": "励志"
}, {
"n": "少儿",
"v": "少儿"
}, {
"n": "冒险",
"v": "冒险"
}, {
"n": "搞笑",
"v": "搞笑"
}, {
"n": "推理",
"v": "推理"
}, {
"n": "恋爱",
"v": "恋爱"
}, {
"n": "治愈",
"v": "治愈"
}, {
"n": "幻想",
"v": "幻想"
}, {
"n": "校园",
"v": "校园"
}, {
"n": "动物",
"v": "动物"
}, {
"n": "机战",
"v": "机战"
}, {
"n": "亲子",
"v": "亲子"
}, {
"n": "儿歌",
"v": "儿歌"
}, {
"n": "运动",
"v": "运动"
}, {
"n": "悬疑",
"v": "悬疑"
}, {
"n": "怪物",
"v": "怪物"
}, {
"n": "战争",
"v": "战争"
}, {
"n": "益智",
"v": "益智"
}, {
"n": "青春",
"v": "青春"
}, {
"n": "童话",
"v": "童话"
}, {
"n": "竞技",
"v": "竞技"
}, {
"n": "动作",
"v": "动作"
}, {
"n": "社会",
"v": "社会"
}, {
"n": "友情",
"v": "友情"
}, {
"n": "真人版",
"v": "真人版"
}, {
"n": "电影版",
"v": "电影版"
}, {
"n": "OVA版",
"v": "OVA版"
}, {
"n": "TV版",
"v": "TV版"
}, {
"n": "新番动画",
"v": "新番动画"
}, {
"n": "完结动画",
"v": "完结动画"
}]
}, {
"key": "地区",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "内地",
"v": "大陆"
}, {
"n": "日本",
"v": "日本"
}, {
"n": "美国",
"v": "美国"
}]
}, {
"key": "年代",
"name": "年代",
"value": [{
"n": "全部",
"v": ""
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}, {
"n": "2014",
"v": "2014"
}, {
"n": "2013",
"v": "2013"
}, {
"n": "2012",
"v": "2012"
}, {
"n": "2011",
"v": "2011"
}, {
"n": "2010",
"v": "2010"
}, {
"n": "2009",
"v": "2009"
}, {
"n": "2008",
"v": "2008"
}, {
"n": "2007",
"v": "2007"
}, {
"n": "2006",
"v": "2006"
}, {
"n": "2005",
"v": "2005"
}, {
"n": "2004",
"v": "2004"
}, {
"n": "更早",
"v": "更早"
}]
}, {
"key": "排序",
"name": "排序",
"value": [{
"n": "最近热映",
"v": "rankhot"
}, {
"n": "最近上映",
"v": "ranklatest"
}]
}]
},
filter_def: {},
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000,
class_name: '电视剧&电影&综艺&动漫',
class_url: '2&1&3&4',
limit: 5,
multi: 1,
searchable: 2,
play_parse: true,
lazy: $js.toString(() => {
try {
let api = "" + input.split("?")[0];
console.log(api);
let response = fetch(api, {
method: 'get',
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded'
}
});
let bata = JSON.parse(response);
if (bata.url.includes("qq,qiyi,imgo,youku,leshi,bilibili1,m1905")) {
input = {
parse: 0,
url: bata.url,
jx: 0,
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
};
} else {
input = {
parse: 0,
url: input.split("?")[0],
jx: 1,
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
};
}
} catch {
input = {
parse: 0,
url: input.split("?")[0],
jx: 1,
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
};
}
}),
// 疑似t4专用的
// lazy:'js:input={parse: 1, playUrl: "", jx: 1, url: input.split("?")[0]}',
// 手动调用解析请求json的url,此lazy不方便
// lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
推荐: 'json:data;title;cover;comment;cat+ent_id;description',
一级: 'json:data.movies;title;cover;pubdate;id;description',
二级: '',
二级: $js.toString(() => {
let html = JSON.parse(fetch(input, fetch_params));
let data = html.data;
let tilte = data.title;
let img = data.cdncover;
let vod_type = data.moviecategory.join(",");
let area = data.area.join(",");
let director = data.director.join(",");
let actor = data.actor.join(",");
let content = data.description;
let base_vod = {
vod_id: input,
vod_name: tilte,
type_name: vod_type,
vod_actor: actor,
vod_director: director,
vod_content: content,
vod_remarks: area,
vod_pic: urljoin2(input, img)
};
let delta = 50;
let vod_play = {};
let sites = data.playlink_sites;
sites.forEach(function(site) {
let playList = "";
let vodItems = [];
print(data)
if (data.allupinfo) {
let total = parseInt(data.allupinfo[site]);
print(total)
for (let j = 1; j < total; j += delta) {
let end = Math.min(total, j + delta - 1);
print(end)
let url2 = buildUrl(input, {
start: j,
end: end,
site: site
});
let vod_data = JSON.parse(fetch(url2), fetch_params).data;
if (vod_data != null) {
if (vod_data.allepidetail) {
vod_data = vod_data.allepidetail[site];
vod_data.forEach(function(item, index) {
vodItems.push((item.playlink_num || "") + "$" + urlDeal(item.url || ""))
})
} else {
vod_data = vod_data.defaultepisode;
vod_data.forEach(function(item, index) {
vodItems.push((item.period || "") + (item.name || "") + "$" + urlDeal(item.url) || "")
})
}
}
}
} else {
let item = data.playlinksdetail[site];
vodItems.push((item.sort || "") + "$" + urlDeal(item.default_url || ""))
}
if (vodItems.length > 0) {
playList = vodItems.join("#")
}
if (playList.length < 1) {
return
}
vod_play[site] = playList
});
let tabs = Object.keys(vod_play);
let playUrls = [];
for (let id in tabs) {
print("id:" + id);
playUrls.push(vod_play[tabs[id]])
}
if (tabs.length > 0) {
let vod_play_from = tabs.join("$$$");
let vod_play_url = playUrls.join("$$$");
base_vod.vod_play_from = vod_play_from;
base_vod.vod_play_url = vod_play_url
}
VOD = base_vod;
}),
搜索: 'json:data.longData.rows;titleTxt||titlealias;cover;cat_name;cat_id+en_id;description',
}
File diff suppressed because it is too large. Load diff
-52
View File
@@ -1,52 +0,0 @@
var rule = {
title: '双子星',
host: 'https://1.star2.cn',
hostJs: '',
headers: {
'User-Agent': 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36',
},
编码: 'utf-8',
timeout: 5000,
url: 'https://1.star2.cn/fyclass/',
filter_url: '',
detailUrl: '',
searchUrl: 'https://1.star2.cn/search/?keyword=**',
searchable: 1,
quickSearch: 1,
filterable: 1,
class_name: '短剧&国剧&综艺&电影&韩日&英美&外剧&动漫',
class_url: 'dj&ju&zy&mv&rh&ym&wj&dm',
proxy_rule: '',
sniffer: false,
isVideo: '',
play_parse: true,
parse_url: '',
lazy: "js:\n input = 'push://' + input;\n ",
limit: 9,
double: false,
推荐: '*',
一级: 'js:\n let html = fetch(input);\n let list = pdfa(html, ".erx-list&&li");\n VODS = list.map(x => {\n return {\n vod_name: pdfh(x, "a&&Text"),\n vod_pic: \'https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1746269827120/1.jpeg\',\n vod_remarks: pdfh(x, "a&&Text"),\n vod_content: pdfh(x, "a&&Text"),\n vod_id: pdfh(x, "a&&href")\n }\n });\n ',
二级: {
title: 'h1&&Text',
img: 'https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1746269827120/1.jpeg',
desc: '.card-text:eq(2)&&Text;;;;',
content: '.card-text:eq(0)&&Text',
tabs: "js:TABS = ['双星']",
lists: "js:\n LISTS = [];\n let lists1 = pdfa(html, '.dlipp-cont-bd').map(it => {\n let _tt = pdfh(it, 'a&&Text');\n let _uu = pdfh(it, 'a&&href');\n return _tt + '$' + _uu;\n });\n LISTS.push(lists1);\n ",
},
搜索: 'js:\n let html = fetch(input);\n let list = pdfa(html, ".erx-list&&li");\n VODS = list.map(x => {\n return {\n vod_name: pdfh(x, "a&&Text"),\n vod_pic: \'https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1746269827120/1.jpeg\', \n vod_remarks: pdfh(x, "a&&Text"),\n vod_content: pdfh(x, "a&&Text"),\n vod_id: pdfh(x, "a&&href")\n }\n });\n ',
cate_exclude: '首页|留言|APP|下载|资讯|新闻|动态',
tab_exclude: '猜你|喜欢|下载|剧情|榜|评论',
类型: '影视',
homeUrl: 'https://1.star2.cn',
二级访问前: '',
encoding: 'utf-8',
search_encoding: '',
图片来源: '',
图片替换: '',
play_json: [],
pagecount: {},
tab_remove: [],
tab_order: [],
tab_rename: {},
}
-52
View File
@@ -1,52 +0,0 @@
var rule = {
title: '懒盘搜',
host: 'https://www.lzpanx.com/',
hostJs: '',
headers: {
'User-Agent': 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36',
},
编码: 'utf-8',
timeout: 5000,
url: 'https://www.lzpanx.com/search?q=fyclass&format=video&page=fypage',
filter_url: '',
detailUrl: '',
searchUrl: 'https://www.lzpanx.com/search?q=**&format=video&page=fypage',
searchable: 1,
quickSearch: 1,
filterable: 1,
class_name: '剧集&电影&短剧&动漫&综艺',
class_url: '剧集&电影&短网剧&动漫&综艺',
proxy_rule: '',
sniffer: false,
isVideo: '',
play_parse: true,
parse_url: '',
lazy: "js:\n input = 'push://' + input;\n ",
limit: 9,
double: false,
// 推荐: '*',
一级: 'js:\n let html = fetch(input);\n let list = pdfa(html, "body&&.semi-space-medium-vertical");\n VODS = list.map(x => {\n let remarks = pdfh(x, "div&&img&&alt");\n // 过滤掉包含"迅雷云盘"的内容\n if(remarks.includes("迅雷云盘")) return null;\n return {\n vod_name: pdfh(x, "div&&a&&title"),\n vod_pic: \'https://ww1.sinaimg.cn/mw690/006faMndly1htmb1m08adj30e20e2q3m.jpg\',\n vod_remarks: remarks,\n vod_content: remarks,\n vod_id: pdfh(x, "div&&a&&href")\n }\n }).filter(x => x !== null);\n ',
二级: {
title: 'h1&&Text',
img: 'img&&src',
desc: '.card-text:eq(2)&&Text;;;;',
content: 'body&&.semi-space-loose-vertical&&a&&href',
tabs: "js:TABS = ['懒盘']",
lists: "js:\n LISTS = [];\n let lists1 = pdfa(html, 'body&&.semi-space-loose-vertical').map(it => {\n let _tt = pdfh(it, 'span&&title');\n let _uu = pdfh(it, 'a&&href');\n return _tt + '$' + _uu;\n });\n LISTS.push(lists1);\n ",
},
搜索: 'js:\n let html = fetch(input);\n let list = pdfa(html, "body&&.semi-space-medium-vertical");\n VODS = list.map(x => {\n let remarks = pdfh(x, "div&&img&&alt");\n // 过滤掉包含"迅雷云盘"的内容\n if(remarks.includes("迅雷云盘")) return null;\n return {\n vod_name: pdfh(x, "div&&a&&title"),\n vod_pic: \'https://ww1.sinaimg.cn/mw690/006faMndly1htmb1m08adj30e20e2q3m.jpg\',\n vod_remarks: remarks,\n vod_content: remarks,\n vod_id: pdfh(x, "div&&a&&href")\n }\n }).filter(x => x !== null);\n ',
cate_exclude: '首页|留言|APP|下载|资讯|新闻|动态',
tab_exclude: '猜你|喜欢|下载|剧情|榜|评论',
类型: '影视',
homeUrl: 'https://www.lzpanx.com/',
二级访问前: '',
encoding: 'utf-8',
search_encoding: '',
图片来源: '',
图片替换: '',
play_json: [],
pagecount: {},
tab_remove: [],
tab_order: [],
tab_rename: {},
}
File diff suppressed because it is too large. Load diff
-73
View File
@@ -1,73 +0,0 @@
var rule = {
title: '百酷短剧',
host: 'https://api.kuleu.com/',
hostJs: '',
headers: {
'User-Agent': 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36',
},
编码: 'utf-8',
timeout: 5000,
url: 'https://api.kuleu.com/fyclass',
filter_url: '',
detailUrl: '',
searchUrl: 'https://api.kuleu.com/api/bddj?text=**',
searchable: 1,
quickSearch: 1,
filterable: 1,
class_name: '今日更新&百度短剧&每日更新&夸克短剧&每日更新',
class_url: 'api/yingshi&api/bddj?list&api/bddj?today&api/action?list&api/action?today',
proxy_rule: '',
sniffer: false,
isVideo: '',
play_parse: true,
parse_url: '',
lazy: "js:\n input = 'push://' + input;\n ",
limit: 9,
double: false,
// 推荐: '*',
一级: $js.toString(() => {
let cid = MY_CATE || '108';
let pg = MY_PAGE || 1;
let url = `https://api.kuleu.com/${cid}`;
let khtml = fetch(url, {headers: rule.headers});
let kjson = JSON.parse(khtml);
VODS = [];
kjson.data.forEach(it => {
VODS.push({
vod_name: it.name,
vod_pic: `https://tse3-mm.cn.bing.net/th/id/OIP-C.rlQOYtsriwWKHwofGufJ_AHaQd?w=157&h=350&c=7&r=0&o=7&dpr=3.7&pid=1.7&rm=3`,
vod_remarks: it.addtime,
vod_id: `push://${it.viewlink}`
});
});
}),
二级: '*',
搜索:$js.toString(() => {
let url = `https://api.kuleu.com/api/bddj?text=${KEY}`;
let khtml = fetch(url);
let kjson = JSON.parse(khtml);
VODS = [];
kjson.data.forEach(it => {
VODS.push({
vod_name: it.name,
vod_pic: it.pPic,
vod_remarks: it.addtime,
vod_id: `push://${it.viewlink}`
})
})
}),
cate_exclude: '首页|留言|APP|下载|资讯|新闻|动态',
tab_exclude: '猜你|喜欢|下载|剧情|榜|评论',
类型: '影视',
homeUrl: 'https://www.lzpanx.com/',
二级访问前: '',
encoding: 'utf-8',
search_encoding: '',
图片来源: '',
图片替换: '',
play_json: [],
pagecount: {},
tab_remove: [],
tab_order: [],
tab_rename: {},
}
-28
View File
@@ -1,28 +0,0 @@
var rule = {
类型: '影视', //影视|听书|漫画|小说
title: '短剧',
host: 'https://ai-img.ycubbs.cn/',
homeUrl: '/api/duanju/list',
url: '/api/duanju/list',
searchUrl: 'https://api.kuleu.com/api/action?text=**',
searchable: 1,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
hikerListCol: "text_1",
hikerClassListCol: "text_1",
timeout: 5000,
class_name: '',
class_url: '',
play_parse: true,
lazy: $js.toString(() => {
input = "push://" + input;
}),
double: false,
推荐: '*',
一级: 'json:data;name;;;url',
二级: '*',
搜索: 'json:data;name;;;viewlink',
}
Loaded 100 of 180 files, more files were not shown because too many files have changed in this diff. Show more