This commit is contained in:
pricema 2025-10-07 01:31:31 +08:00
parent 239a874feb
commit 6e8af5c540
238 changed files with 58798 additions and 36 deletions

View File

@ -1,36 +0,0 @@
# tvbox
#### Description
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

View File

BIN
img/0.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

BIN
img/file.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
img/fongmi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
img/loadin.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
img/logo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
img/pg.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

BIN
jar/XBPQ1.jar Normal file

Binary file not shown.

BIN
jar/fenghuang.jar Normal file

Binary file not shown.

BIN
jar/fm.jar Normal file

Binary file not shown.

BIN
jar/fty.jar Normal file

Binary file not shown.

BIN
jar/moyu.jar Normal file

Binary file not shown.

BIN
jar/netflav.jar Normal file

Binary file not shown.

BIN
jar/ok.jar Normal file

Binary file not shown.

BIN
jar/qf.jar Normal file

Binary file not shown.

BIN
jar/spider-woof.jar Normal file

Binary file not shown.

BIN
jar/svip.jar Normal file

Binary file not shown.

BIN
jar/wex.jar Normal file

Binary file not shown.

BIN
jar/xbpq.jar Normal file

Binary file not shown.

BIN
jar/xs.jar Normal file

Binary file not shown.

BIN
jar/yt-aa.jar Normal file

Binary file not shown.

BIN
jar/yt_xyz.jar Normal file

Binary file not shown.

BIN
jar/zx.jar Normal file

Binary file not shown.

186
js/4khdr.js Normal file
View File

@ -0,0 +1,186 @@
var rule = {
title:'4KHDR[磁]',
host:'https://www.4khdr.cn',
homeUrl: "/forum.php?mod=forumdisplay&fid=2&page=1",
url: '/forum.php?mod=forumdisplay&fid=2&filter=typeid&typeid=fyclass&page=fypage',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/search.php#searchsubmit=yes&srchtxt=**;post',
searchable:2,
quickSearch:1,
filterable:0,
headers:{
'User-Agent': 'PC_UA',
'Cookie':'http://127.0.0.1:9978/file:///tvbox/JS/lib/4khdr.txt',
},
timeout:5000,
class_name: "4K电影&4K美剧&4K华语&4K动画&4K纪录片&4K日韩印&蓝光电影&蓝光美剧&蓝光华语&蓝光动画&蓝光日韩印",
class_url:"3&8&15&6&11&4&29&31&33&32&34",
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'ul#waterfall li;a&&title;img&&src;div.auth.cl&&Text;a&&href',
一级:'ul#waterfall li;a&&title;img&&src;div.auth.cl&&Text;a&&href',
二级:{
title:"#thead_subject&&Text",
img:"img.zoom&&src",
desc:'td[id^="postmessage_"] font&&Text',
content:'td[id^="postmessage_"] font&&Text',
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let d = pdfa(html, 'div.pcb table.t_table a');
let tabsa = [];
let tabsq = [];
let tabsm = false;
let tabse = false;
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
if (tabsm === true){
TABS.push("磁力");
}
if (tabse === true){
TABS.push("電驢");
}
if (false && tabsa.length + tabsq.length > 1){
TABS.push("選擇右側綫路");
}
let tmpIndex;
tmpIndex=1;
tabsa.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
log('4khdr TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let d = pdfa(html, 'div.pcb table.t_table a');
let lista = [];
let listq = [];
let listm = [];
let liste = [];
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('4khdr title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('4khdr burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
if (listm.length>0){
LISTS.push(listm);
}
if (liste.length>0){
LISTS.push(liste);
}
if (false && lista.length + listq.length > 1){
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
lista.forEach(function(it){
LISTS.push([it]);
});
listq.forEach(function(it){
LISTS.push([it]);
});
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
if (rule_fetch_params.headers.Cookie.startsWith("http")){
rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);
let cookie = rule_fetch_params.headers.Cookie;
setItem(RULE_CK, cookie);
};
log('4khdr search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie);
let new_host= HOST + '/search.php';
let new_html=request(new_host);
let formhash = pdfh(new_html, 'input[name="formhash"]&&value');
log("4khdr formhash>>>>>>>>>>>>>>>" + formhash);
let params = 'formhash=' + formhash + '&searchsubmit=yes&srchtxt=' + encodeURIComponent(KEY);
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let postData = {
body: params
};
Object.assign(_fetch_params, postData);
log("4khdr search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
let search_html = post( HOST + '/search.php?mod=forum', _fetch_params)
//log("4khdr search result>>>>>>>>>>>>>>>" + search_html);
let d=[];
let dlist = pdfa(search_html, 'div#threadlist ul li');
dlist.forEach(function(it){
let title = pdfh(it, 'h3&&Text');
if (searchObj.quick === true){
if (title.includes(KEY)){
title = KEY;
}
}
let img = "";
let content = pdfh(it, 'p:eq(2)&&Text');
let desc = pdfh(it, 'p:eq(3)&&Text');
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
})
});
setResult(d);
`,
}

61
js/88ball.js Normal file
View File

@ -0,0 +1,61 @@
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)
`,
},
搜索: "",
};

203
js/97tvs.js Normal file
View File

@ -0,0 +1,203 @@
var rule = {
title:'高清MP4吧',
host:'https://www.97tvs.com',
homeUrl: '/',
url: '/fyclass/page/fypage?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/?s=**',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': 'PC_UA',
'Cookie':'',
'Referer': 'http://www.97tvs.com/'
},
图片来源:'@Headers={"Accept":"*/*","Referer":"https://www.97tvs.com/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"}',
timeout:5000,
class_name: "动作片&科幻片&爱情片&喜剧片&剧情片&惊悚片&战争片&灾难片&罪案片&动画片&综艺&电视剧",
class_url: "action&science&love&comedy&story&thriller&war&disaster&crime&cartoon&variety&sitcoms",
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
let html = request(input);
let list = pdfa(html, 'div.mainleft ul#post_container li');
list.forEach(it => {
d.push({
title: pdfh(it, 'div.thumbnail img&&alt'),
desc: pdfh(it, 'div.info&&span.info_date&&Text') + ' / ' + pdfh(it, 'div.info&&span.info_category&&Text'),
pic_url: pd(it, 'div.thumbnail img&&src', HOST),
url: pd(it, 'div.thumbnail&&a&&href',HOST)
});
});
setResult(d);
`,
一级:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
let html = request(input);
let list = pdfa(html, 'div.mainleft ul#post_container li');
list.forEach(it => {
d.push({
title: pdfh(it, 'div.thumbnail img&&alt'),
desc: pdfh(it, 'div.info&&span.info_date&&Text') + ' / ' + pdfh(it, 'div.info&&span.info_category&&Text'),
pic_url: pd(it, 'div.thumbnail img&&src', HOST),
url: pd(it, 'div.thumbnail&&a&&href',HOST)
});
})
setResult(d);
`,
二级:{
title:"div.article_container h1&&Text",
img:"div#post_content img&&src",
desc:"div#post_content&&Text",
content:"div#post_content&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let d = pdfa(html, 'div#post_content p');
let tabsa = [];
let tabsq = [];
let tabsm = false;
let tabse = false;
let tabm3u8 = [];
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
if (tabsm === true){
TABS.push("磁力");
}
if (tabse === true){
TABS.push("電驢");
}
let tmpIndex;
tmpIndex=1;
tabsa.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tabm3u8.forEach(function(it){
TABS.push(it);
});
log('97tvs TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let d = pdfa(html, 'div#post_content p');
let lista = [];
let listq = [];
let listm = [];
let liste = [];
let listm3u8 = {};
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('97tvs title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('97tvs burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = "push://" + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = "push://" + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
if (listm.length>0){
LISTS.push(listm);
}
if (liste.length>0){
LISTS.push(liste);
}
lista.forEach(function(it){
LISTS.push([it]);
});
listq.forEach(function(it){
LISTS.push([it]);
});
for ( const key in listm3u8 ){
if (listm3u8.hasOwnProperty(key)){
LISTS.push(listm3u8[key]);
}
};
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let search_html = request(input)
//log("97tvs search result>>>>>>>>>>>>>>>" + search_html);
let d=[];
let dlist = pdfa(search_html, 'div.mainleft ul#post_container li');
dlist.forEach(function(it){
let title = pdfh(it, 'div.thumbnail img&&alt').replace( /(<([^>]+)>)/ig, '');
if (title.includes(KEY)){
if (searchObj.quick === true){
title = KEY;
}
let img = pd(it, 'div.thumbnail img&&src', HOST);
let content = pdfh(it, 'div.article div.entry_post&&Text');
let desc = pdfh(it, 'div.info&&span.info_date&&Text');
let url = pd(it, 'div.thumbnail&&a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
});
}
});
setResult(d);
`,
}

450
js/aa.json Normal file
View File

@ -0,0 +1,450 @@
{
"spider": "../jar/yt-aa.jar",
"wallpaper": "https://tuapi.eees.cc/api.php?category=fengjing&type=302",
"sites": [
{
"key": "cctv",
"name": "cctv",
"type": 1,
"api": "http://zhangqun19.serv00.net/cctv.php",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "听书go",
"name": "听书go",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=11",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "小苹果",
"name": "小苹果",
"type": 4,
"api": "http://zhangqun19.serv00.net/pingguo.php",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "采集全集",
"name": "采集全集",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=12",
"ext": "0",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "服务器油管go",
"name": "服务器油管go",
"type": 4,
"api": "http://127.0.0.1:1988",
"style": {
"type": "rect",
"ratio": 1.33
},
"searchable": 1,
"changeable": 1
},
{
"key": "油管清单播放",
"name": "油管清单播放",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=9",
"ext": "/storage/emulated/0/lz/json/油管/",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "影视清单播放",
"name": "影视清单播放",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=9",
"ext": "/storage/emulated/0/lz/json/影视/",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "其他清单播放",
"name": "其他清单播放",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=9",
"ext": "/storage/emulated/0/lz/json/其他/",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "油管文件播放",
"name": "油管文件播放",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=8",
"ext": "/storage/emulated/0/lz/wj/油管/",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "影视文件播放",
"name": "影视文件播放",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=8",
"ext": "/storage/emulated/0/lz/wj/影视/",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "直播文件播放",
"name": "直播文件播放",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=8",
"ext": "/storage/emulated/0/lz/wj/直播/",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "音乐文件播放",
"name": "音乐文件播放",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=8",
"ext": "/storage/emulated/0/lz/wj/音乐/",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "欧乐影院",
"name": "欧乐影院",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=4",
"searchable": 1,
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "采集集合",
"name": "采集集合",
"type": 1,
"api": "http://127.0.0.1:1988/lb?lb=3",
"searchable": 1,
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "短剧",
"name": "短剧",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=2",
"searchable": 1,
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
},
{
"key": "哔哩go",
"name": "哔哩go",
"type": 4,
"api": "http://127.0.0.1:1988/lb?lb=10",
"style": {
"type": "rect",
"ratio": 1.33
},
"changeable": 1
}
],
"parses": [
{
"name": "解析聚合",
"type": 3,
"url": "Web"
},
{
"name": "777",
"type": 0,
"url": "https://jx.777jiexi.com/player/?url="
},
{
"name": "jsonplayer",
"type": 0,
"url": "https://jx.jsonplayer.com/player/?url="
},
{
"name": "xmflv",
"type": 0,
"url": "https://jx.xmflv.com/?url="
},
{
"name": "公众号:六趣",
"type": 1,
"url": "http://kmp.us.kg/api/?key=A2gODYCEHBd4tVLsbv&url=",
"ext": {
"flag": [
"qq",
"腾讯",
"qiyi",
"爱奇艺",
"奇艺",
"youku",
"优酷",
"sohu",
"搜狐",
"letv",
"乐视",
"mgtv",
"芒果",
"tnmb",
"seven",
"bilibili",
"1905",
"NetFilx"
],
"header": {
"User-Agent": "okhttp/4.9.1"
}
}
}
],
"flags": [
"youku",
"tudou",
"qq",
"qiyi",
"iqiyi",
"leshi",
"letv",
"sohu",
"imgo",
"mgtv",
"bilibili",
"pptv",
"PPTV",
"migu"
],
"rules": [
{
"name": "proxy",
"hosts": [
"raw.githubusercontent.com",
"googlevideo.com",
"cdn.v82u1l.com",
"cdn.iz8qkg.com",
"cdn.kin6c1.com",
"c.biggggg.com",
"c.olddddd.com",
"haiwaikan.com",
"www.histar.tv",
"youtube.com",
"uhibo.com",
".*boku.*",
".*nivod.*",
".*ulivetv.*"
]
},
{
"name": "海外看",
"hosts": [
"haiwaikan"
],
"regex": [
"10.0099",
"10.3333",
"16.0599",
"8.1748",
"10.85"
]
},
{
"name": "索尼",
"hosts": [
"suonizy"
],
"regex": [
"15.1666",
"15.2666"
]
},
{
"name": "暴風",
"hosts": [
"bfzy"
],
"regex": [
"#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY"
]
},
{
"name": "测试",
"hosts": [
"zhangqun66.serv00.net"
],
"regex": [
"Smartv.php?id="
]
},
{
"name": "星星",
"hosts": [
"aws.ulivetv.net"
],
"regex": [
"#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:8,[\\s\\S]*?#EXT-X-DISCONTINUITY"
]
},
{
"name": "量子",
"hosts": [
"vip.lz",
"hd.lz",
"v.cdnlz"
],
"regex": [
"18.5333"
]
},
{
"name": "非凡",
"hosts": [
"vip.ffzy",
"hd.ffzy"
],
"regex": [
"25.0666"
]
},
{
"name": "火山嗅探",
"hosts": [
"huoshan.com"
],
"regex": [
"item_id="
]
},
{
"name": "抖音嗅探",
"hosts": [
"douyin.com"
],
"regex": [
"is_play_url="
]
},
{
"name": "農民嗅探",
"hosts": [
"toutiaovod.com"
],
"regex": [
"video/tos/cn"
]
}
],
"doh": [
{
"name": "Google",
"url": "https://dns.google/dns-query",
"ips": [
"8.8.4.4",
"8.8.8.8"
]
},
{
"name": "Cloudflare",
"url": "https://cloudflare-dns.com/dns-query",
"ips": [
"1.1.1.1",
"1.0.0.1",
"2606:4700:4700::1111",
"2606:4700:4700::1001"
]
},
{
"name": "AdGuard",
"url": "https://dns.adguard.com/dns-query",
"ips": [
"94.140.14.140",
"94.140.14.141"
]
},
{
"name": "DNSWatch",
"url": "https://resolver2.dns.watch/dns-query",
"ips": [
"84.200.69.80",
"84.200.70.40"
]
},
{
"name": "Quad9",
"url": "https://dns.quad9.net/dns-query",
"ips": [
"9.9.9.9",
"149.112.112.112"
]
}
],
"lives": [
{
"name": "XingHuo",
"url": "https://json.doube.eu.org/XingHuo.txt",
"header": {
"Referer": "https://www.kds.tw/"
}
},
{
"name": "MQiTV",
"api": "csp_MQiTV",
"jar": "https://raw.githubusercontent.com/sqspot/tac/refs/heads/main/jar/fmMQiTV.jar",
"ext": "https://59.125.210.231:4433",
"playerType": 1,
"epg": "http://epg.112114.xyz/?ch={name}&date={date}"
},
{
"name": "肥羊国内直播",
"type": 3,
"api": "csp_Feiyang",
"url": "tv.m3u",
"ext": "https://raw.githubusercontent.com/lystv/fmapp/ok/apk/allinone/v7/allinone;md5;https://raw.githubusercontent.com/lystv/fmapp/ok/apk/allinone/v7/md5",
"jar": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar"
}
]
}

126
js/aipanso.js Normal file
View File

@ -0,0 +1,126 @@
var rule = {
title:'爱盘搜[夸]',
host:'https://aipanso.com',
homeUrl:'/',
url: '/forum-fyclass-fypage.html?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/search?page=fypage&s=1&t=-1&k=**',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': PC_UA,
'Accept': '*/*',
'Referer': 'https://aipanso.com/'
},
timeout:5000,
class_name:'',
class_url:'',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'',
一级:'',
二级:{
title:"van-row h3&&Text",
img:"",
desc:"van-row h3&&Text",
content:"van-row h3&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
TABS.push("夸克網盤");
log('meijumi TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
LISTS=[];
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let requestHeaders = {
withHeaders: true,
redirect: 0,
headers:{
Referer: MY_URL
}
};
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
Object.assign(_fetch_params, requestHeaders);
let new_html = request ( MY_URL.replace("/s/","/cv/"), _fetch_params);
let json=JSON.parse(new_html);
let redirectUrl = "";
if (json.hasOwnProperty("Location")){
redirectUrl = json["Location"];
}else if (json.hasOwnProperty("location")){
redirectUrl = json["location"];
}
let title = pdfh(html, 'van-row h3&&Text');
LISTS.push([title + '$' + 'push://' + redirectUrl]);
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
log("aipanso enter search >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + KEY);
let withHeaders = {
withHeaders: true
};
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
Object.assign(_fetch_params, withHeaders);
log('aipanso search params >>>>>>>>>>>>>>>>>>>>>' + JSON.stringify(_fetch_params));
let new_html=request(rule.homeUrl + 'search?page=' + MY_PAGE + '&s=1&t=-1&k=' + encodeURIComponent(KEY) , _fetch_params);
//log('aipanso search new_html >>>>>>>>>>>>>>>>>>>>>' + new_html);
let json=JSON.parse(new_html);
let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");
let cookie="";
if (typeof setCk !== "undefined"){
let d=[];
for(const key in json[setCk]){
if (typeof json[setCk][key] === "string"){
log("aipanso header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key]));
d.push(json[setCk][key].split(";")[0]);
}
}
cookie=d.join(";");
setItem(RULE_CK, cookie);
fetch_params.headers.Cookie=cookie;
rule_fetch_params.headers.Cookie=cookie;
}
log('aipanso search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie);
//log('aipanso search body >>>>>>>>>>>>>>>>>>>>>' + json['body'].substring(4096));
new_html = json['body'];
let d=[];
let dlist = pdfa(new_html, 'van-row:has(>a[href^="/s/"])');
dlist.forEach(function(it){
let title = pdfh(it, 'van-card template&&Text');
if (title.includes(KEY)){
if (searchObj.quick === true){
title = KEY;
}
let img = pd(it, 'van-card&&thumb', HOST);
let content = pdfh(it, 'van-card template:eq(1)&&Text');
let desc = pdfh(it, 'van-card template:eq(1)&&Text');
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
})
}
});
setResult(d);
`,
}

92
js/alist.json Normal file
View File

@ -0,0 +1,92 @@
{
"drives": [
{
"name": "雨呢",
"server": "https://pan.clun.top"
},
{
"name": "触光",
"server": "https://pan.ichuguang.com"
},
{
"name": "魔都云",
"server": "https://cdn.modupan.com"
},
{
"name": "MCCI",
"server": "https://buck.xk.ee",
"login": {
"username": "udian6",
"password": "udian6"
}
},
{
"name": "亿苯",
"server": "https://pan.lm379.cn"
},
{
"name": "秋雨",
"server": "https://share.qiuyu.org"
},
{
"name": "小雅",
"server": "https://alist.xiaoya.pro"
},
{
"name": "日负斗金",
"server": "https://asca0121.toc.icu"
},
{
"name": "短剧库",
"server": "https://cdn.bull369.cloud"
},
{
"name": "七米藍",
"server": "https://al.chirmyram.com"
},
{
"name": "初心",
"server": "https://cxpan.xyz"
},
{
"name": "趣盘",
"server": "https://pan.mediy.cn"
},
{
"name": "电瞄",
"server": "https://pan.110014.xyz"
},
{
"name": "ZhuiFan",
"server": "https://zhuifan.link"
},
{
"name": "Apachec",
"server": "https://w2.apachecn.org"
},
{
"name": "ffssaa7",
"server": "https://alist.ffssaa7.site"
},
{
"name": "Hᴇᴀᴇɴ",
"server": "http://7heaven.eu.org"
},
{
"name": "Aeahhe",
"server": "https://www.yeahhe.online"
},
{
"name": "ECVE",
"server": "https://pan.ecve.cn"
},
{
"name": "一个小站",
"server": "https://alist.ygxz.xyz"
},
{
"name": "云顶天宫",
"server": "https://file.i80k.com"
}
]
}

61
js/cilixiong.js Normal file
View File

@ -0,0 +1,61 @@
var rule = {
title:'磁力熊[磁]',
host:'https://www.cilixiong.com',
homeUrl:'/',
url: '/fyclassfyfilter-(fypage-1).html',
//host:'http://127.0.0.1:10079',
//homeUrl:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com',
//url:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com/fyclassfyfilter-(fypage-1).html',
filter_url:'-{{fl.class or "0"}}-{{fl.area or "0"}}',
filter:{
"1":[{"key":"class","name":"类型","value":[{"n":"全部","v":"0"},{"n":"剧情","v":"1"},{"n":"喜剧","v":"2"},{"n":"惊悚","v":"3"},{"n":"动作","v":"4"},{"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":"13"},{"n":"战争","v":"14"},{"n":"历史","v":"15"},{"n":"传记","v":"16"},{"n":"音乐","v":"17"},{"n":"歌舞","v":"18"},{"n":"运动","v":"19"},{"n":"西部","v":"20"},{"n":"灾难","v":"21"},{"n":"古装","v":"22"},{"n":"情色","v":"23"},{"n":"同性","v":"24"},{"n":"儿童","v":"25"},{"n":"纪录片","v":"26"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"0"},{"n":"大陆","v":"1"},{"n":"香港","v":"2"},{"n":"台湾","v":"3"},{"n":"美国","v":"4"},{"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":"13"},{"n":"巴西","v":"14"},{"n":"加拿大","v":"15"},{"n":"俄罗斯","v":"16"},{"n":"意大利","v":"17"},{"n":"比利时","v":"18"},{"n":"爱尔兰","v":"19"},{"n":"西班牙","v":"20"},{"n":"澳大利亚","v":"21"},{"n":"波兰","v":"22"},{"n":"土耳其","v":"23"},{"n":"越南","v":"24"}]}],
"2":[{"key":"class","name":"类型","value":[{"n":"全部","v":"0"},{"n":"剧情","v":"1"},{"n":"喜剧","v":"2"},{"n":"惊悚","v":"3"},{"n":"动作","v":"4"},{"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":"13"},{"n":"战争","v":"14"},{"n":"历史","v":"15"},{"n":"传记","v":"16"},{"n":"音乐","v":"17"},{"n":"歌舞","v":"18"},{"n":"运动","v":"19"},{"n":"西部","v":"20"},{"n":"灾难","v":"21"},{"n":"古装","v":"22"},{"n":"情色","v":"23"},{"n":"同性","v":"24"},{"n":"儿童","v":"25"},{"n":"纪录片","v":"26"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"0"},{"n":"大陆","v":"1"},{"n":"香港","v":"2"},{"n":"台湾","v":"3"},{"n":"美国","v":"4"},{"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":"13"},{"n":"巴西","v":"14"},{"n":"加拿大","v":"15"},{"n":"俄罗斯","v":"16"},{"n":"意大利","v":"17"},{"n":"比利时","v":"18"},{"n":"爱尔兰","v":"19"},{"n":"西班牙","v":"20"},{"n":"澳大利亚","v":"21"},{"n":"波兰","v":"22"},{"n":"土耳其","v":"23"},{"n":"越南","v":"24"}]}]
},
searchUrl: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com/e/search/index.php#classid=1,2&show=title&tempid=1&keyboard=**;post',
searchable:0,
quickSearch:0,
filterable:1,
headers:{
'User-Agent': 'MOBILE_UA'
},
timeout:5000,
class_name:'电影&剧集&豆瓣电影Top250&IMDB Top250&高分悬疑片&高分喜剧片&高分传记片&高分爱情片&高分犯罪片&高分恐怖片&高分冒险片&高分武侠片&高分奇幻片&高分历史片&高分战争片&高分歌舞片&高分灾难片&高分情色片&高分西部片&高分音乐片&高分科幻片&高分动作片&高分动画片&高分纪录片&冷门佳片',
class_url:'1&2&/top250/&/s/imdbtop250/&/s/suspense/&/s/comedy/&/s/biopic/&/s/romance/&/s/crime/&/s/horror/&/s/adventure/&/s/martial/&/s/fantasy/&/s/history/&/s/war/&/s/musical/&/s/disaster/&/s/erotic/&/s/west/&/s/music/&/s/sci-fi/&/s/action/&/s/animation/&/s/documentary/&/s/unpopular/',
play_parse:false,
lazy:'',
limit:6,
推荐: `js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
var d = [];
var html = request(input);
var list = pdfa(html, 'body&&.col');
list.forEach(it => {
d.push({
title: pdfh(it, 'h2&&Text'),
desc: pdfh(it, '.me-auto&&Text') + '分 / ' + pdfh(it, '.small&&Text'),
pic_url: pd(it, '.card-img&&style')
});
})
setResult(d);
`,
一级: `js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
var d = [];
if (MY_CATE !== '1' && MY_CATE !== '2') {
let turl = (MY_PAGE === 1)? 'index' : 'index_'+ MY_PAGE;
input = rule.homeUrl + MY_CATE + turl + '.html';
}
var html = request(input);
var list = pdfa(html, 'body&&.col');
list.forEach(it => {
d.push({
title: pdfh(it, 'h2&&Text'),
desc: pdfh(it, '.me-auto&&Text') + '分 / ' + pdfh(it, '.small&&Text'),
pic_url: pdfh(it, '.card-img&&style')
});
})
setResult(d);
`,
二级:'',
搜索:'',
}

61
js/cilixiongp.js Normal file
View File

@ -0,0 +1,61 @@
var rule = {
title:'磁力熊[磁]',
//host:'https://www.cilixiong.com',
//homeUrl:'/',
//url: '/fyclassfyfilter-(fypage-1).html',
host:'http://127.0.0.1:10079',
homeUrl:'/p/0/127.0.0.1:10072/https://www.cilixiong.com',
url:'/p/0/127.0.0.1:10072/https://www.cilixiong.com/fyclassfyfilter-(fypage-1).html',
filter_url:'-{{fl.class or "0"}}-{{fl.area or "0"}}',
filter:{
"1":[{"key":"class","name":"类型","value":[{"n":"全部","v":"0"},{"n":"剧情","v":"1"},{"n":"喜剧","v":"2"},{"n":"惊悚","v":"3"},{"n":"动作","v":"4"},{"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":"13"},{"n":"战争","v":"14"},{"n":"历史","v":"15"},{"n":"传记","v":"16"},{"n":"音乐","v":"17"},{"n":"歌舞","v":"18"},{"n":"运动","v":"19"},{"n":"西部","v":"20"},{"n":"灾难","v":"21"},{"n":"古装","v":"22"},{"n":"情色","v":"23"},{"n":"同性","v":"24"},{"n":"儿童","v":"25"},{"n":"纪录片","v":"26"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"0"},{"n":"大陆","v":"1"},{"n":"香港","v":"2"},{"n":"台湾","v":"3"},{"n":"美国","v":"4"},{"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":"13"},{"n":"巴西","v":"14"},{"n":"加拿大","v":"15"},{"n":"俄罗斯","v":"16"},{"n":"意大利","v":"17"},{"n":"比利时","v":"18"},{"n":"爱尔兰","v":"19"},{"n":"西班牙","v":"20"},{"n":"澳大利亚","v":"21"},{"n":"波兰","v":"22"},{"n":"土耳其","v":"23"},{"n":"越南","v":"24"}]}],
"2":[{"key":"class","name":"类型","value":[{"n":"全部","v":"0"},{"n":"剧情","v":"1"},{"n":"喜剧","v":"2"},{"n":"惊悚","v":"3"},{"n":"动作","v":"4"},{"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":"13"},{"n":"战争","v":"14"},{"n":"历史","v":"15"},{"n":"传记","v":"16"},{"n":"音乐","v":"17"},{"n":"歌舞","v":"18"},{"n":"运动","v":"19"},{"n":"西部","v":"20"},{"n":"灾难","v":"21"},{"n":"古装","v":"22"},{"n":"情色","v":"23"},{"n":"同性","v":"24"},{"n":"儿童","v":"25"},{"n":"纪录片","v":"26"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"0"},{"n":"大陆","v":"1"},{"n":"香港","v":"2"},{"n":"台湾","v":"3"},{"n":"美国","v":"4"},{"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":"13"},{"n":"巴西","v":"14"},{"n":"加拿大","v":"15"},{"n":"俄罗斯","v":"16"},{"n":"意大利","v":"17"},{"n":"比利时","v":"18"},{"n":"爱尔兰","v":"19"},{"n":"西班牙","v":"20"},{"n":"澳大利亚","v":"21"},{"n":"波兰","v":"22"},{"n":"土耳其","v":"23"},{"n":"越南","v":"24"}]}]
},
searchUrl: '/p/0/127.0.0.1:10072/https://www.cilixiong.com/e/search/index.php#classid=1,2&show=title&tempid=1&keyboard=**;post',
searchable:0,
quickSearch:0,
filterable:1,
headers:{
'User-Agent': 'MOBILE_UA'
},
timeout:5000,
class_name:'电影&剧集&豆瓣电影Top250&IMDB Top250&高分悬疑片&高分喜剧片&高分传记片&高分爱情片&高分犯罪片&高分恐怖片&高分冒险片&高分武侠片&高分奇幻片&高分历史片&高分战争片&高分歌舞片&高分灾难片&高分情色片&高分西部片&高分音乐片&高分科幻片&高分动作片&高分动画片&高分纪录片&冷门佳片',
class_url:'1&2&/top250/&/s/imdbtop250/&/s/suspense/&/s/comedy/&/s/biopic/&/s/romance/&/s/crime/&/s/horror/&/s/adventure/&/s/martial/&/s/fantasy/&/s/history/&/s/war/&/s/musical/&/s/disaster/&/s/erotic/&/s/west/&/s/music/&/s/sci-fi/&/s/action/&/s/animation/&/s/documentary/&/s/unpopular/',
play_parse:false,
lazy:'',
limit:6,
推荐: `js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
var d = [];
var html = request(input);
var list = pdfa(html, 'body&&.col');
list.forEach(it => {
d.push({
title: pdfh(it, 'h2&&Text'),
desc: pdfh(it, '.me-auto&&Text') + '分 / ' + pdfh(it, '.small&&Text'),
pic_url: pd(it, '.card-img&&style')
});
})
setResult(d);
`,
一级: `js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
var d = [];
if (MY_CATE !== '1' && MY_CATE !== '2') {
let turl = (MY_PAGE === 1)? 'index' : 'index_'+ MY_PAGE;
input = rule.homeUrl + MY_CATE + turl + '.html';
}
var html = request(input);
var list = pdfa(html, 'body&&.col');
list.forEach(it => {
d.push({
title: pdfh(it, 'h2&&Text'),
desc: pdfh(it, '.me-auto&&Text') + '分 / ' + pdfh(it, '.small&&Text'),
pic_url: pdfh(it, '.card-img&&style')
});
})
setResult(d);
`,
二级:'',
搜索:'',
}

593
js/cj.json Normal file
View File

@ -0,0 +1,593 @@
{
"ss": 1,
"api_site": [
{
"name": "TV-电影天堂资源",
"api": "http://caiji.dyttzyapi.com/api.php/provide/vod",
"detail": "http://caiji.dyttzyapi.com",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "TV-量子资源",
"api": "https://cj.lziapi.com/api.php/provide/vod",
"detail": "",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-1080资源",
"api": "https://api.1080zyku.com/inc/api_mac10.php",
"detail": "https://api.1080zyku.com",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "AV-155资源",
"api": "https://155api.com/api.php/provide/vod",
"detail": "https://155api.com",
"bz": "0",
"paichu": ""
},
{
"name": "TV-360资源",
"api": "https://360zy.com/api.php/provide/vod",
"detail": "https://360zy.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-天涯资源",
"api": "https://tyyszy.com/api.php/provide/vod",
"detail": "https://tyyszy.com",
"bz": "1",
"paichu": "20,39,45,50"
},
{
"name": "TV-暴风资源",
"api": "https://bfzyapi.com/api.php/provide/vod",
"detail": "",
"bz": "1",
"paichu": ""
},
{
"name": "TV-索尼-闪电资源",
"api": "https://xsd.sdzyapi.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "TV-索尼资源",
"api": "https://suoniapi.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "TV-红牛资源",
"api": "https://www.hongniuzy2.com/api.php/provide/vod",
"detail": "https://www.hongniuzy2.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-茅台资源",
"api": "https://caiji.maotaizy.cc/api.php/provide/vod",
"detail": "https://caiji.maotaizy.cc",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-虎牙资源",
"api": "https://www.huyaapi.com/api.php/provide/vod",
"detail": "https://www.huyaapi.com",
"bz": "0",
"paichu": "1,2,17"
},
{
"name": "TV-豆瓣资源",
"api": "https://caiji.dbzy.tv/api.php/provide/vod",
"detail": "https://caiji.dbzy.tv",
"bz": "1",
"paichu": "1,2,3,4,42,51,52"
},
{
"name": "TV-豆瓣资源2",
"api": "https://dbzy.tv/api.php/provide/vod",
"detail": "https://dbzy.tv",
"bz": "1",
"paichu": "1,2,3,4,42,51,52"
},
{
"name": "TV-豆瓣资源3",
"api": "https://caiji.dbzy5.com/api.php/provide/vod/from/dbm3u8/at/josn",
"detail": "https://dbzy.tv",
"bz": "1",
"paichu": "1,2,3,4,42,51,52"
},
{
"name": "TV-豪华资源",
"api": "https://hhzyapi.com/api.php/provide/vod",
"detail": "https://hhzyapi.com",
"bz": "1",
"paichu": "1,2,17,27"
},
{
"name": "TV-CK资源",
"api": "https://ckzy.me/api.php/provide/vod",
"detail": "https://ckzy.me",
"bz": "1",
"paichu": "21,39"
},
{
"name": "TV-U酷资源",
"api": "https://api.ukuapi.com/api.php/provide/vod",
"detail": "https://api.ukuapi.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-U酷资源2",
"api": "https://api.ukuapi88.com/api.php/provide/vod",
"detail": "https://api.ukuapi88.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-ikun资源",
"api": "https://ikunzyapi.com/api.php/provide/vod",
"detail": "https://ikunzyapi.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-wujinapi无尽",
"api": "https://api.wujinapi.cc/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2,3,4,5"
},
{
"name": "TV-丫丫点播",
"api": "https://cj.yayazy.net/api.php/provide/vod",
"detail": "https://cj.yayazy.net",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "TV-光速资源",
"api": "https://api.guangsuapi.com/api.php/provide/vod",
"detail": "https://api.guangsuapi.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-卧龙点播",
"api": "https://collect.wolongzyw.com/api.php/provide/vod",
"detail": "https://collect.wolongzyw.com",
"bz": "1",
"paichu": ""
},
{
"name": "TV-卧龙资源",
"api": "https://collect.wolongzy.cc/api.php/provide/vod",
"detail": "",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-卧龙资源2",
"api": "https://wolongzyw.com/api.php/provide/vod",
"detail": "https://wolongzyw.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-新浪点播",
"api": "https://api.xinlangapi.com/xinlangapi.php/provide/vod",
"detail": "https://api.xinlangapi.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-无尽资源",
"api": "https://api.wujinapi.com/api.php/provide/vod",
"detail": "",
"bz": "1",
"paichu": "1,2,3,4,5"
},
{
"name": "TV-无尽资源2",
"api": "https://api.wujinapi.me/api.php/provide/vod",
"detail": "",
"bz": "1",
"paichu": "1,2,3,4,5"
},
{
"name": "TV-无尽资源3",
"api": "https://api.wujinapi.net/api.php/provide/vod",
"detail": "",
"bz": "1",
"paichu": "1,2,3,4,5"
},
{
"name": "TV-旺旺短剧",
"api": "https://wwzy.tv/api.php/provide/vod",
"detail": "https://wwzy.tv",
"bz": "1",
"paichu": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18"
},
{
"name": "TV-旺旺资源",
"api": "https://api.wwzy.tv/api.php/provide/vod",
"detail": "https://api.wwzy.tv",
"bz": "1",
"paichu": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18"
},
{
"name": "TV-最大点播",
"api": "http://zuidazy.me/api.php/provide/vod",
"detail": "http://zuidazy.me",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-最大资源",
"api": "https://api.zuidapi.com/api.php/provide/vod",
"detail": "https://api.zuidapi.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-樱花资源",
"api": "https://m3u8.apiyhzy.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2,3,4,5"
},
{
"name": "TV-步步高资源",
"api": "https://api.yparse.com/api/json",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "TV-牛牛点播",
"api": "https://api.niuniuzy.me/api.php/provide/vod",
"detail": "https://api.niuniuzy.me",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "AV-gay资源",
"api": "https://gayapi.com/api.php/provide/vod/at/json",
"detail": "https://api.bwzyz.com",
"bz": "0",
"paichu": ""
},
{
"name": "TV-百度云资源",
"api": "https://api.apibdzy.com/api.php/provide/vod",
"detail": "https://api.apibdzy.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-神马云",
"api": "https://api.1080zyku.com/inc/apijson.php/",
"detail": "https://api.1080zyku.com",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-速博资源",
"api": "https://subocaiji.com/api.php/provide/vod",
"detail": "",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-金鹰点播",
"api": "https://jinyingzy.com/api.php/provide/vod",
"detail": "https://jinyingzy.com",
"bz": "1",
"paichu": "1,2,17,27"
},
{
"name": "TV-金鹰资源",
"api": "https://jyzyapi.com/api.php/provide/vod",
"detail": "https://jyzyapi.com",
"bz": "1",
"paichu": "1,2,17,27"
},
{
"name": "TV-閃電资源",
"api": "https://sdzyapi.com/api.php/provide/vod",
"detail": "https://sdzyapi.com",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "TV-非凡资源",
"api": "https://cj.ffzyapi.com/api.php/provide/vod",
"detail": "https://cj.ffzyapi.com",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "TV-飘零资源",
"api": "https://p2100.net/api.php/provide/vod",
"detail": "https://p2100.net",
"bz": "1",
"paichu": "1,2,3,4"
},
{
"name": "TV-魔爪资源",
"api": "https://mozhuazy.com/api.php/provide/vod",
"detail": "https://mozhuazy.com",
"bz": "1",
"paichu": "1,25,34,40"
},
{
"name": "TV-魔都动漫",
"api": "https://caiji.moduapi.cc/api.php/provide/vod",
"detail": "https://caiji.moduapi.cc",
"bz": "1",
"paichu": ""
},
{
"name": "TV-魔都资源",
"api": "https://www.mdzyapi.com/api.php/provide/vod",
"detail": "https://www.mdzyapi.com",
"bz": "1",
"paichu": ""
},
{
"name": "AV-91麻豆",
"api": "https://91md.me/api.php/provide/vod",
"detail": "https://91md.me",
"bz": "0",
"paichu": ""
},
{
"name": "AV-AIvin",
"api": "http://lbapiby.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "AV-JKUN资源",
"api": "https://jkunzyapi.com/api.php/provide/vod",
"detail": "https://jkunzyapi.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-souav资源",
"api": "https://api.souavzy.vip/api.php/provide/vod",
"detail": "https://api.souavzy.vip",
"bz": "0",
"paichu": ""
},
{
"name": "AV-乐播资源",
"api": "https://lbapi9.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "AV-奥斯卡资源",
"api": "https://aosikazy.com/api.php/provide/vod",
"detail": "https://aosikazy.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-奶香香",
"api": "https://Naixxzy.com/api.php/provide/vod",
"detail": "https://Naixxzy.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-森林资源",
"api": "https://slapibf.com/api.php/provide/vod",
"detail": "https://slapibf.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-淫水机资源",
"api": "https://www.xrbsp.com/api/json.php",
"detail": "https://www.xrbsp.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-玉兔资源",
"api": "https://apiyutu.com/api.php/provide/vod",
"detail": "https://apiyutu.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-番号资源",
"api": "http://fhapi9.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "AV-白嫖资源",
"api": "https://www.kxgav.com/api/json.php",
"detail": "https://www.kxgav.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-精品资源",
"api": "https://www.jingpinx.com/api.php/provide/vod",
"detail": "https://www.jingpinx.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-美少女资源",
"api": "https://www.msnii.com/api/json.php",
"detail": "https://www.msnii.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-老色逼资源",
"api": "https://apilsbzy1.com/api.php/provide/vod",
"detail": "https://apilsbzy1.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-色南国",
"api": "https://api.sexnguon.com/api.php/provide/vod",
"detail": "https://api.sexnguon.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-色猫资源",
"api": "https://api.maozyapi.com/inc/apijson_vod.php",
"detail": "https://api.maozyapi.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-辣椒资源",
"api": "https://apilj.com/api.php/provide/vod",
"detail": "https://apilj.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-香奶儿资源",
"api": "https://www.gdlsp.com/api/json.php",
"detail": "https://www.gdlsp.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-鲨鱼资源",
"api": "https://shayuapi.com/api.php/provide/vod",
"detail": "https://shayuapi.com",
"bz": "0",
"paichu": ""
},
{
"name": "AV-黄AV资源",
"api": "https://www.pgxdy.com/api/json.php",
"detail": "https://www.pgxdy.com",
"bz": "0",
"paichu": ""
},
{
"name": "TV-极速资源",
"api": "https://jszyapi.com/api.php/provide/vod",
"detail": "https://jszyapi.com",
"bz": "0",
"paichu": "1,2,17,27"
},
{
"name": "TV-魔爪资源",
"api": "https://mozhuazy.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,25,34,40"
},
{
"name": "TV-魔都资源",
"api": "https://www.mdzyapi.com/api.php/provide/vod",
"bz": "0",
"detail": "",
"paichu": ""
},
{
"name": "杏吧资源",
"api": "https://xingba111.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "TV-量子资源",
"api": "https://cj.lziapi.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "森林资源",
"api": "https://slapibf.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "TV-红牛资源",
"api": "https://www.hongniuzy3.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2"
},
{
"name": "TV-鸭鸭资源",
"api": "https://cj.yayazy.net/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2,3,4"
},
{
"name": "TV-海洋资源",
"api": "http://www.seacms.org/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "黄色资源啊啊",
"api": "https://hsckzy888.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "小鸡资源",
"api": "https://api.xiaojizy.live/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "TV-新浪资源阿",
"api": "https://api.xinlangapi.com/xinlangapi.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": "1,2"
},
{
"name": "辣椒资源黄黄",
"api": "https://apilj.com/api.php/provide",
"detail": "",
"bz": "0",
"paichu": ""
},
{
"name": "细胞采集黄色",
"api": "https://www.xxibaozyw.com/api.php/provide/vod",
"detail": "",
"bz": "0",
"paichu": ""
}
]
}

174
js/ddys.js Normal file
View File

@ -0,0 +1,174 @@
var lists = `js:
log(TABS);
let d = [];
pdfh = jsp.pdfh;
pdfa = jsp.pdfa;
if (typeof play_url === "undefined") {
var play_url = ""
}
function getLists(html)
{
let src = pdfh(html, ".wp-playlist-script&&Html");
src = JSON.parse(src).tracks;
let list1 = [];
let list2 = [];
let url1 = "";
let url2 = "";
src.forEach(function(it) {
let src0 = it.src0;
let src1 = it.src1;
let title = it.caption;
url1 = "https://v.ddys.pro" + src0;
url2 = "https://ddys.pro/getvddr2/video?id=" + src1 + "&type=mix";
let zm = "https://ddys.pro/subddr/" + it.subsrc;
list1.push({
title: title,
url: url1,
desc: zm
});
list2.push({
title: title,
url: url2,
desc: zm
})
});
return {
list1: list1,
list2: list2
}
}
var data = getLists(html);
var list1 = data.list1;
var list2 = data.list2;
let nums = pdfa(html, "body&&.post-page-numbers");
nums.forEach
(function(it)
{
let num = pdfh(it, "body&&Text");
log(num);
let nurl = input + num + "/";
if (num == 1) {
return
}
log(nurl);
let html = request(nurl);
let data = getLists(html);
list1 = list1.concat(data.list1);
list2 = list2.concat(data.list2)
});
list1 = list1.map(function(item) {
return item.title + "$" + play_url + urlencode(item.url + "|" + input + "|" + item.desc)
});
list2 = list2.map(function(item) {
return item.title + "$" + play_url + urlencode(item.url + "|" + input + "|" + item.desc)
});
LISTS=[];
let dd = pdfa(html, 'div.wp-playlist~a');
dd.forEach(function(it){
let burl = pd(it, 'a&&href', HOST);
if (/(pan.quark.cn|www.aliyundrive.com|www.alipan.com)/.test(burl)){
let type="ali";
if (burl.includes("www.aliyundrive.com") || burl.includes("www.alipan.com")){
type = "ali";
}else if (burl.includes("pan.quark.cn")){
type = "quark";
}
LISTS.push([burl+ '$' + play_url + urlencode('http://127.0.0.1:9978/proxy?do='+type+'&type=push&url='+encodeURIComponent(burl)) + '||']);
}
});
LISTS = LISTS.concat([list1, list2]);
`;
var lazy = `js:
let purl = input.split("|")[0];
let referer = input.split("|")[1];
let zm = input.split("|")[2];
print("purl:" + purl);
print("referer:" + referer);
print("zm:" + zm);
if (/getvddr/.test(purl)) {
let html = request(purl, {
headers: {
Referer: HOST,
"User-Agent": MOBILE_UA
}
});
print(html);
try {
input = {jx:0,url:JSON.parse(html).url,parse:0} || {}
} catch (e) {
input = purl
}
} else {
input = {
jx: 0,
url: purl,
parse: 0,
header: JSON.stringify({
'user-agent': MOBILE_UA,
'referer': HOST
})
}
}
`;
// 网址发布页 https://ddys.site
// 网址发布页 https://ddys.wiki
var rule={
title:'ddys',
// host:'https://ddys.wiki',
// hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}});HOST = jsp.pdfh(html,"a:eq(1)&&href")',
host:'https://ddys.pro',
// host:'https://ddys.mov',
url:'/fyclass/page/fypage/',
searchUrl:'/?s=**&post_type=post',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent':'MOBILE_UA',
},
class_parse:'#primary-menu li.menu-item;a&&Text;a&&href;\.pro/(.*)',
cate_exclude:'站长|^其他$|关于|^电影$|^剧集$|^类型$',
play_parse:true,
// lazy:'js:let purl=input.split("|")[0];let referer=input.split("|")[1];let zm=input.split("|")[2];print("purl:"+purl);print("referer:"+referer);print("zm:"+zm);let myua="okhttp/3.15";if(/ddrkey/.test(purl)){let ret=request(purl,{Referer:referer,withHeaders:true,"User-Agent":myua});log(ret);input=purl}else{let html=request(purl,{headers:{Referer:referer,"User-Agent":myua}});print(html);try{input=JSON.parse(html).url||{}}catch(e){input=purl}}',
lazy:lazy,
limit:6,
推荐:'*',
double:true, // 推荐内容是否双层定位
一级:'.post-box-list&&article;a:eq(-1)&&Text;.post-box-image&&style;a:eq(0)&&Text;a:eq(-1)&&href',
二级:{
"title":".post-title&&Text;.cat-links&&Text",
"img":".doulist-item&&img&&data-cfsrc",
"desc":".published&&Text",
"content":".abstract&&Text",
"tabs":`js:
TABS=[];
let d = pdfa(html, 'div.wp-playlist~a');
let tabsq=[];
d.forEach(function(it){
let burl = pd(it, 'a&&href', HOST);
if (burl.includes("pan.quark.cn")){
tabsq.push("夸克網盤");
}else if (burl.includes("www.aliyundrive.com") || burl.includes("www.alipan.com")){
tabsq.push("阿里雲盤");
}
});
if (tabsq.length == 1){
TABS=TABS.concat(tabsq);
}else{
let tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it+tmpIndex);
tmpIndex++;
});
}
TABS=TABS.concat(['国内(改Exo播放器)','国内2']);
`,
"lists":lists
},
搜索:'#main&&article;.post-title&&Text;;.published&&Text;a&&href'
}

142
js/dydhhy.js Normal file
View File

@ -0,0 +1,142 @@
var rule = {
title: 'dydhhy',
host: 'http://www.dydhhy.com',
homeUrl: '/',
url: '/tag/fyclass/page/fypage?',
filter_url: '{{fl.class}}',
filter: {},
searchUrl: '/?s=**',
searchable: 2,
quickSearch: 1,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
'Cookie': ''
},
timeout: 5000,
class_name: '电视剧&电影&美剧&韩剧&日剧&英剧&2023&2022&2021',
class_url: 'tv&movie&美剧&韩剧&日剧&英剧&2023&2022&2021',
play_parse: true,
play_json: [{
re: '*',
json: {
parse: 0,
jx: 0
}
}],
lazy: '',
limit: 6,
推荐: 'div.clear:gt(1):has(img);.entry-title&&Text;img&&src;;a&&href',
一级: 'div.clear:gt(1):has(img);.entry-title&&Text;img&&src;;a&&href',
二级: {
title: ".single-excerpt&&Text",
img: "img&&src",
desc: ".entry-date&&Text",
content: "p&&Text",
tabs: `js: pdfh = jsp.pdfh;
pdfa = jsp.pdfa;
pd = jsp.pd;
TABS=[]
let d = pdfa(html, 'fieldset p a');
let tabsa = [];
let tabsq = [];
let tabsm = false;
let tabse = false;
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
if (tabsm === true){
TABS.push("磁力");
}
if (tabse === true){
TABS.push("電驢");
}
if (false && tabsa.length + tabsq.length > 1){
TABS.push("選擇右側綫路");
}
let tmpIndex;
tmpIndex=1;
tabsa.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
log('xzys TABS >>>>>>>>>>>>>>>>>>' + TABS);`,
lists: `js: log(TABS);
pdfh = jsp.pdfh;
pdfa = jsp.pdfa;
pd = jsp.pd;
LISTS = [];
let d = pdfa(html, 'fieldset p a');
let lista = [];
let listq = [];
let listm = [];
let liste = [];
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = "push://" + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = "push://" + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
if (listm.length>0){
LISTS.push(listm);
}
if (liste.length>0){
LISTS.push(liste);
}
if (false && lista.length + listq.length > 1){
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
lista.forEach(function(it){
LISTS.push([it]);
});
listq.forEach(function(it){
LISTS.push([it]);
});`,
}, 搜索: 'div.clear:gt(0):has(img);img&&alt;img&&data-src;;a&&href',
}

212
js/dygang.js Normal file
View File

@ -0,0 +1,212 @@
var rule = {
title:'电影港[磁]',
编码:'gb2312',
搜索编码:'gb2312',
host:'https://www.dygang.tv',
homeUrl:'/',
url: '/fyclass/index_fypage.htm?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/e/search/index123.php#tempid=1&tbname=article&keyborad=**&show=title%2Csmalltext&Submit=%CB%D1%CB%F7;post',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': 'MOBILE_UA',
'Referer': 'https://www.dygang.tv/'
},
timeout:5000,
class_name:'最新电影&经典高清&国配电影&经典港片&国剧&日韩剧&美剧&综艺&动漫&纪录片&高清原盘&4K高清区&3D电影&电影专题',
class_url:'ys&bd&gy&gp&dsj&dsj1&yx&zy&dmq&jilupian&1080p&4K&3d&dyzt',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'div#tl tr:has(>td>table.border1>tbody>tr>td>a>img);table.border1 img&&alt;table.border1 img&&src;table:eq(2)&&Text;a&&href',
一级:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
let turl = (MY_PAGE === 1)? '/' : '/index_'+ MY_PAGE + '.htm';
input = rule.homeUrl + MY_CATE + turl;
let html = request(input);
let list = pdfa(html, 'tr:has(>td>table.border1)');
list.forEach(it => {
let title = pdfh(it, 'table.border1 img&&alt');
if (title!==""){
d.push({
title: title,
desc: pdfh(it, 'table:eq(1)&&Text'),
pic_url: pd(it, 'table.border1 img&&src', HOST),
url: pdfh(it, 'a&&href')
});
}
})
setResult(d);
`,
二级:{
title:"div.title a&&Text",
img:"#dede_content img&&src",
desc:"#dede_content&&Text",
content:"#dede_content&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let d = pdfa(html, '#dede_content table tbody tr');
let tabsa = [];
let tabsq = [];
let tabsm = false;
let tabse = false;
let tabm3u8 = [];
d.forEach(function(it) {
let burl = pd(it, 'a&&href',HOST);
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/"){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
if (false){
d = pdfa(html, 'div:has(>div#post_content) div.widget:has(>h3)');
d.forEach(function(it) {
tabm3u8.push(pdfh(it, 'h3&&Text'));
});
}
if (tabsm === true){
TABS.push("磁力");
}
if (tabse === true){
TABS.push("電驢");
}
if (false && tabsa.length + tabsq.length > 1){
TABS.push("選擇右側綫路");
}
let tmpIndex;
tmpIndex=1;
tabsa.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tabm3u8.forEach(function(it){
TABS.push(it);
});
log('dygang TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let d = pdfa(html, '#dede_content table tbody tr');
let lista = [];
let listq = [];
let listm = [];
let liste = [];
let listm3u8 = {};
d.forEach(function(it){
let burl = pd(it, 'a&&href',HOST);
let title = pdfh(it, 'a&&Text');
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/"){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
if (listm.length>0){
LISTS.push(listm);
}
if (liste.length>0){
LISTS.push(liste);
}
lista.forEach(function(it){
LISTS.push([it]);
});
listq.forEach(function(it){
LISTS.push([it]);
});
for ( const key in listm3u8 ){
if (listm3u8.hasOwnProperty(key)){
LISTS.push(listm3u8[key]);
}
};
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let params = 'tempid=1&tbname=article&keyboard=' + KEY + '&show=title%2Csmalltext&Submit=%CB%D1%CB%F7';
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let postData = {
method: "POST",
body: params
};
delete(_fetch_params.headers['Content-Type']);
Object.assign(_fetch_params, postData);
log("dygang search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
let search_html = request( HOST + '/e/search/index123.php', _fetch_params, true);
//log("dygang search result>>>>>>>>>>>>>>>" + search_html);
let d=[];
let dlist = pdfa(search_html, 'table.border1');
dlist.forEach(function(it){
let title = pdfh(it, 'img&&alt');
if (searchObj.quick === true){
if (false && title.includes(KEY)){
title = KEY;
}
}
let img = pd(it, 'img&&src', HOST);
let content = pdfh(it, 'img&&alt');
let desc = pdfh(it, 'img&&alt');
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
})
});
setResult(d);
`,
}

BIN
js/fty/fty.jar Normal file

Binary file not shown.

639
js/fty/fty.json Normal file
View File

@ -0,0 +1,639 @@
{
"spider": "./fty.jar;md5;1bb88ce368642e615b1c4ff388501e51",
"wallpaper": "https://深色壁纸.xxooo.cf/",
"sites": [
{
"key": "豆",
"name": "修复哔哔 看球【神秘的哥哥们】",
"type": 3,
"api": "csp_DouDouGuard",
"indexs": 1,
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "玩偶",
"name": "👽玩偶哥哥┃4K弹幕",
"type": 3,
"api": "csp_WoGGGuard",
"timeout": 30,
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto",
"siteUrl": "https://www.wogg.com/",
"danMu": "弹"
}
},
{
"key": "YGP",
"name": "🚀叨观荐影┃预告片",
"type": 3,
"api": "csp_YGPGuard",
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "alllive",
"name": "📽️一直播┃直播",
"type": 3,
"api": "csp_AllliveGuard",
"playerType": 2,
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "seed",
"name": "💡聚剧剧┃三盘",
"type": 3,
"api": "csp_SeedhubGuard",
"changeable": 0,
"ext": "5++kwLhNYm9UrO9wh7Dl7eKamTee4s/5",
"searchable": 1,
"quickSearch": 1,
"indexs": 0,
"style": {
"type": "list"
}
},
{
"key": "文采",
"name": "💮文采┃秒播",
"type": 3,
"api": "csp_JpysGuard",
"timeout": 15,
"playerType": 2,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "厂长",
"name": "📔厂长┃秒播",
"type": 3,
"api": "csp_NewCzGuard",
"timeout": 15,
"playerType": 2,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "红豆",
"name": "🍊红豆┃秒播",
"type": 3,
"api": "csp_AppYsV2Guard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"ext": "rfOK0+FRORAJ7epFjN2F+b62oTbKnNv+zj89eMviFBcbfFEe8jYhqrVuJPhQwYVw6DaRbsAFhCg06UF4EfNqSore66yYRm2oWbjVjKP+Vyo="
},
{
"key": "糯米",
"name": "🍓糯米┃秒播",
"type": 3,
"api": "csp_NmyswvGuard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "比特",
"name": "🍄比特┃秒播",
"type": 3,
"api": "csp_BttwooGuard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "立播",
"name": "🌟立播┃秒播",
"type": 3,
"api": "csp_LibvioGuard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "原创",
"name": "☀原创┃不卡",
"type": 3,
"api": "csp_YCyzGuard",
"timeout": 30,
"playerType": 1,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "苹果",
"name": "🍎苹果┃不卡",
"type": 3,
"api": "csp_LiteAppleGuard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "欢视",
"name": "👓欢视┃多线",
"type": 3,
"api": "csp_AppTTGuard",
"timeout": 15,
"playerType": 2,
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"ext": "uqGL1bNENExT9fFAy5mE5qU="
},
{
"key": "热播",
"name": "📺热播┃多线",
"type": 3,
"api": "csp_AppTTGuard",
"timeout": 15,
"playerType": 2,
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"ext": "uqGL1bNENExT7/hGxpSE5qU="
},
{
"key": "剧九",
"name": "👀剧九┃多线",
"type": 3,
"api": "csp_AppYsV2Guard",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "rfOK0+FRORAJ7epFjN2F+LmhvGnF29fnxik8eJC3AAlFJl8e/Co3qKR3f7pI2cY5ozXZZ9dHjiJz7Ht9P/01UpTYurKeSnahWreewemiQ2fux0BkNEtR69ypVhP1Muo4YsZTow4IKQzyEtbS42eHS9QK"
},
{
"key": "下饭",
"name": "🍙下饭┃多线",
"type": 3,
"api": "csp_AppYsV2Guard",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "rfOK0+FRORAJ7epFjN2F+Lm9o2nF28P91TA4dIy3AAlFJl8e/Co3qKR3f7pI2cY5ozXZZ9dHjiJz7Ht9P/01UpTYurKeSnahWreewemiQ2fux0BkNEtR69ypVhP1Muo4YsZTow4IKQzyEtbS42eHS9QK"
},
{
"key": "低端",
"name": "⏮️低端┃外剧",
"type": 3,
"api": "csp_DdrkGuard",
"timeout": 15,
"playerType": "2",
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "奥特",
"name": "🏝奥特┃多线",
"type": 3,
"api": "csp_AueteGuard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"ext": "https://auete.com/"
},
{
"key": "荐片",
"name": "🐭荐片┃P2P",
"type": 3,
"api": "csp_JPJGuard",
"timeout": 15,
"playerType": 2,
"searchable": 1,
"quickSearch": 1,
"changeable": 0
},
{
"key": "新6V",
"name": "🧲新6V┃磁力",
"type": 3,
"api": "csp_SixVGuard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": "https://www.xb6v.com/"
},
{
"key": "Dm84",
"name": "🚌巴士┃动漫",
"type": 3,
"api": "csp_Dm84Guard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "Ysj",
"name": "🎀异界┃动漫",
"type": 3,
"api": "csp_YsjGuard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "Anime1",
"name": "🐾日本┃动漫",
"type": 3,
"api": "csp_Anime1Guard",
"timeout": 15,
"searchable": 1,
"quickSearch": 1,
"changeable": 1
},
{
"key": "超全",
"name": "⚽超全┃看球",
"type": 3,
"api": "csp_ZbzGuard",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"style": {
"type": "list"
},
"ext": "uqGL1fpJNAUf8fdTwZCE5qSp+Q=="
},
{
"key": "88",
"name": "⚽88┃看球",
"type": 3,
"api": "csp_Sir88Guard",
"timeout": 15,
"searchable": 0,
"changeable": 0,
"style": {
"type": "list"
}
},
{
"key": "看球",
"name": "⚽手机┃看球",
"type": 3,
"api": "csp_KanqiuGuard",
"timeout": 15,
"searchable": 0,
"changeable": 0,
"style": {
"type": "list"
}
},
{
"key": "MTV",
"name": "🎧明星┃MV",
"type": 3,
"api": "csp_BiliGuard",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"ext": {
"json": "./lib/20250818-861684-ccfca7b2c24d4857a9dcf1e51798109e.json"
}
},
{
"key": "虎牙直播js",
"name": "🐯虎牙┃直播",
"type": 3,
"api": "./lib/drpy2.js",
"ext": "./lib/huya2.js",
"style": {
"type": "rect",
"ratio": 1.755
},
"timeout": 15,
"playerType": "2",
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "斗鱼js",
"name": "🐟斗鱼┃直播",
"type": 3,
"api": "./lib/drpy2.min.js",
"ext": "./lib/斗鱼直播.js",
"style": {
"type": "rect",
"ratio": 1.755
},
"timeout": 15,
"playerType": "2",
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "有声小说",
"name": "🎧有声┃小说",
"type": 3,
"api": "csp_Tingshu275Guard",
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "Aid",
"name": "🚑急救┃教学",
"type": 3,
"api": "csp_FirstAidGuard",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"style": {
"type": "rect",
"ratio": 3.8
}
},
{
"key": "抠搜",
"name": "🍄抠抠┃搜搜",
"type": 3,
"api": "csp_KkSsGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "UC",
"name": "🌈优汐┃搜搜",
"type": 3,
"api": "csp_UuSsGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "YpanSo",
"name": "🐟盘她┃三盘",
"type": 3,
"api": "csp_YpanSoGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "xzso",
"name": "👻盘它┃三盘",
"type": 3,
"api": "csp_XzsoGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "米搜",
"name": "🦋米搜┃夸父",
"type": 3,
"api": "csp_MIPanSoGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "夸搜",
"name": "😻夸搜┃夸父",
"type": 3,
"api": "csp_PanSearchGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"pan": "quark",
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "Aliso",
"name": "🙀盘搜┃阿狸",
"type": 3,
"api": "csp_PanSearchGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "YiSo",
"name": "😹易搜┃阿狸",
"type": 3,
"api": "csp_YiSoGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "push_agent",
"name": "🛴手机┃推送",
"type": 3,
"api": "csp_PushGuard",
"searchable": 0,
"quickSearch": 0,
"ext": {
"Cloud-drive": "tvfan/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "Bili",
"name": "🅱哔哔合集┃弹幕",
"type": 3,
"api": "csp_BiliGuard",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"ext": {
"json": "./lib/20250818-438811-ee1bf539a68c4aa696de6280903c8a9a.json"
}
},
{
"key": "Biliych",
"name": "🅱哔哔演唱会┃弹幕",
"type": 3,
"api": "csp_BiliGuard",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"ext": {
"json": "./lib/20250818-343950-58e67f4fabd947228c2fc158489008c9.json"
}
},
{
"key": "dr_兔小贝",
"name": "📚儿童┃启蒙",
"type": 3,
"api": "./lib/drpy2.min.js",
"ext": "./lib/兔小贝.js",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "少儿教育",
"name": "📚少儿┃教育",
"type": 3,
"api": "csp_BiliGuard",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"ext": {
"json": "./lib/20250818-675236-05edd84dd04d48f0b394a11d0a6098f6.json"
}
},
{
"key": "小学课堂",
"name": "📚小学┃课堂",
"type": 3,
"api": "csp_BiliGuard",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"ext": {
"json": "./lib/20250818-417036-ab02e4b2c6494f69a83e84dbe371ff82.json"
}
},
{
"key": "初中课堂",
"name": "📚初中┃课堂",
"type": 3,
"api": "csp_BiliGuard",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"ext": {
"json": "./lib/20250818-368432-c7a7bcfa51154bf9bdb98888d3f26000.json"
}
},
{
"key": "高中教育",
"name": "📚高中┃课堂",
"type": 3,
"api": "csp_BiliGuard",
"style": {
"type": "rect",
"ratio": 1.597
},
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"ext": {
"json": "./lib/20250818-691234-03d78c46fc2f458d81b895121c27d088.json"
}
}
],
"logo": "https://cdn.wmpvp.com/steamWeb/B96F868DE45B45D690B5F9F490D0BC60-1745866248445.gif",
"lives": [
{
"name": "V4-mursor卡顿请换源",
"type": 0,
"url": "./lib/iptv.m3u",
"playerType": 2,
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
"logo": "https://11.112114.xyz/logo/{name}.png",
"ua": "okHttp/Mod-1.2.0.1"
},
{
"name": "V6-范明明需开启V6网络",
"type": 0,
"url": "./lib/20250425-868403-298462cec53c48439a5765ceaca3c67f.m3u",
"playerType": 2,
"logo": "https://11.112114.xyz/logo/{name}.png"
},
{
"name": "牛播一",
"type": 0,
"url": "http://127.0.0.1:9978/proxy?do=饭太硬&type=liveList",
"playerType": 2,
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
"logo": "https://11.112114.xyz/logo/{name}.png"
},
{
"name": "平台直播",
"type": 0,
"url": "http://tv.iill.top/m3u/Live",
"ua": "okhttp/3.15",
"playerType": 2
}
]
}

View File

@ -0,0 +1,136 @@
#EXTM3U x-tvg-url="https://live.fanmingming.cn/e.xml" catchup="append" catchup-source="?playseek=${(b)yyyyMMddHHmmss}-${(e)yyyyMMddHHmmss}"
#EXTINF:-1 tvg-name="CCTV1" tvg-logo="https://live.fanmingming.cn/tv/CCTV1.png" group-title="央视频道",CCTV1
http://iptv.huuc.edu.cn/hls/cctv1hd.m3u8
#EXTINF:-1 tvg-name="CCTV2" tvg-logo="https://live.fanmingming.cn/tv/CCTV2.png" group-title="央视频道",CCTV2
http://iptv.huuc.edu.cn/hls/cctv2hd.m3u8
#EXTINF:-1 tvg-name="CCTV3" tvg-logo="https://live.fanmingming.cn/tv/CCTV3.png" group-title="央视频道",CCTV3
http://iptv.huuc.edu.cn/hls/cctv3hd.m3u8
#EXTINF:-1 tvg-name="CCTV4" tvg-logo="https://live.fanmingming.cn/tv/CCTV4.png" group-title="央视频道",CCTV4
http://iptv.huuc.edu.cn/hls/cctv4hd.m3u8
#EXTINF:-1 tvg-name="CCTV5" tvg-logo="https://live.fanmingming.cn/tv/CCTV5.png" group-title="央视频道",CCTV5
http://iptv.huuc.edu.cn/hls/cctv5hd.m3u8
#EXTINF:-1 tvg-name="CCTV6" tvg-logo="https://live.fanmingming.cn/tv/CCTV6.png" group-title="央视频道",CCTV6
http://iptv.huuc.edu.cn/hls/cctv6hd.m3u8
#EXTINF:-1 tvg-name="CCTV7" tvg-logo="https://live.fanmingming.cn/tv/CCTV7.png" group-title="央视频道",CCTV7
http://iptv.huuc.edu.cn/hls/cctv7hd.m3u8
#EXTINF:-1 tvg-name="CCTV8" tvg-logo="https://live.fanmingming.cn/tv/CCTV8.png" group-title="央视频道",CCTV8
http://iptv.huuc.edu.cn/hls/cctv8hd.m3u8
#EXTINF:-1 tvg-name="CCTV9" tvg-logo="https://live.fanmingming.cn/tv/CCTV9.png" group-title="央视频道",CCTV9
http://iptv.huuc.edu.cn/hls/cctv9hd.m3u8
#EXTINF:-1 tvg-name="CCTV10" tvg-logo="https://live.fanmingming.cn/tv/CCTV10.png" group-title="央视频道",CCTV10
http://iptv.huuc.edu.cn/hls/cctv10hd.m3u8
#EXTINF:-1 tvg-name="CCTV11" tvg-logo="https://live.fanmingming.cn/tv/CCTV11.png" group-title="央视频道",CCTV11
http://iptv.huuc.edu.cn/hls/cctv11hd.m3u8
#EXTINF:-1 tvg-name="CCTV12" tvg-logo="https://live.fanmingming.cn/tv/CCTV12.png" group-title="央视频道",CCTV12
http://iptv.huuc.edu.cn/hls/cctv12hd.m3u8
#EXTINF:-1 tvg-name="CCTV13" tvg-logo="https://live.fanmingming.cn/tv/CCTV13.png" group-title="央视频道",CCTV13
http://iptv.huuc.edu.cn/hls/cctv13hd.m3u8
#EXTINF:-1 tvg-name="CCTV14" tvg-logo="https://live.fanmingming.cn/tv/CCTV14.png" group-title="央视频道",CCTV14
http://iptv.huuc.edu.cn/hls/cctv14hd.m3u8
#EXTINF:-1 tvg-name="CGTN" tvg-logo="https://live.fanmingming.cn/tv/CGTN.png" group-title="央视频道",CGTN
http://iptv.huuc.edu.cn/hls/cgtnhd.m3u8
#EXTINF:-1 tvg-name="北京卫视" tvg-logo="https://live.fanmingming.cn/tv/北京卫视.png" group-title="卫视频道",北京卫视
http://iptv.huuc.edu.cn/hls/btv1hd.m3u8
#EXTINF:-1 tvg-name="北京文艺" tvg-logo="https://live.fanmingming.cn/tv/北京文艺.png" group-title="卫视频道",北京文艺
http://iptv.huuc.edu.cn/hls/btv2hd.m3u8
#EXTINF:-1 tvg-name="北京体育" tvg-logo="https://live.fanmingming.cn/tv/北京体育.png" group-title="卫视频道",北京体育
http://iptv.huuc.edu.cn/hls/btv6hd.m3u8
#EXTINF:-1 tvg-name="北京影视" tvg-logo="https://live.fanmingming.cn/tv/北京影视.png" group-title="卫视频道",北京影视
http://iptv.huuc.edu.cn/hls/btv4hd.m3u8
#EXTINF:-1 tvg-name="北京新闻" tvg-logo="https://live.fanmingming.cn/tv/北京新闻.png" group-title="卫视频道",北京新闻
http://iptv.huuc.edu.cn/hls/btv9hd.m3u8
#EXTINF:-1 tvg-name="北京纪实" tvg-logo="https://live.fanmingming.cn/tv/北京纪实.png" group-title="卫视频道",北京纪实
http://iptv.huuc.edu.cn/hls/btv11hd.m3u8
#EXTINF:-1 tvg-name="湖南卫视" tvg-logo="https://live.fanmingming.cn/tv/湖南卫视.png" group-title="卫视频道",湖南卫视
http://iptv.huuc.edu.cn/hls/hunanhd.m3u8
#EXTINF:-1 tvg-name="浙江卫视" tvg-logo="https://live.fanmingming.cn/tv/浙江卫视.png" group-title="卫视频道",浙江卫视
http://iptv.huuc.edu.cn/hls/zjhd.m3u8
#EXTINF:-1 tvg-name="江苏卫视" tvg-logo="https://live.fanmingming.cn/tv/江苏卫视.png" group-title="卫视频道",江苏卫视
http://iptv.huuc.edu.cn/hls/jshd.m3u8
#EXTINF:-1 tvg-name="东方卫视" tvg-logo="https://live.fanmingming.cn/tv/东方卫视.png" group-title="卫视频道",东方卫视
http://iptv.huuc.edu.cn/hls/dfhd.m3u8
#EXTINF:-1 tvg-name="安徽卫视" tvg-logo="https://live.fanmingming.cn/tv/安徽卫视.png" group-title="卫视频道",安徽卫视
http://iptv.huuc.edu.cn/hls/ahhd.m3u8
#EXTINF:-1 tvg-name="黑龙江卫视" tvg-logo="https://live.fanmingming.cn/tv/黑龙江卫视.png" group-title="卫视频道",黑龙江卫视
http://iptv.huuc.edu.cn/hls/hljhd.m3u8
#EXTINF:-1 tvg-name="辽宁卫视" tvg-logo="https://live.fanmingming.cn/tv/辽宁卫视.png" group-title="卫视频道",辽宁卫视
http://iptv.huuc.edu.cn/hls/lnhd.m3u8
#EXTINF:-1 tvg-name="深圳卫视" tvg-logo="https://live.fanmingming.cn/tv/深圳卫视.png" group-title="卫视频道",深圳卫视
http://iptv.huuc.edu.cn/hls/szhd.m3u8
#EXTINF:-1 tvg-name="广东卫视" tvg-logo="https://live.fanmingming.cn/tv/广东卫视.png" group-title="卫视频道",广东卫视
http://iptv.huuc.edu.cn/hls/gdhd.m3u8
#EXTINF:-1 tvg-name="天津卫视" tvg-logo="https://live.fanmingming.cn/tv/天津卫视.png" group-title="卫视频道",天津卫视
http://iptv.huuc.edu.cn/hls/tjhd.m3u8
#EXTINF:-1 tvg-name="湖北卫视" tvg-logo="https://live.fanmingming.cn/tv/湖北卫视.png" group-title="卫视频道",湖北卫视
http://iptv.huuc.edu.cn/hls/hbhd.m3u8
#EXTINF:-1 tvg-name="山东卫视" tvg-logo="https://live.fanmingming.cn/tv/山东卫视.png" group-title="卫视频道",山东卫视
http://iptv.huuc.edu.cn/hls/sdhd.m3u8
#EXTINF:-1 tvg-name="重庆卫视" tvg-logo="https://live.fanmingming.cn/tv/重庆卫视.png" group-title="卫视频道",重庆卫视
http://iptv.huuc.edu.cn/hls/cqhd.m3u8
#EXTINF:-1 tvg-name="上海纪实" tvg-logo="https://live.fanmingming.cn/tv/上海纪实.png" group-title="卫视频道",上海纪实
http://iptv.huuc.edu.cn/hls/docuchina.m3u8
#EXTINF:-1 tvg-name="四川卫视" tvg-logo="https://live.fanmingming.cn/tv/四川卫视.png" group-title="卫视频道",四川卫视
http://iptv.huuc.edu.cn/hls/schd.m3u8
#EXTINF:-1 tvg-name="金鹰纪实" tvg-logo="https://live.fanmingming.cn/tv/金鹰纪实.png" group-title="卫视频道",金鹰纪实
http://iptv.huuc.edu.cn/hls/gedocu.m3u8
#EXTINF:-1 tvg-name="东南卫视" tvg-logo="https://live.fanmingming.cn/tv/东南卫视.png" group-title="卫视频道",东南卫视
http://iptv.huuc.edu.cn/hls/dnhd.m3u8
#EXTINF:-1 tvg-name="河北卫视" tvg-logo="https://live.fanmingming.cn/tv/河北卫视.png" group-title="卫视频道",河北卫视
http://iptv.huuc.edu.cn/hls/hebhd.m3u8
#EXTINF:-1 tvg-name="江西卫视" tvg-logo="https://live.fanmingming.cn/tv/江西卫视.png" group-title="卫视频道",江西卫视
http://iptv.huuc.edu.cn/hls/jxhd.m3u8
#EXTINF:-1 tvg-name="浙江公共新闻" tvg-logo="https://live.fanmingming.cn/tv/浙江新闻.png" group-title="浙江频道",浙江新闻
https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
#EXTINF:-1 tvg-name="浙江国际" tvg-logo="https://live.fanmingming.cn/tv/浙江国际.png" group-title="浙江频道",浙江国际
https://ali-m-l.cztv.com/channels/lantian/channel010/1080p.m3u8
#EXTINF:-1 tvg-name="浙江少儿" tvg-logo="https://live.fanmingming.cn/tv/浙江少儿.png" group-title="浙江频道",浙江少儿
https://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
#EXTINF:-1 tvg-name="浙江教科影视" tvg-logo="https://live.fanmingming.cn/tv/浙江教科影视.png" group-title="浙江频道",浙江教科
https://ali-m-l.cztv.com/channels/lantian/channel004/1080p.m3u8
#EXTINF:-1 tvg-name="之江纪录" tvg-logo="https://live.fanmingming.cn/tv/之江纪录.png" group-title="浙江频道",之江纪录
https://ali-m-l.cztv.com/channels/lantian/channel012/1080p.m3u8
#EXTINF:-1 tvg-name="浙江民生休闲" tvg-logo="https://live.fanmingming.cn/tv/浙江民生休闲.png" group-title="浙江频道",浙江民生
https://ali-m-l.cztv.com/channels/lantian/channel006/1080p.m3u8
#EXTINF:-1 tvg-name="浙江经视" tvg-logo="https://live.fanmingming.cn/tv/浙江经济生活.png" group-title="浙江频道",浙江经济
https://ali-m-l.cztv.com/channels/lantian/channel003/1080p.m3u8
#EXTINF:-1 tvg-name="浙江钱江都市" tvg-logo="https://live.fanmingming.cn/tv/钱江都市.png" group-title="浙江频道",浙江钱江
https://ali-m-l.cztv.com/channels/lantian/channel002/1080p.m3u8
#EXTINF:-1 tvg-name="内蒙古综合" tvg-logo="https://live.fanmingming.cn/tv/内蒙古新闻综合.png" group-title="内蒙频道",内蒙新闻
https://livestream-bt.nmtv.cn/nmtv/2316general.m3u8?txSecret=b4373417a82ed64e52b0982a66da8df2&txTime=771E8800
#EXTINF:-1 tvg-name="内蒙古经济生活" tvg-logo="https://live.fanmingming.cn/tv/内蒙古经济生活.png" group-title="内蒙频道",内蒙经济
https://livestream-bt.nmtv.cn/nmtv/2317general.m3u8?txSecret=112b2c4c872de52b0f37aff6ead63ef0&txTime=771E8800
#EXTINF:-1 tvg-name="内蒙古少儿" tvg-logo="https://live.fanmingming.cn/tv/内蒙古少儿.png" group-title="内蒙频道",内蒙少儿
https://livestream-bt.nmtv.cn/nmtv/2318general.m3u8?txSecret=a2c948908728a0733cecbe1fadea23dc&txTime=771E8800
#EXTINF:-1 tvg-name="内蒙古文体娱乐" tvg-logo="https://live.fanmingming.cn/tv/内蒙古文体娱乐.png" group-title="内蒙频道",内蒙文体
https://livestream-bt.nmtv.cn/nmtv/2319general.m3u8?txSecret=c7b5c515d2bb6df442492d54955329a3&txTime=771E8800
#EXTINF:-1 tvg-name="内蒙古农牧" tvg-logo="https://live.fanmingming.cn/tv/内蒙古农牧.png" group-title="内蒙频道",内蒙农牧
https://livestream-bt.nmtv.cn/nmtv/2320general.m3u8?txSecret=4d368a175afa19737a9f5be10af24fe2&txTime=771E8800
#EXTINF:-1 tvg-name="内蒙古蒙语卫视" tvg-logo="https://live.fanmingming.cn/tv/内蒙古蒙语卫视.png" group-title="内蒙频道",蒙语卫视
https://livestream-bt.nmtv.cn/nmtv/2315general.m3u8?txSecret=4971666599ef9411629213c9a300bf66&txTime=771EF880
#EXTINF:-1 tvg-name="内蒙古蒙语文化" tvg-logo="https://live.fanmingming.cn/tv/内蒙古蒙语文化.png" group-title="内蒙频道",蒙语文化
https://livestream-bt.nmtv.cn/nmtv/2321general.m3u8?txSecret=d9d0fd7a252ef56b515c46a2e21830f4&txTime=771E8800
#EXTINF:-1 tvg-name="呼和浩特新闻综合" tvg-logo="https://live.fanmingming.cn/tv/呼和浩特新闻综合.png" group-title="内蒙频道",呼市新闻综合
https://livestream-bt.nmtv.cn/nmtv/2331general.m3u8?txSecret=4d7342ca5cd74480526ab6d292247aff&txTime=771E8800
#EXTINF:-1 tvg-name="包头新闻综合" tvg-logo="https://live.fanmingming.cn/tv/包头新闻综合.png" group-title="内蒙频道",包头新闻综合
https://livestream-bt.nmtv.cn/nmtv/2358general.m3u8?txSecret=98390a77c143a68f0fd64bfe6e181dcb&txTime=771E8800
#EXTINF:-1 tvg-name="鄂尔多斯新闻综合" tvg-logo="https://live.fanmingming.cn/tv/鄂尔多斯新闻综合.png" group-title="内蒙频道",鄂尔多斯新闻
https://livestream-bt.nmtv.cn/nmtv/2349general.m3u8?txSecret=e44477052aba305cadeea45aaf1c674a&txTime=771E8800
#EXTINF:-1 tvg-name="巴彦淖尔新闻综合" tvg-logo="https://live.fanmingming.cn/tv/巴彦淖尔新闻综合.png" group-title="内蒙频道",巴彦淖尔新闻
https://livestream-bt.nmtv.cn/nmtv/2348general.m3u8?txSecret=6a4ddce077e41b976fe33619fbef2b30&txTime=771E8800
#EXTINF:-1 tvg-name="赤峰新闻综合" tvg-logo="https://live.fanmingming.cn/tv/赤峰新闻综合.png" group-title="内蒙频道",赤峰新闻综合
https://livestream-bt.nmtv.cn/nmtv/2351general.m3u8?txSecret=8857087aeec2cec44d178a18550fdb8a&txTime=771E8800
#EXTINF:-1 tvg-name="乌兰察布新闻综合" tvg-logo="https://live.fanmingming.cn/tv/乌兰察布.png" group-title="内蒙频道",乌兰察布新闻
https://livestream-bt.nmtv.cn/nmtv/2354general.m3u8?txSecret=cf5f71d0000862b18f5813607b3dfd5b&txTime=771E8800
#EXTINF:-1 tvg-name="CGTN" tvg-logo="https://live.fanmingming.cn/tv/CGTN.png" group-title="央视频道",CGTN英语
https://0472.org/hls/cgtn.m3u8
#EXTINF:-1 tvg-name="CGTN纪录" tvg-logo="https://live.fanmingming.cn/tv/CGTN纪录.png" group-title="央视频道",CGTN记录
https://0472.org/hls/cgtnd.m3u8
#EXTINF:-1 tvg-name="CGTN俄语" tvg-logo="https://live.fanmingming.cn/tv/CGTN俄语.png" group-title="央视频道",CGTN俄语
https://0472.org/hls/cgtne.m3u8
#EXTINF:-1 tvg-name="CGTN法语" tvg-logo="https://live.fanmingming.cn/tv/CGTN法语.png" group-title="央视频道",CGTN法语
https://0472.org/hls/cgtnf.m3u8
#EXTINF:-1 tvg-name="CGTN西语" tvg-logo="https://live.fanmingming.cn/tv/CGTN西语.png" group-title="央视频道",CGTN西语
https://0472.org/hls/cgtnx.m3u8
#EXTINF:-1 tvg-name="CGTN阿语" tvg-logo="https://live.fanmingming.cn/tv/CGTN阿语.png" group-title="央视频道",CGTN阿语
https://0472.org/hls/cgtna.m3u8

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"class":[{"type_name":"登陆配置","type_id":"peizhi"},{"type_name":"儿童早教","type_id":"儿童早教"},{"type_name":"儿童启蒙故事","type_id":"儿童启蒙故事"},{"type_name":"儿童英语启蒙","type_id":"儿童英语启蒙"},{"type_name":"儿童歌曲","type_id":"儿童歌曲"},{"type_name":"儿童绘画","type_id":"儿童绘画"},{"type_name":"睡前故事","type_id":"睡前故事"},{"type_name":"儿童动画","type_id":"儿童动画"},{"type_name":"儿童音乐","type_id":"儿童音乐"},{"type_name":"儿童安全教育","type_id":"儿童安全教育"},{"type_name":"贝瓦儿歌","type_id":"贝瓦儿歌"},{"type_name":"悟空识字","type_id":"悟空识字"},{"type_name":"宝宝巴士","type_id":"宝宝巴士"},{"type_name":"儿歌多多","type_id":"儿歌多多"},{"type_name":"学而思","type_id":"学而思"}],"filters":{"儿童早教":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿童启蒙故事":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿童英语启蒙":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿童歌曲":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿童绘画":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"睡前故事":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿童动画":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿童音乐":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿童安全教育":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"贝瓦儿歌":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"悟空识字":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"宝宝巴士":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"儿歌多多":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],"学而思":[{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}]}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
js/fty/lib/cheerio.min.js vendored Normal file

File diff suppressed because one or more lines are too long

6191
js/fty/lib/crypto-js.js Normal file

File diff suppressed because it is too large Load Diff

1
js/fty/lib/drpy2.js Normal file

File diff suppressed because one or more lines are too long

73
js/fty/lib/drpy2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

68
js/fty/lib/gbk.js Normal file

File diff suppressed because one or more lines are too long

1
js/fty/lib/huya2.js Normal file

File diff suppressed because one or more lines are too long

315
js/fty/lib/iptv.m3u Normal file
View File

@ -0,0 +1,315 @@
#EXTM3U x-tvg-url="https://11.112114.xyz/pp.xml"
#EXTINF:-1 tvg-name="4K60PSDR-H264-AAC测试" tvg-logo="https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/tg.jpg" group-title="4K频道",4K60PSDR-H264-AAC测试
https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/sdr4kvideo/playlist.m3u8
#EXTINF:-1 tvg-name="4K60PHLG-HEVC-EAC3测试" tvg-logo="https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/tg.jpg" group-title="4K频道",4K60PHLG-HEVC-EAC3测试
https://cdn.jsdelivr.net/gh/feiyang666999/testvideo/hlg4kvideo/playlist.m3u8
#EXTINF:-1,tvg-id="重温经典" tvg-name="重温经典" tvg-logo="https://11.112114.xyz/logo/重温经典.png" group-title="其他",重温经典
https://gdcucc.v1.mk/gdcucc/cwjd.m3u8
#EXTINF:-1,tvg-id="五星体育" tvg-name="五星体育" tvg-logo="https://11.112114.xyz/logo/五星体育.png" group-title="其他",五星体育
https://gdcucc.v1.mk/gdcucc/wxty.m3u8
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2201/057/821/202204010054_1626677502161_H169_1080.jpg" group-title="央视", CCTV1综合
https://mgtv.ottiptv.cc/migu/608807420.m3u8?migutoken=e87582cbeed280cf0bc73fcc603ab35d3781351fee13c1e1767cb13115e04314188849117bbdebc0c7961e219b567b8740ff496709df2e120423ee20d3613ee62f5c12c7f2c845188355be00c0
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/346/945/202205311432_1653977575541_H169_1080.jpg" group-title="央视", CCTV2财经
https://mgtv.ottiptv.cc/migu/631780532.m3u8?migutoken=a198e0cc3e7a01e1071202cb6f812616ef16587a3260b83d98e0acb47b0565d5f50d51589b97c87fc42f1e24559ef31c655da35bf77fad69abcc5983ba081cd9ef7c62d3994995c39f63417976
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/864/202204010055_1626679292691_H169_1080.jpg" group-title="央视", CCTV3综艺
https://mgtv.ottiptv.cc/migu/624878271.m3u8?migutoken=5fbe404b95e8a255ead64ad761663ade9714dbd4f6fb14fb6ac25bf0e25ea3b11f7e6d665c9dc8feaf3cfc0a7afef221717db1daa692e78f33b79a4543d5bba6e925fb2e260cfa4023d5c1a2b0
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/346/947/202204010054_1626679457281_H169_1080.jpg" group-title="央视", CCTV4中文国际
https://mgtv.ottiptv.cc/migu/631780421.m3u8?migutoken=ab90674d45862207d4e5eba8056904c95f46d037454930aea2b7612b316c1172d898d8744f9464d954819367b3bd9b59b0bdcd9da2327fa3081f1e33a13fa6d4345804263e6a82e459fda47443
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/516/171/202204010048_1626679645474_H169_1080.jpg" group-title="央视", CCTV5体育
https://mgtv.ottiptv.cc/migu/641886683.m3u8?migutoken=dedd9f5dd7c8c94820e19208bdfb3c8b241c83adb014b21559c7acd9ceedec863c8440aa53f5df4b1312b5cd9bb71cd3f940e2fbe0dd0885f8e3409c4542773c9dec66617dcf89fd508f7920f4
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/516/288/202204010048_1626679726956_H169_1080.jpg" group-title="央视", CCTV5+体育赛事
https://mgtv.ottiptv.cc/migu/641886773.m3u8?migutoken=913e19f0cd95b3729d2edff560ccf94dab8a25c3d3952345452f411e3cfd50be2f05ed099426d164cab8e8b69cf84c9183fe991caa3f8c7d1e8d089eecebc11d4687939932c9f6ff201b3b77d0
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/872/202204010054_1626679942827_H169_1080.jpg" group-title="央视", CCTV6电影
https://mgtv.ottiptv.cc/migu/624878396.m3u8?migutoken=abc956fbe53a33768c31ce46be1ea11b6bd677cced76f5a05040c806516acaaeba5637e09acaa2d0d2f98c5c0c1dade2d1603cbad0bda0e614fec16736ba86345358f77e2f4b6c1bfa63007bf3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/622/202204010054_1626680072401_H169_1080.jpg" group-title="央视", CCTV7国防军事
https://mgtv.ottiptv.cc/migu/673168121.m3u8?migutoken=e48ebd9c5a0af94e4d23ec231a977568dc1235954de5d61e0c99266ce3f0bd0ba73536b8d467ba805c4f8f4716e418bedc9823b5e9b7b7857052d1051b923ad6909385f999064a3a355bb17b4d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/868/202204010049_1626677144094_H169_1080.jpg" group-title="央视", CCTV8电视剧
https://mgtv.ottiptv.cc/migu/624878356.m3u8?migutoken=1063c2ed0498f191cbe74734ccde93c830d8eee34fd42552bcc9f44755cc0df1f43234f35280736b7b63f59f3ef05ea02225ae3bd763bcd1ba46f78a42a1bf12813c11aab0e18cdcb9f41e3577
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/624/202204010054_1626677492322_H169_1080.jpg" group-title="央视", CCTV9纪录
https://mgtv.ottiptv.cc/migu/673168140.m3u8?migutoken=0ca1664994f4c6ab044e773f0cd5bbf34e26461236467a95df33dfb854e743b7d8925da03f4ee5d1f628206595f6b405b01ed7598a95154ccb1be26e3d3a606d4e2b8eced943011785c14ce49b
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/874/202204010054_1626677759168_H169_1080.jpg" group-title="央视", CCTV10科教
https://mgtv.ottiptv.cc/migu/624878405.m3u8?migutoken=36650467e841c67559d5e7735f58e2996e350166144a20b62f155cace4b76ac9b2cfe8cebe6a04289485da7dcf21a12a8db3c4b2950ccb1e0a69f7f426d54c8b73241bca1a85acd55ed0bdfbf6
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/988/610/202204010054_1626677917611_H169_1080.jpg" group-title="央视", CCTV11戏曲
https://mgtv.ottiptv.cc/migu/667987558.m3u8?migutoken=009e003c150dc5540bdca9ff5495a29b1183ad95664745751daae77bc1f01becd6b4be93fdec4c837d44940fdca267da150f0b3142f82009f1c4b56dcdec2b1690781a9832ab266388f276828a
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/627/202204010053_1626678104342_H169_1080.jpg" group-title="央视", CCTV12社会与法
https://mgtv.ottiptv.cc/migu/673168185.m3u8?migutoken=8c047c19215e5128226181bb33ac8090b564c4f48450354e8befb8e31d3b365a00608967ef6360752123e00df70b0fb1bfb94669ad8ac4a1d8c0f0becb3e1894ebd01572250a8d5120dbe80dc7
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/208/864/202204010051_2202208864_H169_1080.jpg" group-title="央视", CCTV13新闻
https://mgtv.ottiptv.cc/migu/608807423.m3u8?migutoken=856bfbf1a4e580d143e006c380919db76f1b4b4499ce865959bbbb5c45a84323c9a5ae265a512e5ee6fee400dedf9d6c809363c3f943ed474e72de74b41ff688a743a6d6c234532163f57bd43c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/875/202204010054_1626678143105_H169_1080.jpg" group-title="央视", CCTV14少儿
https://mgtv.ottiptv.cc/migu/624878440.m3u8?migutoken=000164f8ee4898cc9057c3ea784338dca5100155884f3a8d6e57e67a578122e7cb436ca446c7ad73c1eccd3f5bd491893b7d9fce79eeff0bc3b86b67d5be4f82a27efa63331b99d891f01dd52c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/628/202204010054_1626678239769_H169_1080.jpg" group-title="央视", CCTV15音乐
https://mgtv.ottiptv.cc/migu/673168223.m3u8?migutoken=7f5822ccf36d6a2d2d896d336e6fdaaeb762725c6579e623a08a65a4e47e87e0373fae63dcfdf44b9e0291ceb4d450266de51ae0aff23e173cd3322926df947eb2a008fc1b3fa27eb53c7b0521
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5501/083/631/202204010052_1626678423944_H169_1080.jpg" group-title="央视", CCTV17农业农村
https://mgtv.ottiptv.cc/migu/673168256.m3u8?migutoken=a78ca66bb71e994642bbdfe91dcb61dae5c4c04f4edac719c5cd6d0472a0aa3d8b25bbd46f788dbfa083d7dba33a29ba3416f9873e8331217d46512cdcb16f0ad08cae1cf8861d4f2566987b36
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/315/202204010055_1626831001078_H169_1080.jpg" group-title="央视", CCTV4欧洲
https://mgtv.ottiptv.cc/migu/608807419.m3u8?migutoken=a65bb8aff712fdb6d34073f4aa307839d0e51515115e17ca7ef68ccaad8124a1fe34764c1117a3af331efedacbc915f898aa16ffc6a6f7f23a26e9f8e2bc44b0e880a59d6a7585539d6fb2415e
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/344/202204010055_1626830735444_H169_1080.jpg" group-title="央视", CCTV4美洲
https://mgtv.ottiptv.cc/migu/608807416.m3u8?migutoken=5893b804def0551069a60627b6d577d94414866eab03c236d2489eb92fca4250aa5f3624c1eeae127fb4a434d1879e27b8f4516db35570746bf647732fafef41c6d06ce3ea657c2c6b41ce08c3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/356/202502251602_1740470533820_H169_1080.jpg" group-title="央视", CGTN外语纪录
https://mgtv.ottiptv.cc/migu/609006487.m3u8?migutoken=1005b1d42414d514cb2e1d315753e19770e98042502ebf1f82f1b427c5724523cfa46525d6a7c809f594ffa7360a78e2e108aa0867e5ebce39857f791eadd736ff24031f54a194b2965ab1870c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/303/202502251557_1740470224929_H169_1080.jpg" group-title="央视", CGTN阿拉伯语
https://mgtv.ottiptv.cc/migu/609154345.m3u8?migutoken=ec709e0e973513a848abb48eaf8dcfb4ad81a5b488a844b18f29623fd572370ac524e67a0cf2d401c8c0e1f8ae9b8e9ad36e004df006a39bddf0a7488c55a481044f76ef06679c68d14f63f9eb
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/337/202502251600_1740470429939_H169_1080.jpg" group-title="央视", CGTN西班牙语
https://mgtv.ottiptv.cc/migu/609006450.m3u8?migutoken=7431a44ea4b991bdedfb224a1881f450ac3398af3088f614146410c49aa9412b9fe0856502200875471993f9bbda85700e474fc76018670da99c9e9eda42dc9625a7542920ce327e4fdfc7f4f0
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/324/202502251559_1740470364968_H169_1080.jpg" group-title="央视", CGTN法语
https://mgtv.ottiptv.cc/migu/609006476.m3u8?migutoken=ac0355a4bb90a5c5fd72752789021c619ccc4593bb5b0507b680904ca34a055b6e86887411c91de59ff93b1a4fe8dd2d8551db9307c4ea9b3f4864e73ee66d50033513a4a1cb345c45924d7ec5
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/179/332/202502251558_1740470310039_H169_1080.jpg" group-title="央视", CGTN俄语
https://mgtv.ottiptv.cc/migu/609006446.m3u8?migutoken=0c1941ac7927d86482d235ed9ad567d8a1d34dc9a673395b96927c275b97922bf021a064def6aa9a9484cd5b3f5e2689fa6657ff0db029da7d4eae9f694ea7897c0eb11b321dcb43aeb11937ea
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/002/202405081702_1715158642984_H169_1080.jpg" group-title="央视", 老故事
https://mgtv.ottiptv.cc/migu/884121956.m3u8?migutoken=29a33e2d6e0ef2175b7ca005d4fc0b883ece8537f87d47862bedad59505c1cbbd0030ebbeed33cf7607078952492012b056967c9ad1ea7e06b756d49b1bd0b665ca322321b2d2fdde5d2be7c9d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/212/893/202405081702_1715158824845_H169_1080.jpg" group-title="央视", 发现之旅
https://mgtv.ottiptv.cc/migu/624878970.m3u8?migutoken=891f14e94dd17ba5525d7d028df2e39dd0a61b4912c5cf655844c8f4b091c6fcd26a8aac5af434df5f425fe755a7853845b87cd79ec893f22f7fdd04d89a30c051e095d23169157251f68c0d26
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/355/202405081702_1715158104256_H169_1080.jpg" group-title="央视", 中学生
https://mgtv.ottiptv.cc/migu/708869532.m3u8?migutoken=a201aad36ec8f880f4345439b872cd2c6bcfcdb921d7ae72f405d8b0a52320899d25e6a745815066ee3ef627c5e8c3e2acfca2e876222249007869555045046f0235aead3a06dc41aa8c71f7c6
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/196/407/202204010052_1642124762081_H169_1080.jpg" group-title="央视", CGTN
https://mgtv.ottiptv.cc/migu/609017205.m3u8?migutoken=dc0da08ab5ab05aa55f5cf062ef5ab30b20e364b6dd7f6ac8d5a8d2f4202d0a3377229d9a0e63daf0678fd43252625376df8637cb2a2bdf828f68eb9f277010e163225c71f5c262e55c7f41aea
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/185/202508040856_5100043384_H169_1080.jpg" group-title="卫视", 东方卫视
https://mgtv.ottiptv.cc/migu/651632648.m3u8?migutoken=8f8626aaf414a360b5ec4f48aec131307acd7d005eaa5858e84763f09da5bca0e14d0cd206c0b72ec8d8ce991d876c8d977bbedc75ead3bbfc136ab42faef8afd412df45f162d814c21a4f87ca
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/199/408/202104022140_5100156802_H169_1080.jpg" group-title="卫视", 江苏卫视
https://mgtv.ottiptv.cc/migu/623899368.m3u8?migutoken=61c2b8855f4a014b319f05532f6333a41c39faac86945169ca13cc5617f7ffc37aad3bb91418d7dd5d40206edc5d9cfa1550eca4ea2ddfea9f4e104ccb4cf33fa604e9bef0f3d9b38bd5ffbadf
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/428/795/202107191524_2202428795_H169_1080.jpg" group-title="卫视", 广东卫视
https://mgtv.ottiptv.cc/migu/608831231.m3u8?migutoken=36b5e7230ca47b4a39c43d5cb5dbe156aa7fc7783e5bdf7e25f2b8b90629ef70dc00b2ed8b22c7d217e55a981bfc49939b4ffbfa9c0a53640718bdda453a0b6d542d84f003a3d2f23ad72e547f
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/492/202303201551_1658134112236_H169_1080.jpg" group-title="卫视", 江西卫视
https://mgtv.ottiptv.cc/migu/783847495.m3u8?migutoken=3285af4b14f357066fcc21e29e8375ba5d7037775f88aa918f152525c9881b222a1cb2962bc68211dc1e2b3bb0cccaef7a5e68739bf66dc92557d6be1075859f4ac43c77378e2490014c5206b0
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/585/202304031400_1679994685582_H169_1080.jpg" group-title="卫视", 河南卫视
https://mgtv.ottiptv.cc/migu/790187291.m3u8?migutoken=23f9b5df495974dd972735dcd4cc9724a53ff21d0fd6bf76a035de69b00573a8dca573ad854f8b550bd5df70633c67866eaf50288fba0ce2c68b3c98a06f5c3580e857971fd0743f904e63d3b3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/020/475/202207191732_1658131375175_H169_1080.jpg" group-title="卫视", 陕西卫视
https://mgtv.ottiptv.cc/migu/738910838.m3u8?migutoken=cdc37ec3447582152f1622cb0a18e727ec5ecfdc937da583ebb2d7b6680110e64fe1ac308ce01bbda4b9d5f58e08ecde779263d812a547e1b10c6915e358872299512adbf05224e43b842f9e71
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/322/852/202304081513_1677570732561_H169_1080.jpg" group-title="卫视", 大湾区卫视
https://mgtv.ottiptv.cc/migu/608917627.m3u8?migutoken=ad4a27b92a838c5a65b6ab807e53c720d7e1c30236b8540204e58c7f0ebfcaf28f2272b671687a856a20d35785164ec9dc5057917091f96e340f9305359deb8cb2e74b79f2fb416ee8f1a7c286
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/163/202501231715_1658138621263_H169_1080.jpg" group-title="卫视", 湖北卫视
https://mgtv.ottiptv.cc/migu/947472496.m3u8?migutoken=c6f33a9a185fed2a831cf924998cac49a20cf3f6edee54467b271c610d35828d366c30e21e03dfeb55c977dae8ac05e78603ad10194cc49eec6c7b4023f8e81ac620551322f8ae5dc921c26981
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/164/202501231715_1658138745288_H169_1080.jpg" group-title="卫视", 吉林卫视
https://mgtv.ottiptv.cc/migu/947472500.m3u8?migutoken=0aafb579215064dd1e9cf8c23c21da2ea0f89e892b4618c146ae6f321408fc18641604e475d228afaed86f4b669edc197b8cedf9916823a6b09e1a75f5fd8a2cd89e64dd6fd03cd7e0f5f496ae
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/166/202501231715_1658138568499_H169_1080.jpg" group-title="卫视", 青海卫视
https://mgtv.ottiptv.cc/migu/947472506.m3u8?migutoken=8e96d409448c8f8fd0ba42250a0854c9157ce242bc357be64675daa5b69f43c2b181d0ef9f3bb9d1c602fe0b3c88805600f4e6fe6deff16b115cc9e6ba7201bc8a878791ee4f70f06aaf427270
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/182/202507151427_1744624877831_H169_1080.jpg" group-title="卫视", 东南卫视
https://mgtv.ottiptv.cc/migu/849116810.m3u8?migutoken=e66fee73689e606c4d3a3d4177782e9b9b96148161af20fa92abd19fb5bd89f330d240fcf21cee186f447dc99a8e493f1b4b63237bc4aec8688f447f3ee9f6b40c60df45f90b222d14fe19e966
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/165/202501231715_1658138887282_H169_1080.jpg" group-title="卫视", 海南卫视
https://mgtv.ottiptv.cc/migu/947472502.m3u8?migutoken=b409672c89295a5382f16ab1441f3a20c2d1036e0abe58b08bbade52d6afb109158bd4f08c1d49e30bc2fefc26859e0b45099b06091e1e2af5aafd3657abecf8ec2727c585d9e7b32668dd2412
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/183/202507151427_1690875414853_H169_1080.jpg" group-title="卫视", 海峡卫视
https://mgtv.ottiptv.cc/migu/849119120.m3u8?migutoken=fb3bdb43eb273a3cb0f76ca84bcca00e36916f997f79f5649029c6073e222aa8d8d38de95808f13ffbcbab736a117656800904124e7775cc48c05cc7812242a1fbbd75e37e906213e0cfc9a5bf
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/186/202508051621_1754370268870_H169_1080.jpg" group-title="卫视", 中国农林卫视
https://mgtv.ottiptv.cc/migu/956904896.m3u8?migutoken=2ba9d54f469213caa7578a3ae6faf7948519df1475b4cbad1a1d41731a2febbbdb92bcbea19b7eefbe2dcd744fd7fa0a49a81ff12368222d8b81b1b7ebf5a23384256234c79269fd8a7e1a74fa
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/192/202508061552_1754385897430_H169_1080.jpg" group-title="卫视", 兵团卫视
https://mgtv.ottiptv.cc/migu/956923145.m3u8?migutoken=2e3156164a0254c48085736bd4830ad94861d4b3a43483eaa8ea307fa543418e7832c0a83796cb9137b9274ff92c3e3d46293085220b01921fac54b845298c087f215ce4acda8c63304e6b3eef
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/002/275/202107191641_5100001716_H169_1080.jpg" group-title="地方", 上海新闻综合
https://mgtv.ottiptv.cc/migu/651632657.m3u8?migutoken=72101a42ad9d845868ca5a65430fa525a009a703b18c27513b9c5bcc3d3c058744de9b6c71901337382333111b00281a4fc72a3abf00822ab568305d127b6c30bfce416190de1a3d48065780e1
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/002/274/202105271333_5100001715_2_HSJ720H.jpg" group-title="地方", 上视东方影视
https://mgtv.ottiptv.cc/migu/617290047.m3u8?migutoken=b4d4529594c9a0d9b9ae9a0bd4f478de57b0206b2d4e6ef532647fbba9007729321003ab8b1530a3edcca56c84d770843094b21e7cd2351d0712b576b040c66faff5e5cd738f516dafbe2f8c0d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2201/008/312/202209271630_2201008312_H169_1080.jpg" group-title="地方", 上海第一财经
https://mgtv.ottiptv.cc/migu/608780988.m3u8?migutoken=640218a949d9d0364c84be6969170f0bb8149f1524dfda10391d63edc69dc07def704321007771253ca631c1c731b3f60f99830f56a7b6ba2a01433ad93c115eaa39b25c79d9596174dc74d3cb
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/863/202307121521_1689144286039_H169_1080.jpg" group-title="地方", 南京新闻综合频道
https://mgtv.ottiptv.cc/migu/838109047.m3u8?migutoken=217b3a2456610ba99dd5fb0c808116f75097af12175b8e42d84cda3169c62d967ebd23b82616aee7698b3c2c3a4b6782e3a2839bb776c37527aa17e2ffc9af99328f985b4c33f2a4572d384f02
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/865/202307121700_1689146721503_H169_1080.jpg" group-title="地方", 南京教科频道
https://mgtv.ottiptv.cc/migu/838153729.m3u8?migutoken=ffa8c472872e788989ef780ee3e49d6f629e8b371bc862bef85c34aebc5e90b92c00005c78b4b76ffc44dfca188033bf44a7d0468251c099828934ebc28cb0ea4d33de90f28c43731bde165b04
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/021/864/202307121658_1689146982273_H169_1080.jpg" group-title="地方", 南京十八频道
https://mgtv.ottiptv.cc/migu/838151753.m3u8?migutoken=af6dcf7aea858aedd3e6ad9770fef42aa7f8ed6c6c0d392cd504c120026146b56ff289fbc9d0e60f699aa7168896165b2592a3dc574c3a8feb41978169ca2a0b768a8465bcb8975b3e46127eb9
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/554/202104022139_5100186459_H169_1080.jpg" group-title="地方", 体育休闲频道
https://mgtv.ottiptv.cc/migu/626064707.m3u8?migutoken=bc8b30056a771dbe457523398d228405a5e8d9208c1c7ae793323ad4c57c0c3ea947a85519d7287f91d76aa6d8ada70f90bb82554686fa5ba583c5ca1f2e040ab6dad77b70939e096076b1dc31
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/508/202104022138_5100186409_H169_1080.jpg" group-title="地方", 江苏城市频道
https://mgtv.ottiptv.cc/migu/626064714.m3u8?migutoken=7a95013b9cb841377708ce2d4cf761d88ffe75c6fb9d2c64a8cfb37a5df3ef2111c0e045909aeb8aab30899505952dc6d2febb9b2295d2a951647dcf035fdb701bccc3d14658aca5988cf604cc
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/577/202104022139_5100186482_HSJ720H.jpg" group-title="地方", 江苏国际
https://mgtv.ottiptv.cc/migu/626064674.m3u8?migutoken=484ba97f18e704ea4d5deef16da4d750b26203fd7810477c215b9cf8854076c2f5660ae2ab8b7ae61fa25a3b164a1ea5b764541f5e26b61d66fcb0d96850acfb00e8905dc00674cb80aa164c37
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/287/493/202104022139_5101012819_HSJ720H.jpg" group-title="地方", 江苏教育
https://mgtv.ottiptv.cc/migu/628008321.m3u8?migutoken=c88038c335008f90d5563b99d6ef20dc503b68ccca04f478a94237dbb7b0c796824f31fdaa3d8c650231d9fcf6ee9bae3646e87303dcf4ae659f433f28518fba8c6124d9c14f7968f36464c3af
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/517/202104022138_5100186424_H169_1080.jpg" group-title="地方", 江苏影视频道
https://mgtv.ottiptv.cc/migu/626064697.m3u8?migutoken=6f545ede0bd182ce0f67f8b26c7ffad1616f62c62b1208ee074c12e3c377f5a0a107d522ad2eb653d1795b9ccf5adadc92359c0a469f508d2e10efda5e40cb14f1666b6c5ba95c727305d4509c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/513/202104022039_5100186420_H169_1080.jpg" group-title="地方", 江苏综艺频道
https://mgtv.ottiptv.cc/migu/626065193.m3u8?migutoken=e0c65bec3c9ec2163d8d281df6c83243b50cbf2f62da541ffb78ca1b15451801787ceaed0b89d3b82240d96a7d1a45b59009c379bbd0eb1431fa87760aed2ac56ccbaa12658185716d4c56cf64
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/520/202104022138_5100186429_H169_1080.jpg" group-title="地方", 公共新闻频道
https://mgtv.ottiptv.cc/migu/626064693.m3u8?migutoken=560145053086fad76be9cb6456920ea1160378118f7cc6338deccbac08d0b0a169d3ce1594fb56000c1c38872f516a87eef025beba62679c9f6d0e6ebbb8de0d2cd90d4afaa9a0febecf784bec
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/360/202212301654_5102012617_H169_1080.jpg" group-title="地方", 盐城新闻综合
https://mgtv.ottiptv.cc/migu/639731825.m3u8?migutoken=98a75b3d3c141573d01478e1d285e1717a464dcbb853a153b6be630ff28b5f6a354538a36d7a1bb35b0d0463ecf8082ddb56666751e78bf1917c38472bdf31a7f74b909ae1e2e9fd805836ce26
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/363/202104022141_5102012618_H169_1080.jpg" group-title="地方", 淮安新闻综合
https://mgtv.ottiptv.cc/migu/639731826.m3u8?migutoken=81a020d5efe78c04b731b39c8a473f82a01d81b2eb2dba06a677055d401bb24773e6a5778a6735d712dd92bbefebb0fb8ec13c8f7a82a6dcccd64d108a7aac6baecd6d6c3cb186a9b5d5c8cd52
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/354/202104071213_5102012615_H169_1080.jpg" group-title="地方", 泰州新闻综合
https://mgtv.ottiptv.cc/migu/639731818.m3u8?migutoken=1c2d938eba25a3b0899af8fe689f7b26f41b985029b6d7595e77e2394db37e4eb495952a7d188a9a9015be1071b6f975007f9e53567620a3f511b53f3266443280946b4e7ea3ab41029ae91772
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/369/202104022140_5102012621_H169_1080.jpg" group-title="地方", 连云港新闻综合
https://mgtv.ottiptv.cc/migu/639731715.m3u8?migutoken=cdd89f071bedbdd2d653cb01eecf493b8286212d91a966afb321f7a25b8e9c04fade17d1f8e799e7867fe066685f9bfa22902ec355d0baefd8b3fcf2558db5d81a26c983b2d7e9e4611fd9d376
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/357/202104022141_5102012616_H169_1080.jpg" group-title="地方", 宿迁新闻综合
https://mgtv.ottiptv.cc/migu/639731832.m3u8?migutoken=de3dc363ee2b10ad424173822b67d3ea6467776422d6a49507a1e12f799640f7543bdb9aaacea435ff27d8859b63c13b5727605fd242b8533bdf69c725a3f30cb53649e0af19399f4cd948258d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/368/202104022141_5102012620_H169_1080.jpg" group-title="地方", 徐州新闻综合
https://mgtv.ottiptv.cc/migu/639731747.m3u8?migutoken=939388e5cf7cc01688eb44c4208546a9b6f9073aa3573f054898ef0aa7331f53ba5a26a98f4bde4a643d15564f7df5c23f58932e9968cc6e40eccbff0d5e51cc7385d698bb252a4a6db4b4a797
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/260/553/202104022139_5100186455_H169_1080.jpg" group-title="地方", 优漫卡通频道
https://mgtv.ottiptv.cc/migu/626064703.m3u8?migutoken=0de1eae09b0883bc96a774772ef0f9b5a08d8dfeec68cb9d75378d72bf1492d151fb1c6befd0c91f4a0ac1a15a4706354eac5b20744b962b0c33905d1d28320a251f011ba79549b96707d752f7
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/177/202506121842_1749616924879_H169_1080.jpg" group-title="地方", 江阴新闻综合
https://mgtv.ottiptv.cc/migu/955227979.m3u8?migutoken=4a0461a31fc4edfe27ea4743f472776f252abd0f97856c2221d7c6558f4ffbd40099ef88de7178e3f2513fe8bf21b712710b2924566bea648fd258fb2557a5f5eb5a489559fec6d8477c097daf
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/178/202506121842_1749617021865_H169_1080.jpg" group-title="地方", 南通新闻综合
https://mgtv.ottiptv.cc/migu/955227985.m3u8?migutoken=c9c739d2aab9d4e42415a55eff8a4782aef14ed676d93a16b0fdbf8d2ed4271f96daa0dfb10fe2b4b2755d02b5d0760ce3607acd9054c18cedde20c4fe37e95c13155b25d4e138d5f425be902f
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/179/202506121843_1749617115515_H169_1080.jpg" group-title="地方", 宜兴新闻综合
https://mgtv.ottiptv.cc/migu/955227996.m3u8?migutoken=5063ec9b43872267d1e2b92441e0529f440371847f60a349c6cfdb44cde98a9cd7c42b9a72e5355a58644cfc7ac75e2c9d6ee9668cc01c283eaa67dc8c11474de3eb5efd5f73399adfd0a1303a
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/469/349/202506201638_1750408508110_H169_1080.jpg" group-title="地方", 溧水新闻综合
https://mgtv.ottiptv.cc/migu/639737327.m3u8?migutoken=111621f9f3b1e04f7548bdfc5fa7675ba3bcf56ee3574bf23bc4ede9c91869cbc97bcd6488ec8d19746c9b3a43b608465600db7225715d815bcd56fbe2f06b057b6ef57269d53c1363cf45e07d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/191/202508051746_1754371391139_H169_1080.jpg" group-title="地方", 陕西银龄频道
https://mgtv.ottiptv.cc/migu/956909362.m3u8?migutoken=91c524625737d73ee2b8576fc13680351c07129e9866725eb44b7909d471dfdc49709a0d43a5f9022eabc2f41d9b5412486f9eb725c2b5b0b4b58eeb439c747c7a0c64bd24c0735dfaa4398dd3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/190/202508051746_1754371281201_H169_1080.jpg" group-title="地方", 陕西都市青春频道
https://mgtv.ottiptv.cc/migu/956909358.m3u8?migutoken=25eb6538f17db3e53012c4fee9ac38680bf1632c3f58be756fb28f2e610515bdfb800e9fa7794d3d92388c426d733b688524c4099b043145f99167a96bfd21a2ec082d71b8acb79f7ce06b4cda
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/189/202508051745_1754370651700_H169_1080.jpg" group-title="地方", 陕西体育休闲频道
https://mgtv.ottiptv.cc/migu/956909356.m3u8?migutoken=bf75c0277b603ea42e5e7c49bb0985e4d3ebd9762d35f373cee28505ee3734a9c41cdf5168ab0ff3e7127d1745739fd431e857d17a39d7bed66a16d4f04dd096c182507c4c9d563a263bd96f55
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/188/202508051741_1754370551778_H169_1080.jpg" group-title="地方", 陕西秦腔频道
https://mgtv.ottiptv.cc/migu/956909303.m3u8?migutoken=1595378496aacc9025d4c9bffc6f148a5d6127736e79c74efe45926149dd839ad1cd8108535c7ebd6a1529e22477d985894062a4d1f2ba3bbe227404f84bce90b6dc721e1fa7af908ba444759d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/187/202508051740_1754370413748_H169_1080.jpg" group-title="地方", 陕西新闻资讯频道
https://mgtv.ottiptv.cc/migu/956909289.m3u8?migutoken=572154040c8bd4d0996feee1d098d19fb74906d37ac6dc066a0a86a720a95a8708445621a06f8a870272173e971137d31fbd84b5dff675adada597e9a355a526d37224401ec5734a7d368f1a2c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/193/202508061552_1754385775557_H169_1080.jpg" group-title="地方", 财富天下
https://mgtv.ottiptv.cc/migu/956923159.m3u8?migutoken=8ee113240cd9da216f6b3f3e20e5f3a837374435ea39acf8d765ccd54c18b0e3bc9c4b0676736bb7faa19bf0e54f3a86e5ecf64e4e802078386c612069f35ba25648cdf2f489205e4617a27a1c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/242/089/202508211805_1755769495190_H169_1080.jpg" group-title="影视", 经典香港电影
https://mgtv.ottiptv.cc/migu/625703337.m3u8?migutoken=2cf8eafbe252bdc9f55613a1e9c578157d6137cf348903e9e00ac447f4a5de037f96d8f39703029194adb6eefce070ec25c66a20571a27a00475b36562b51e3ff107cfb90ef598d29f233e5f74
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/230/666/202507181733_1752831177769_H169_1080.jpg" group-title="影视", 高能悬疑 推理时刻
https://mgtv.ottiptv.cc/migu/625133682.m3u8?migutoken=8a205289cefbd82abe17a057493f549dcd22e50e960b6483706ffedfaab58b6cb64b7cd8a16d1645818cc0566fb84e7bd4e69d6b8391ff8236f32f979d5d19c17419fd498a3ca3cf71eabd7c52
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/002/717/202507241513_1753340542329_H169_1080.jpg" group-title="影视", 抗战经典影片
https://mgtv.ottiptv.cc/migu/617432318.m3u8?migutoken=a6d7c4f48cc0c3644e657ff2c391f0de00455a7a2a4cf3a1c9e952cba35bedf1757afaddfc82bee3abe013ccdf055f7baf29aa9437a95d2c840f40e860aba0e63b37e8cb020e9cdb2c6d016586
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/035/175/202405061742_1714988181593_H169_1080.jpg" group-title="影视", 新片放映厅
https://mgtv.ottiptv.cc/migu/619495952.m3u8?migutoken=a26d51ed5f2838f664cb083118c63366f1428bc82827a0b90350e83876076d943f3e6812eb03a6e8726083bb429aa9ef578e2c66fafb48b5d6ba3e84fba9bd567fcaf09a08780f92e830e65be3
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/176/202504161629_1744788994468_H169_1080.jpg" group-title="影视", CHC影迷电影
https://mgtv.ottiptv.cc/migu/952383261.m3u8?migutoken=94b247b61b420b2d2ce74bea870e63a67b3e0d3636bf6b29b9fa020a9f37e91377d608312db023d9c26aad062db0c9e5e8b7952b9169cdf2ff711b48739e98677a95f9cebc2b94310bd7919a00
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/554/795/202308221159_1692676692674_H169_1080.jpg" group-title="影视", CHC动作电影
https://mgtv.ottiptv.cc/migu/644368714.m3u8?migutoken=7eaf208857d64e9613583b3c228b2456997dcec227a1785f1fb1b2d8bde643c97f82765f134cc853ab4606cca5a955cf52a9c65fd02e6c027eaea71adc8ecf7905f4f438c9caa6b6bae1d47649
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/554/911/202308221200_1692676825616_H169_1080.jpg" group-title="影视", CHC家庭影院
https://mgtv.ottiptv.cc/migu/644368373.m3u8?migutoken=1570a60c318b7ef0708368385185f779a9c3971f538e2c238c06910b07ffffdcf8cb6287b10638f40ce5de04bf8b09ab2ec4e79088fcecac5fb3c0176a08256ef77b7c624c542cce7ac1e3e123
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/525/202504151721_1744708803016_H169_1080.jpg" group-title="影视", 和美乡途轮播台
https://mgtv.ottiptv.cc/migu/713591450.m3u8?migutoken=0306940f5c840b223042f8ab9cb329c5ce5c4a00c726b67524379de3902c77cc7b1b60883ba34be647f630ed135c19db2ba54c0224dae931c08bd8822c4c781655a1afe4c473e601de885680be
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2206/173/738/202304081513_2206173738_HSJ720H.jpg" group-title="影视", 南方影视
https://mgtv.ottiptv.cc/migu/614961829.m3u8?migutoken=b59d551cc4757a64b4f70a1aa14761629bb055bb9f9ec20bc9fbfc8651cf825a454f35f72d65e7d3b6f01146c775a96d0eae1e71a902477769fe5df9be3e46d1d081be2c1599bc97a3e14aab68
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/527/202506181115_1750216473927_H169_1080.jpg" group-title="影视", 血色山河·抗日战争影像志
https://mgtv.ottiptv.cc/migu/713600957.m3u8?migutoken=a136ea82332d10c6882dd8cca13d8331508526fbbc38fdc7ca2762e8c5ba9cb30ade273b03127ba646b7411f905fa0eb8e7b4c26e77fc97a0c2a1c9b4e8f9101888b72dbfbc9fe4359af4f53b5
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2202/634/723/202206081044_1654656251447_H169_1080.jpg" group-title="熊猫", 熊猫频道01高清
https://mgtv.ottiptv.cc/migu/609158151.m3u8?migutoken=c2b1388a7e9034ded245c90cb3e41b331e95bb46c31ff0d7eb04b8052a04e1b5d4b0aa6372704e4d07ff75aa783d7e9543c3c6057226ef7c1b2d6a809efe31092f5069a92f176c17091288ae3d
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/699/202209211759_2200200699_H169_1080.jpg" group-title="熊猫", 熊猫频道1
https://mgtv.ottiptv.cc/migu/608933610.m3u8?migutoken=025d90bca7b2e6535709b10a18b2f6342a4c6ba90972e19e41976a37f112296d9ee7f9a439742903dc111b538972fcd1b4583b8e3175a48dde3b34e794243bb3ce3d741f5dd7a3bf4c20ca23cf
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/717/202209211759_2200200717_H169_1080.jpg" group-title="熊猫", 熊猫频道2
https://mgtv.ottiptv.cc/migu/608933640.m3u8?migutoken=818ed185b95c0ce3290acfcc50b633b31dbee8c9da888168bc687165b86e00d21a066960a4ec952e199051811266a9cd8f4476707a4c0cde7331fd0cb73cef6d3b3348fef77355aa2e628bca73
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/738/202209211759_2200200738_H169_1080.jpg" group-title="熊猫", 熊猫频道3
https://mgtv.ottiptv.cc/migu/608934619.m3u8?migutoken=bc1fb30ab7500c6fdc4d4f5aa8980f330ae5884cff1d54b74babf5bf1e6a59fb84a6e9277bd18998dd1309096e7d461f73748898c97f589f232e690baa5f2a17fbd76dc57d273ec79e46829303
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/771/202209211800_2200200771_H169_1080.jpg" group-title="熊猫", 熊猫频道4
https://mgtv.ottiptv.cc/migu/608934721.m3u8?migutoken=78132a9b4eb9f9d6908a012f29a2e0990d84ebbcd5453f2ba0d937825b7f12b516f113b0a6c9832e008cccdbf7a419feee75665e7762fefc56dd5a592eb8ddfd1140a0342aae0ecf8658923dbe
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/791/202209211800_2200200791_H169_1080.jpg" group-title="熊猫", 熊猫频道5
https://mgtv.ottiptv.cc/migu/608935104.m3u8?migutoken=b00f56bbcfa5c21368f00988c2aed467354aa4ea263a5cee499896e66016304a8bcd56f9783e66a7fc5eb3dbcca8a973d494424b088cd2205cd8748b2a65e7e4cf17030df60b81221f4462ad94
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/200/817/202209211800_2200200817_H169_1080.jpg" group-title="熊猫", 熊猫频道6
https://mgtv.ottiptv.cc/migu/608935797.m3u8?migutoken=a18fce4099b6dd83a07edddf80193c9a55ba380cdbc9b5194bde594c72b9f26768214811ceb3ae0acd6c8d69f42a866c2adcb929dab658cd55102ece3e3c036d2b1334ae7797d0349a18ac1e09
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/831/202209211800_2200192831_H169_1080.jpg" group-title="熊猫", 熊猫频道7
https://mgtv.ottiptv.cc/migu/609169286.m3u8?migutoken=a8e933f2c96201fc805e9d0d078b1d3c721b5882e47f7e27c46616c958dd300fe20954baa42a12bee5b376810a68ac7da31afd7acff65bd662dfe92ac856c11bbf10c001c9a60092f58575f2b4
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/881/202209211800_2200192881_H169_1080.jpg" group-title="熊猫", 熊猫频道8
https://mgtv.ottiptv.cc/migu/609169287.m3u8?migutoken=d5ad3b20cfcea930ce8393a0932bafb2e4ff86fbb790c80526622b0eafcb98a311d0601e49b95c714b8834bf1d3f507fe25cd51f968b7c556aae14964dadc63036708d3ff4795db60e64f2b00c
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/899/202209211800_2200192899_H169_1080.jpg" group-title="熊猫", 熊猫频道9
https://mgtv.ottiptv.cc/migu/609169226.m3u8?migutoken=b06ba85475e5943d79f58cb8cecf86b566c5fd8238ee115cec57e6a541103e8a643fa7bc4cdfb96b1fc9ec96c108be0bfea4dd8cd5b5af09587c87c69e11fc031dc8d04359243c7ec5148700f5
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2200/192/937/202209211800_2200192937_H169_1080.jpg" group-title="熊猫", 熊猫频道10
https://mgtv.ottiptv.cc/migu/609169285.m3u8?migutoken=22f5f03abdf1d80dd49748a463357f24fce13821d8f5088a77849d08c1b1fdcaba51add4853f381d5b479e7004b519e84b5102e04540faf274702fa8ea2b148027ca3094ee4a254d60ab344544
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/2206/172/388/202304101530_2206172388_H169_1080.jpg" group-title="少儿", 嘉佳卡通
https://mgtv.ottiptv.cc/migu/614952364.m3u8?migutoken=6a1b4f87d28a49b91a999f201e6026a4d7987f67eeed37a677f2dbd4cb008d63e55ad8a0650a43b570410e602913a810853e4bb842270e1bf0c63185b254448a1a6b617fb6d61fb83e4a71bc97
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/019/523/202506060000_1749138932995_H169_1080.jpg" group-title="纪实", 新动力量创一流
https://mgtv.ottiptv.cc/migu/713589837.m3u8?migutoken=06b762e40a68256682e072d4529483327136597e03cb2308c065cdcd3fed6e9fa682daafa57561ab9e3c11df46350bb4c88c5d9f86e9c4932ef9803448486120b82b55ab10f22362ad892cdce9
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/613/479/202210281603_5102115888_HSJ720H.jpg" group-title="印象天下", 钱塘江
https://mgtv.ottiptv.cc/migu/647370520.m3u8?migutoken=713e52cd7e4c5f5da44e2db186661e0ffabb7efff0e5ebb1cf6c5fff5bf786a9a5eb61f569ad74731aa5b204ea81f226f4b48e6501d0a94d231ce21fb53e00f2d564a2222e62ae6ed845ed90a7
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/462/658/202506201045_1750387453057_H169_1080.jpg" group-title="体育", 五环传奇
https://mgtv.ottiptv.cc/migu/707671890.m3u8?migutoken=fca5569308213284b95479ea1e256ace30960e33c7703e6daf89ae2d653c315b516fa4433c2b76dccb140f0738f7ae66c3cd960a83e5e11b41dbb1e165ea67431452ed40f13d544bf834e568a8
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/341/085/202308221004_1692669748086_H169_1080.jpg" group-title="体育", 掼蛋精英赛
https://mgtv.ottiptv.cc/migu/631354620.m3u8?migutoken=2d9e9a6540d9f21188191244386fa1fbc2ec44babbb9682bfc928d5b068fe3d374dd6f60a1e455b019189d704a065ba8e54e08194dfd7af40e12a528a95910d4860145838c60fc52579e082e61
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/v1/image/5910/022/184/202508040856_5100132656_H169_1080.jpg" group-title="体育", 四海钓鱼
https://mgtv.ottiptv.cc/migu/637444975.m3u8?migutoken=896faf4b563e46e862210dfd39e74655af50ab94f093457fcb8549c4c8655c64ab3a2e34024289fd3bf74636c79fb6023685b3bb8e691ccd79578af5a81784b1c94f4a8191530d73f260e63fe9
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5500/751/211/202106111236_5102223687_201903181136295010914_HSJ720H.jpg" group-title="体育", 咪咕24小时体育台
https://mgtv.ottiptv.cc/migu/654102378.m3u8?migutoken=064613ab8b9c48d69519776e7613a8aaae0bf2347fe9edd41c686bda3b45971770237e707035764942f91461997319b529c1195462019acb43773dd8b5c6dc349ac9fa0f37def13d9b9917dda9
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/150/202407181432_1721283643483_H169_1080.jpg" group-title="教育", CETV1
https://mgtv.ottiptv.cc/migu/923287154.m3u8?migutoken=0540bf7b992d6352a8c14a18dccc9e14093c711e30bc7f0ee182ab6031fc5f640dc7854847146852d3ae3fcabf98fcb74c752825154af8e73154114ee8b3aefb125a614adac8c4a9363b5f98ca
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/152/202407181432_1721283773509_H169_1080.jpg" group-title="教育", CETV2
https://mgtv.ottiptv.cc/migu/923287211.m3u8?migutoken=3cf7b14d71670c818d151270e448927a596b38825cd8da14293f2b7d57cb98b25a678b8f0131ac81dfcd4a1cf83ebc97516d545bff4c14530cbff28f67d2faa6fdb62d82b262660b84f0e706d8
#EXTINF:-1 tvg-logo="https://wapx.cmvideo.cn/publish/poms/image/5910/022/154/202407181433_1721283860085_H169_1080.jpg" group-title="教育", CETV4
https://mgtv.ottiptv.cc/migu/923287339.m3u8?migutoken=32a8a31ad17047c314ae6e9b125bdde78c228722c33e9f9af7c755f6750bcb9f175620e94703f4662ea1ae73c2ea7ed221fce1591626a308a0bcfb555bc447103dc057f82700df64f164a0d9ce
#EXTINF:-1,tvg-id="cctv16" tvg-name="cctv16" tvg-logo="https://11.112114.xyz/logo/cctv16.png" group-title="央视",cctv16-MST
https://mursor.ottiptv.cc/mst/cctv16.m3u8
#EXTINF:-1,tvg-id="cctv16" tvg-name="cctv16" tvg-logo="https://11.112114.xyz/logo/cctv16.png" group-title="央视",cctv16-MCP
https://mursor.ottiptv.cc/mcp/cctv16.m3u8
#EXTINF:-1,tvg-id="cctv4k" tvg-name="cctv4k" tvg-logo="https://11.112114.xyz/logo/cctv4k.png" group-title="央视",cctv4k-MXW
https://mursor.ottiptv.cc/mxw/cctv4k.m3u8
#EXTINF:-1,tvg-id="cctv4k" tvg-name="cctv4k" tvg-logo="https://11.112114.xyz/logo/cctv4k.png" group-title="央视",cctv4k-MCP
https://mursor.ottiptv.cc/mcp/cctv4k.m3u8
#EXTINF:-1,tvg-id="cctv8k" tvg-name="cctv8k" tvg-logo="https://11.112114.xyz/logo/cctv8k.png" group-title="央视",cctv8k-MCP
https://mursor.ottiptv.cc/mcp/cctv8k.m3u8
#EXTINF:-1,tvg-id="第一剧场" tvg-name="第一剧场" tvg-logo="https://11.112114.xyz/logo/第一剧场.png" group-title="央视",第一剧场-MCP
https://mursor.ottiptv.cc/mcp/dyjc.m3u8
#EXTINF:-1,tvg-id="cctv8k" tvg-name="风云剧场" tvg-logo="https://11.112114.xyz/logo/风云剧场.png" group-title="央视",风云剧场-MCP
https://mursor.ottiptv.cc/mcp/fyjc.m3u8
#EXTINF:-1,tvg-id="怀旧剧场" tvg-name="怀旧剧场" tvg-logo="https://11.112114.xyz/logo/怀旧剧场.png" group-title="央视",怀旧剧场-MCP
https://mursor.ottiptv.cc/mcp/hjjc.m3u8
#EXTINF:-1,tvg-id="CGTNALBY" tvg-name="CGTNALBY" tvg-logo="https://11.112114.xyz/logo/CGTNALBY.png" group-title="央视",cgtnar-MCP
https://mursor.ottiptv.cc/mcp/cgtnar.m3u8
#EXTINF:-1,tvg-id="cgtndocumentary" tvg-name="cgtndocumentary" tvg-logo="https://11.112114.xyz/logo/cgtndocumentary.png" group-title="央视",cgtndoc-MCP
https://mursor.ottiptv.cc/mcp/cgtndoc.m3u8
#EXTINF:-1,tvg-id="CGTNEN" tvg-name="CGTNEN" tvg-logo="https://11.112114.xyz/logo/CGTN.png" group-title="央视",cgtn-MCP
https://mursor.ottiptv.cc/mcp/cgtn.m3u8
#EXTINF:-1,tvg-id="cgtnfrench" tvg-name="cgtnfrench" tvg-logo="https://11.112114.xyz/logo/cgtnfrench.png" group-title="央视",cgtnfr-MCP
https://mursor.ottiptv.cc/mcp/cgtnfr.m3u8
#EXTINF:-1,tvg-id="cgtnru" tvg-name="cgtnru" tvg-logo="https://11.112114.xyz/logo/CGTN1.png" group-title="央视",cgtnru-MCP
https://mursor.ottiptv.cc/mcp/cgtnru.m3u8
#EXTINF:-1,tvg-id="cgtnsp" tvg-name="cgtnsp" tvg-logo="https://11.112114.xyz/logo/CGTN1.png" group-title="央视",cgtnsp-MCP
https://mursor.ottiptv.cc/mcp/cgtnsp.m3u8
#EXTINF:-1,tvg-id="中国教育1台" tvg-name="中国教育1台" tvg-logo="https://11.112114.xyz/logo/中国教育1台.png" group-title="其他",中国教育电视台-MCP
https://mursor.ottiptv.cc/mcp/cetv1.m3u8
#EXTINF:-1,tvg-id="北京卫视" tvg-name="北京卫视" tvg-logo="https://11.112114.xyz/logo/北京卫视.png" group-title="卫视",北京卫视-MCP
https://mursor.ottiptv.cc/mcp/beijing.m3u8
#EXTINF:-1,tvg-id="湖南卫视" tvg-name="湖南卫视" tvg-logo="https://11.112114.xyz/logo/湖南卫视.png" group-title="卫视",湖南卫视-MCP
https://mursor.ottiptv.cc/mcp/hunan.m3u8
#EXTINF:-1,tvg-id="江苏卫视" tvg-name="江苏卫视" tvg-logo="https://11.112114.xyz/logo/江苏卫视.png" group-title="卫视",江苏卫视-MCP
https://mursor.ottiptv.cc/mcp/jiangsu.m3u8
#EXTINF:-1,tvg-id="东方卫视" tvg-name="东方卫视" tvg-logo="https://11.112114.xyz/logo/东方卫视.png" group-title="卫视",东方卫视-MCP
https://mursor.ottiptv.cc/mcp/dongfang.m3u8
#EXTINF:-1,tvg-id="浙江卫视" tvg-name="浙江卫视" tvg-logo="https://11.112114.xyz/logo/浙江卫视.png" group-title="卫视",浙江卫视-MCP
https://mursor.ottiptv.cc/mcp/zhejiang.m3u8
#EXTINF:-1,tvg-id="湖北卫视" tvg-name="湖北卫视" tvg-logo="https://11.112114.xyz/logo/湖北卫视.png" group-title="卫视",湖北卫视-MCP
https://mursor.ottiptv.cc/mcp/hubei.m3u8
#EXTINF:-1,tvg-id="天津卫视" tvg-name="天津卫视" tvg-logo="https://11.112114.xyz/logo/天津卫视.png" group-title="卫视",天津卫视-MCP
https://mursor.ottiptv.cc/mcp/tianjing.m3u8
#EXTINF:-1,tvg-id="山东卫视" tvg-name="山东卫视" tvg-logo="https://11.112114.xyz/logo/山东卫视.png" group-title="卫视",山东卫视-MCP
https://mursor.ottiptv.cc/mcp/shandong.m3u8
#EXTINF:-1,tvg-id="辽宁卫视" tvg-name="辽宁卫视" tvg-logo="https://11.112114.xyz/logo/辽宁卫视.png" group-title="卫视",辽宁卫视-MCP
https://mursor.ottiptv.cc/mcp/liaoning.m3u8
#EXTINF:-1,tvg-id="安徽卫视" tvg-name="安徽卫视" tvg-logo="https://11.112114.xyz/logo/安徽卫视.png" group-title="卫视",安徽卫视-MCP
https://mursor.ottiptv.cc/mcp/anhui.m3u8
#EXTINF:-1,tvg-id="黑龙江卫视" tvg-name="黑龙江卫视" tvg-logo="https://11.112114.xyz/logo/黑龙江卫视.png" group-title="卫视",黑龙江卫视-MCP
https://mursor.ottiptv.cc/mcp/heilongjiang.m3u8
#EXTINF:-1,tvg-id="贵州卫视" tvg-name="贵州卫视" tvg-logo="https://11.112114.xyz/logo/贵州卫视.png" group-title="卫视",贵州卫视-MCP
https://mursor.ottiptv.cc/mcp/guizhou.m3u8
#EXTINF:-1,tvg-id="东南卫视" tvg-name="东南卫视" tvg-logo="https://11.112114.xyz/logo/东南卫视.png" group-title="卫视",东南卫视-MCP
https://mursor.ottiptv.cc/mcp/dongnan.m3u8
#EXTINF:-1,tvg-id="重庆卫视" tvg-name="重庆卫视" tvg-logo="https://11.112114.xyz/logo/重庆卫视.png" group-title="卫视",重庆卫视-MCP
https://mursor.ottiptv.cc/mcp/chongqing.m3u8
#EXTINF:-1,tvg-id="江西卫视" tvg-name="江西卫视" tvg-logo="https://11.112114.xyz/logo/江西卫视.png" group-title="卫视",江西卫视-MCP
https://mursor.ottiptv.cc/mcp/jiangxi.m3u8
#EXTINF:-1,tvg-id="广东卫视" tvg-name="广东卫视" tvg-logo="https://11.112114.xyz/logo/广东卫视.png" group-title="卫视",广东卫视-MCP
https://mursor.ottiptv.cc/mcp/guangdong.m3u8
#EXTINF:-1,tvg-id="河北卫视" tvg-name="河北卫视" tvg-logo="https://11.112114.xyz/logo/河北卫视.png" group-title="卫视",河北卫视-MCP
https://mursor.ottiptv.cc/mcp/hebei.m3u8
#EXTINF:-1,tvg-id="深圳卫视" tvg-name="深圳卫视" tvg-logo="https://11.112114.xyz/logo/深圳卫视.png" group-title="卫视",深圳卫视-MCP
https://mursor.ottiptv.cc/mcp/shenzheng.m3u8
#EXTINF:-1,tvg-id="吉林卫视" tvg-name="吉林卫视" tvg-logo="https://11.112114.xyz/logo/吉林卫视.png" group-title="卫视",吉林卫视-MCP
https://mursor.ottiptv.cc/mcp/jiling.m3u8
#EXTINF:-1,tvg-id="河南卫视" tvg-name="河南卫视" tvg-logo="https://11.112114.xyz/logo/河南卫视.png" group-title="卫视",河南卫视-MCP
https://mursor.ottiptv.cc/mcp/henan.m3u8
#EXTINF:-1,tvg-id="四川卫视" tvg-name="四川卫视" tvg-logo="https://11.112114.xyz/logo/四川卫视.png" group-title="卫视",四川卫视-MCP
https://mursor.ottiptv.cc/mcp/sichuan.m3u8
#EXTINF:-1,tvg-id="河北卫视" tvg-name="河北卫视" tvg-logo="https://11.112114.xyz/logo/河北卫视.png" group-title="卫视",河北卫视-MCP
https://mursor.ottiptv.cc/mcp/hebei.m3u8
#EXTINF:-1,tvg-id="广西卫视" tvg-name="广西卫视" tvg-logo="https://11.112114.xyz/logo/广西卫视.png" group-title="卫视",广西卫视-MCP
https://mursor.ottiptv.cc/mcp/guangxi.m3u8
#EXTINF:-1,tvg-id="陕西卫视" tvg-name="陕西卫视" tvg-logo="https://11.112114.xyz/logo/陕西卫视.png" group-title="卫视",陕西卫视-MCP
https://mursor.ottiptv.cc/mcp/shanxiws.m3u8
#EXTINF:-1,tvg-id="山西卫视" tvg-name="山西卫视" tvg-logo="https://11.112114.xyz/logo/山西卫视.png" group-title="卫视",山西卫视-MCP
https://mursor.ottiptv.cc/mcp/shanxi.m3u8
#EXTINF:-1,tvg-id="内蒙古卫视" tvg-name="内蒙古卫视" tvg-logo="https://11.112114.xyz/logo/内蒙古卫视.png" group-title="卫视",内蒙古卫视-MCP
https://mursor.ottiptv.cc/mcp/neimenggu.m3u8
#EXTINF:-1,tvg-id="青海卫视" tvg-name="青海卫视" tvg-logo="https://11.112114.xyz/logo/青海卫视.png" group-title="卫视",青海卫视-MCP
https://mursor.ottiptv.cc/mcp/qinghai.m3u8
#EXTINF:-1,tvg-id="海南卫视" tvg-name="海南卫视" tvg-logo="https://11.112114.xyz/logo/海南卫视.png" group-title="卫视",海南卫视-MCP
https://mursor.ottiptv.cc/mcp/hainan.m3u8
#EXTINF:-1,tvg-id="宁夏卫视" tvg-name="宁夏卫视" tvg-logo="https://11.112114.xyz/logo/宁夏卫视.png" group-title="卫视",宁夏卫视-MCP
https://mursor.ottiptv.cc/mcp/ningxia.m3u8
#EXTINF:-1,tvg-id="西藏卫视" tvg-name="西藏卫视" tvg-logo="https://11.112114.xyz/logo/西藏卫视.png" group-title="卫视",西藏卫视-MCP
https://mursor.ottiptv.cc/mcp/xizang.m3u8
#EXTINF:-1,tvg-id="新疆卫视" tvg-name="新疆卫视" tvg-logo="https://11.112114.xyz/logo/新疆卫视.png" group-title="卫视",新疆卫视-MCP
https://mursor.ottiptv.cc/mcp/xinjiang.m3u8
#EXTINF:-1,tvg-id="甘肃卫视" tvg-name="甘肃卫视" tvg-logo="https://11.112114.xyz/logo/甘肃卫视.png" group-title="卫视",甘肃卫视-MCP
https://mursor.ottiptv.cc/mcp/gansu.m3u8
#EXTINF:-1,tvg-id="云南卫视" tvg-name="云南卫视" tvg-logo="https://11.112114.xyz/logo/云南卫视.png" group-title="卫视",云南卫视-MCP
https://mursor.ottiptv.cc/mcp/yunnan.m3u8
#EXTINF:-1,tvg-id="兵团卫视" tvg-name="兵团卫视" tvg-logo="https://11.112114.xyz/logo/兵团卫视.png" group-title="卫视",兵团卫视-MCP
https://mursor.ottiptv.cc/mcp/bintuan.m3u8

577
js/fty/lib/jinja.js Normal file
View File

@ -0,0 +1,577 @@
/*!
* Jinja Templating for JavaScript v0.1.8
* https://github.com/sstur/jinja-js
*
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
*
* In the interest of simplicity, it deviates from Jinja2 as follows:
* - Line statements, cycle, super, macro tags and block nesting are not implemented
* - auto escapes html by default (the filter is "html" not "e")
* - Only "html" and "safe" filters are built in
* - Filters are not valid in expressions; `foo|length > 1` is not valid
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
*
* Notes:
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
* - `.2` is not a valid number literal; use `0.2`
*
*/
/*global require, exports, module, define */
(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+)?$/;
//non-primitive literals (array and object literals)
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
//bare identifiers such as variables and in object literals: {foo: 'value'}
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
var ACCESSOR = /(\.i|\[[@#i]\])/g;
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
//extended (english) operators
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) {
//here we match the rest of the src against a regex for this tag
var match = src.slice(index + open.length).match(TAGS[open]);
match = (match ? match[0] : '');
//here we sub out strings so we don't get false matches
var simplified = match.replace(STRINGS, '@');
//if we don't have a close tag or there is a nested open tag
if (!match || ~simplified.indexOf(open)) {
return index + 1;
}
var inner = match.slice(0, 0 - open.length);
//check for white-space collapse syntax
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
if (inner.slice(-1) === '-') var wsCollapseRight = true;
inner = inner.replace(/^-|-$/g, '').trim();
//if we're in raw mode and we are not looking at an "endraw" tag, move along
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 === '{{{') {
//liquid-style: make {{{x}}} => {{x|safe}}
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, '@');
//replace || operators with ~
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
//put back || operators
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];
};
//replace complex literals without mistaking subscript notation with array literals
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');
};
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
Parser.prototype.parseExpr = function (src, opts) {
opts = opts || {};
//extract string literals -> @
var parsed1 = this.extractEnt(src, STRINGS, '@');
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
return (op in operators) ? before + operators[op] + after : s;
});
//sub out non-string literals (numbers/true/false/null) -> #
// the distinction is necessary because @ can be object identifiers, # cannot
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
return (s in constants || NUMBER.test(s)) ? '#' : null;
});
//sub out object/variable identifiers -> i
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
//remove white-space
parsed3.src = parsed3.src.replace(/\s+/g, '');
//the rest of this is simply to boil the expression down and check validity
var simplified = parsed3.src;
//sub out complex literals (objects/arrays) -> ~
// the distinction is necessary because @ and # can be subscripts but ~ cannot
while (simplified !== (simplified = this.replaceComplex(simplified))) ;
//now @ represents strings, # represents other primitives and ~ represents non-primitives
//replace complex variables (those with dot/subscript accessors) -> v
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
//empty subscript or complex variables in subscript, are not permitted
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
simplified = simplified.replace(/[@#~v]/g, 'i');
//sub out operators
simplified = simplified.replace(OPERATORS, '%');
//allow 'not' unary operator
simplified = simplified.replace(/!+[i]/g, 'i');
var terms = opts.terms ? simplified.split(',') : [simplified];
terms.forEach(function (term) {
//simplify logical grouping
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();
//quote bare object identifiers (might be a reserved word like {while: 1})
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(',') + ')';
};
//escapes a name to be used as a javascript identifier
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 + '"';
}
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
return JSON.parse(str);
};
//the context 'this' inside tagHandlers is the parser instance
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;
//silence output until we enter a child block
this.isSilent = true;
},
'include': function (name) {
name = this.parseQuoted(name);
var incSrc = this.readTemplateFile(name);
this.isInclude = true;
this.tokenize(incSrc);
this.isInclude = false;
}
};
//liquid style
tagHandlers.assign = tagHandlers.set;
//python/django style
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;
};
//get a value, lexically, starting in current context; a.b -> get("a","b")
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;
//now arr looks like [val, arg1, arg2]
val = filter.apply(data, arr);
} else {
throw new Error('Invalid filter: ' + name);
}
}
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
//auto escape if not explicitly safe or already escaped
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;
};
/*!
* Helpers
*/
function trimLeft(str) {
return str.replace(LEADING_SPACE, '');
}
function trimRight(str) {
return str.replace(TRAILING_SPACE, '');
}
function matchAll(str, reg, fn) {
//copy as global
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;
}
}
}
}));

1737
js/fty/lib/json5.js Normal file

File diff suppressed because one or more lines are too long

2
js/fty/lib/node-rsa.js Normal file

File diff suppressed because one or more lines are too long

2
js/fty/lib/pako.min.js vendored Normal file

File diff suppressed because one or more lines are too long

26
js/fty/lib/兔小贝.js Normal file
View File

@ -0,0 +1,26 @@
var rule = {
title:'兔小贝',
host:'https://www.tuxiaobei.com',
homeUrl:'',
url:'/list/mip-data?typeId=fyclass&page=fypage&callback=',
detailUrl:'/play/fyid',
searchUrl:'/search/index?key=**',
searchable:2,
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
class_url:'2&3&4&25',
class_name:'儿歌&故事&国学&启蒙',
//class_name:'#page-viewport&&ul&&li;.text&&Text;a&&href;/(.*)',
cate_exclude:'应用',
推荐:'.pic-list.list-box;.items;.text&&Text;mip-img&&src;.all&&Text;a&&href',
double:true,
limit:5,
play_parse:true,
lazy:'js:fetch_params.headers["user-agent"] = IOS_UA;let html=fetch(input,fetch_params);let src = jsp.pdfh(html,"body&&#videoWrap&&video-src");input=src;',
// 一级:'json:data.items;name;image;collect_num;category_id+video_id',
一级:'json:data.items;name;image;duration_string;video_id',
二级:'*',
搜索:'.list-con&&.items;.text&&Text;mip-img&&src;.time&&Text;a&&href',
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,37 @@
var rule = {
title:'有声小说吧',
编码:'gb18030',
host:'http://m.ysxs8.top',
url:'/downlist/fyclass_fypage.html',
searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
searchable:2,
quickSearch:0,
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
// homeUrl:'/fenlei/',
// class_parse: '.pd-class:eq(0) dd;a&&Text;a&&href;.*/(.*?).html',
class_name:'网络玄幻&恐怖悬疑&传统武侠&都市言情&官场刑侦&历史军事&探险盗墓&职场商战&明朝那些事儿&评书下载&相声戏曲&人物传记&广播剧&百家讲坛&外语读物&有声文学&儿童读物&管理营销',
class_url:'r52&r17&r12&r13&r14&r15&r45&r81&r36&r3&r7&r16&r18&r32&r35&r41&r4&r6',
play_parse:true,
lazy:'',
limit:6,
// double:true,
推荐:'.list-ul .list-li;.list-name&&Text;*;.module-slide-author&&Text;*',
一级:'.book-ol&&li;h4&&Text;img&&data-original;.book-meta&&Text;a&&href',
二级:{
// title:'h2&&Text;.book-cell .book-rand-a:eq(2)&&Text',
title:'h1&&Text;.book-cell .book-rand-a:eq(0)&&a&&Text',
img:'.book img&&src',
// desc:';;;;.book-des p&&Text',
desc:';;;.book-rand-a:eq(2)&&Text;.book-des p&&Text',
content:'.book-des--p&&Text',
tabs:'.playlist-top&&h2',
// lists:'js:pd=jsp.pd;let url=pd(html,".bookbutton&&a&&href");log(url);html=request(url);let v=pd(html,".booksite&&script&&Html");var document={};var VideoListJson;VideoListJson=eval(v.split("VideoListJson=")[1].split(",urlinfo")[0]);log(typeof VideoListJson);let list1=VideoListJson[0][1];LISTS=[list1];log(LISTS);',
// 有声小说有防盗链,我服了(上面的列表数据正常拿到了,没法播放)
// lists:'#playlist:eq(#id)&&ul&&li',
lists:'#playlist ul li',
},
搜索:'*',
}

304
js/fty/lib/模板.js Normal file
View File

@ -0,0 +1,304 @@
if (typeof Object.assign != 'function') {
Object.assign = function () {
var target = arguments[0];
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
}
function getMubans() {
var mubanDict = { // 模板字典
mxpro: {
title: '',
host: '',
// homeUrl:'/',
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级: {
"title": "h1&&Text;.module-info-tag&&Text",
"img": ".lazyload&&data-original",
"desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
"content": ".module-info-introduction&&Text",
"tabs": ".module-tab-item",
"lists": ".module-play-list:eq(#id) a"
},
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
},
mxone5: {
title: '',
host: '',
url: '/show/fyclass--------fypage---.html',
searchUrl: '/search/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
二级: {
"title": "h1&&Text;.tag-link&&Text",
"img": ".module-item-pic&&img&&data-src",
"desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
"content": ".vod_content&&Text",
"tabs": ".module-tab-item",
"lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
},
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
},
首图: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
"title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
"img": ".myui-content__thumb .lazyload&&data-original",
"desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
"content": ".content&&Text",
"tabs": ".nav-tabs:eq(0) li",
"lists": ".myui-content__list:eq(#id) li"
},
搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
},
首图2: {
title: '',
host: '',
url: '/list/fyclass-fypage.html',
searchUrl: '/vodsearch/**----------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: '.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": ".detail&&Text",
"tabs": ".stui-vodlist__head h3",
"lists": ".stui-content__playlist:eq(#id) li"
},
搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
},
默认: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---.html',
searchUrl: '/vodsearch/-------------.html?wd=**',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'MOBILE_UA',
},
play_parse: true,
lazy: '',
limit: 6,
double: true, // 推荐内容是否双层定位
},
vfed: {
title: '',
host: '',
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA',
},
// class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: '',
limit: 6,
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
二级: {
"title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
"img": ".fed-list-info&&a&&data-original",
"desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
"content": ".fed-part-esan&&Text",
"tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
"lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
},
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
},
海螺3: {
title: '',
host: '',
searchUrl: '/v_search/**----------fypage---.html',
url: '/vod_____show/fyclass--------fypage---.html',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000,
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '明星|专题|最新|排行',
limit: 40,
play_parse: true,
lazy: '',
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
double: true,
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
二级: {
"title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
"img": ".hl-lazy&&data-original",
"desc": ".hl-infos-content&&.hl-text-conch&&Text",
"content": ".hl-content-text&&Text",
"tabs": ".hl-tabs&&a",
"lists": ".hl-plays-list:eq(#id)&&li"
},
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
},
海螺2: {
title: '',
host: '',
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
url: '/index.php/vod/show/id/fyclass/page/fypage/',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000,
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
limit: 40,
play_parse: true,
lazy: '',
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
double: true,
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
二级: {
"title": "h2&&Text;.deployment&&Text",
"img": ".lazy&&data-original",
"desc": ".deployment&&Text",
"content": ".ec-show&&Text",
"tabs": "#tag&&a",
"lists": ".play_list_box:eq(#id)&&li"
},
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
},
短视: {
title: '',
host: '',
// homeUrl:'/',
url: '/channel/fyclass-fypage.html',
searchUrl: '/search.html?wd=**',
searchable: 2,//是否启用全局搜索,
quickSearch: 0,//是否启用快速搜索,
filterable: 0,//是否启用分类筛选,
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '解析|动态',
play_parse: true,
lazy: '',
limit: 6,
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
二级: {
"title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
"img": ".img&&img&&data-src",
"desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
"content": ".zkjj_a&&Text",
"tabs": ".py-tabs&&option",
"lists": ".player:eq(#id) li"
},
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
},
短视2:{
title: '',
host: '',
class_name:'电影&电视剧&综艺&动漫',
class_url:'1&2&3&4',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2,
quickSearch: 0,
headers:{'User-Agent':'MOBILE_UA'},
url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable:0,//是否启用分类筛选,
filter_url:'',
filter: {},
filter_def:{},
detailUrl:'/index.php/vod/detail/id/fyid.html',
play_parse: true,
lazy: '',
limit: 6,
推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
一级:'js: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',
}
};
return JSON.parse(JSON.stringify(mubanDict));
}
var mubanDict = getMubans();
var muban = getMubans();
export default {muban,getMubans};

86
js/funletu.js Normal file
View File

@ -0,0 +1,86 @@
var rule = {
title:'趣盘搜[夸]',
host:'https://v.funletu.com',
homeUrl:'/',
url: '/forum-fyclass-fypage.html?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: 'json:/search#{"style":"get","datasrc":"search","query":{"id":"","datetime":"","commonid":1,"parmid":"","fileid":"","reportid":"","validid":"","searchtext":"**"},"page":{"pageSize":10,"pageIndex":1},"order":{"prop":"id","order":"desc"},"message":"请求资源列表数据"};postjson',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': PC_UA,
'Accept': '*/*',
'Referer': 'https://pan.funletu.com/'
},
timeout:5000,
class_name:'',
class_url:'',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'',
一级:'',
二级:`js:
VOD.vod_play_from = "夸克網盤";
VOD.vod_remarks = detailUrl;
VOD.vod_actor = "沒有二級,只有一級鏈接直接推送播放";
VOD.vod_content = MY_URL;
VOD.vod_play_url = "夸克網盤$" + detailUrl;
`,
搜索:`js:
let postJson = {
style:"get",
datasrc:"search",
query:{
id:"",
datetime:"",
commonid:1,
parmid:"",
fileid:"",
reportid:"",
validid:"",
searchtext: KEY
},
page:{ pageSize:20, pageIndex: MY_PAGE },
order:{prop:"id",order:"desc"},
message:"请求资源列表数据"
};
let postData = {
method: "POST",
body: postJson
};
log("funletu search postData1>>>>>>>>>>>>>>>" + JSON.stringify(postData));
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
Object.assign(_fetch_params, postData);
log("funletu search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
let new_html=post(rule.homeUrl + 'search', _fetch_params);
//log("funletu search result>>>>>>>>>>>>>>>" + new_html);
let json=JSON.parse(new_html);
let d=[]
for(const it in json["data"]){
if (json.data.hasOwnProperty(it)){
log("funletu search it>>>>>>>>>>>>>>>" + JSON.stringify(json.data[it]));
if (json.data[it].valid === 0){
d.push({
title:json.data[it].title,
img:'',
content:json.data[it].updatetime,
desc:json.data[it].updatetime,
url:'push://'+json.data[it].url.split("?")[0]
});
}
}
}
setResult(d);
`,
}

48
js/huya.js Normal file

File diff suppressed because one or more lines are too long

499
js/index.config.js Normal file
View File

@ -0,0 +1,499 @@
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.config.js
var index_config_exports = {};
__export(index_config_exports, {
default: () => index_config_default
});
module.exports = __toCommonJS(index_config_exports);
var index_config_default = {
kunyu77: {
testcfg: {
bbbb: "aaaaa"
}
},
commonConfig: {
panOrder: 'uc|p123|quark|ali|ty|115',
},
ali: {
thread: "4",
chunkSize: "400",
token: ""
},
quark: {
thread: "6",
chunkSize: "256",
//实际为256KB
cookie: ""
},
uc: {
cookie: "",
token: "",
ut:""
},
y115: {
cookie: ""
},
tyi: {
username: "",
password: ""
},
p123: {
username: "",
password: ""
},
xiaoya: {
url: "https://tvbox.omii.top/vod1/DixHtoGB"
},
yiso: {
url: "https://yiso.fun",
cookie: ""
},
bili: {
categories: "经典无损音乐合集#帕梅拉#太极拳#健身#舞蹈#音乐#歌曲#MV4K#演唱会4K#白噪音4K#知名UP主#说案#解说#演讲#时事#探索发现超清#纪录片超清#沙雕动画#沙雕穿越#沙雕#平面设计教学#软件教程#实用教程#旅游#风景4K#食谱#美食超清#搞笑#球星#动物世界超清#相声小品#戏曲#儿童#小姐姐4K#热门#旅行探险",
cookie: ""
},
tgsou: {
tgPic: false,
//每个频道返回数量
count: "4",
url: 'https://tgsou.651156.xyz',
channelUsername: "xx123pan,Q66Share,alyp_TV,ucpanpan,ucquark,tianyirigeng,shares_115,cloud189_group,tianyi_pd2,hao115,guaguale115,yunpanchat,ydypzyfx,tgsearchers,NewQuark,Mbox115,dianyingshare,XiangxiuNB,yunpanpan,kuakeyun,Quark_Movies,qixingzhenren,longzbija,alyp_4K_Movies,yunpanshare,shareAliyun,ikiviyyp,alyp_1",
},
wogg: {
url: 'http://woggpan.xxooo.cf',
},
tudou: {
url: "https://tudou.lvdoui.top"
},
wobg: {
url: "https://wobge.run.goorm.io/"
},
czzy: {
url: "https://cz01.vip"
},
hezi: {
url: "https://www.fygame.top/"
},
ttkx: {
url: "http://ttkx.live:7728/"
},
cm: {
url: "https://tv.yydsys.top"
},
libvio: {
url: "https://libvio.app/"
},
xxpan: {
url: "https://xpanpan.site"
},
m3u8cj: {
ykm3u8: [{
name: "360源",
url: "https://360zy.com/api.php/seaxml/vod/",
categories: [],
search: true
}],
doubanm3u8: [{
name: "豆瓣采集",
url: "https://caiji.dbzy.tv/api.php/provide/vod/from/dbm3u8/at/josn/",
categories: [],
search: true
}],
hmm3u8: [{
name: "黑木耳",
url: "https://json02.heimuer.xyz/api.php/provide/vod/",
categories: [],
search: true
}],
clm3u8: [{
name: "暴风",
url: "https://bfzyapi.com/api.php/provide/vod/",
categories: [],
search: true
}],
askm3u8: [{
name: "魔都",
url: "https://www.mdzyapi.com/api.php/provide/vod/?ac=list",
search: true
}],
sngm3u8: [{
name: "ikun",
url: "https://ikunzyapi.com/api.php/provide/vod/",
search: true
}],
ptm3u8: [{
name: "非凡",
url: "http://api.ffzyapi.com/api.php/provide/vod/",
search: true
}],
swm3u8: [{
name: "量子",
url: "https://cj.lziapi.com/api.php/provide/vod/",
categories: [],
search: true
}]
},
appys: {
ttmja: [{
name: "天天美剧",
url: "https://www.ttmja.com/api.php/app/",
// categories: ['国产剧', '香港剧', '韩国剧', '欧美剧', '台湾剧', '日本剧', '海外剧', '泰国剧', '短剧', '动作片', '喜剧片', '爱情片', '科幻片', '恐怖片', '剧情片', '战争片', '动漫片', '大陆综艺', '港台综艺', '日韩综艺', '欧美综艺', '国产动漫', '日韩动漫', '欧美动漫', '港台动漫', '海外动漫', '记录片'],
search: true
//搜索开关 true开 false关
}],
netfly: [{
name: "奈飞",
url: "http://www.netfly.tv/api.php/app/",
// categories: ['国产剧', '香港剧', '韩国剧', '欧美剧', '台湾剧', '日本剧', '海外剧', '泰国剧', '短剧', '动作片', '喜剧片', '爱情片', '科幻片', '恐怖片', '剧情片', '战争片', '动漫片', '大陆综艺', '港台综艺', '日韩综艺', '欧美综艺', '国产动漫', '日韩动漫', '欧美动漫', '港台动漫', '海外动漫', '记录片'],
search: true
//搜索开关 true开 false关
}]
},
alist: [
{
"name": "合集",
"server": "http://www.jczyl.top:5244/"
},
{
"name": "东哥",
"server": "http://101.34.67.237:5244/"
},
{
"name": "美云",
"server": "https://h.dfjx.ltd/"
},
{
"name": "小新",
"server": "https://pan.cdnxin.top/"
},
{
"name": "白云",
"server": "http://breadmyth.asuscomm.com:22222/"
},
{
"name": "小鸭",
"server": "http://www.214728327.xyz:5201/"
},
{
"name": "瑶瑶",
"server": "https://lyly.run.goorm.io/"
},
{
"name": "潇洒",
"server": "https://alist.azad.asia/"
},
{
"name": "鹏程",
"server": "https://pan.pengcheng.team/"
},
{
"name": "浅唱",
"server": "http://vtok.pp.ua/"
},
{
"name": "小丫",
"server": "http://alist.xiaoya.pro/"
},
{
"name": "触光",
"server": "https://pan.ichuguang.com"
},
{
"name": "弱水",
"server": "http://shicheng.wang:555/"
},
{
"name": "神器",
"server": "https://alist.ygxz.xyz/"
},
{
"name": "资源",
"server": "https://pan.ecve.cn/"
},
{
"name": "雨呢",
"server": "https://pan.clun.top/"
},
{
"name": "oeio",
"server": "https://o.oeio.repl.co/"
},
{
"name": "悦享",
"server": "https://nics.eu.org/"
},
{
"name": "分享",
"server": "https://ofoo.ml/"
},
{
"name": "PRO",
"server": "https://alist.prpr.run/"
},
{
"name": "多多",
"server": "https://pan.xwbeta.com"
},
{
"name": "小陈",
"server": "https://ypan.cc/"
},
{
"name": "只鱼",
"server": "https://alist.youte.ml"
},
{
"name": "七米",
"server": "https://al.chirmyram.com"
},
{
"name": "九帝",
"server": "https://alist.shenzjd.com"
},
{
"name": "白雪",
"server": "https://pan.jlbx.xyz"
},
{
"name": "星梦",
"server": "https://pan.bashroot.top"
},
{
"name": "repl",
"server": "https://ali.liucn.repl.co"
},
{
"name": "讯维",
"server": "https://pan.xwbeta.com"
}
],
color: [
{
light: {
bg: "https://img.omii.top/i/2024/03/28/mexspg.webp",
bgMask: "0x50ffffff",
primary: "0xff446732",
onPrimary: "0xffffffff",
primaryContainer: "0xffc5efab",
onPrimaryContainer: "0xff072100",
secondary: "0xff55624c",
onSecondary: "0xffffffff",
secondaryContainer: "0xffd9e7cb",
onSecondaryContainer: "0xff131f0d",
tertiary: "0xff386666",
onTertiary: "0xffffffff",
tertiaryContainer: "0xffbbebec",
onTertiaryContainer: "0xff002020",
error: "0xffba1a1a",
onError: "0xffffffff",
errorContainer: "0xffffdad6",
onErrorContainer: "0xff410002",
background: "0xfff8faf0",
onBackground: "0xff191d16",
surface: "0xfff8faf0",
onSurface: "0xff191d16",
surfaceVariant: "0xffe0e4d6",
onSurfaceVariant: "0xff191d16",
inverseSurface: "0xff2e312b",
inverseOnSurface: "0xfff0f2e7",
outline: "0xff74796d",
outlineVariant: "0xffc3c8bb",
shadow: "0xff000000",
scrim: "0xff000000",
inversePrimary: "0xffaad291",
surfaceTint: "0xff446732"
},
dark: {
bg: "https://img.omii.top/i/2024/03/28/mexyit.webp",
bgMask: "0x50000000",
primary: "0xffaad291",
onPrimary: "0xff173807",
primaryContainer: "0xff2d4f1c",
onPrimaryContainer: "0xffc5efab",
secondary: "0xffbdcbb0",
onSecondary: "0xff283420",
secondaryContainer: "0xff3e4a35",
onSecondaryContainer: "0xffd9e7cb",
tertiary: "0xffa0cfcf",
onTertiary: "0xff003738",
tertiaryContainer: "0xff1e4e4e",
onTertiaryContainer: "0xffbbebec",
error: "0xffffb4ab",
onError: "0xff690005",
errorContainer: "0xff93000a",
onErrorContainer: "0xffffdad6",
background: "0xff11140e",
onBackground: "0xffe1e4d9",
surface: "0xff11140e",
onSurface: "0xffe1e4d9",
surfaceVariant: "0xff43483e",
onSurfaceVariant: "0xffe1e4d9",
inverseSurface: "0xffe1e4d9",
inverseOnSurface: "0xff2e312b",
outline: "0xff8d9286",
outlineVariant: "0xff43483e",
shadow: "0xff000000",
scrim: "0xff000000",
inversePrimary: "0xff446732",
surfaceTint: "0xffaad291"
}
},
{
light: {
"bg": "https://img.omii.top/i/2024/03/27/oudroy-0.webp",
"bgMask": "0x50ffffff",
"primary": "0xFFA00B0B",
"onPrimary": "0xFFFFFFFF",
"primaryContainer": "0xFF333433",
"onPrimaryContainer": "0xFFBDC0B0",
"secondary": "0xFF55624C",
"onSecondary": "0xFFFFFFFF",
"secondaryContainer": "0xFFFFEBEE",
"onSecondaryContainer": "0xFFeb4d4b",
"tertiary": "0xFF663840",
"onTertiary": "0xFFFFFFFF",
"tertiaryContainer": "0xFFEBBBBE",
"onTertiaryContainer": "0xFF200006",
"error": "0xFFBA1A1A",
"onError": "0xFFFFFFFF",
"errorContainer": "0xFFFFDAD6",
"onErrorContainer": "0xFF410002",
"background": "0xFFFDFDF5",
"onBackground": "0xFFB94242",
"surface": "0xFFFDFDF5",
"onSurface": "0xFFB94242",
"surfaceVariant": "0xFFE4D6D8",
"onSurfaceVariant": "0xFFB94242",
"inverseSurface": "0xFF312C2C",
"onInverseSurface": "0xFFF1F1EA",
"outline": "0xFF74796D",
"outlineVariant": "0xFFC3C8BB",
"shadow": "0xFF000000",
"scrim": "0xFF000000",
"inversePrimary": "0xFFff7979",
"surfaceTint": "0xFFA00B0B"
},
dark: {
"bg": "https://img.omii.top/i/2024/01/25/xdiepq-0.webp",
"bgMask": "0x50000000",
"primary": "0xFFff7979",
"onPrimary": "0xFFA00B0B",
"primaryContainer": "0xFFeb4d4b",
"onPrimaryContainer": "0xFFFFCDD2",
"secondary": "0xFFBDCBAF",
"onSecondary": "0xFF342023",
"secondaryContainer": "0xFF4A3536",
"onSecondaryContainer": "0xFFE7CACE",
"tertiary": "0xFFA0CFCF",
"onTertiary": "0xFF003737",
"tertiaryContainer": "0xFF1E4E4E",
"onTertiaryContainer": "0xFFBBEBEB",
"error": "0xFFFFB4AB",
"errorContainer": "0xFF93000A",
"onError": "0xFF690005",
"onErrorContainer": "0xFFFFDAD6",
"background": "0xFF1C1818",
"onBackground": "0xFFE3E3DC",
"outline": "0xFF92868B",
"onInverseSurface": "0xFF1C1818",
"inverseSurface": "0xFFE3DCE1",
"inversePrimary": "0xFFeb4d4b",
"shadow": "0xFF000000",
"surfaceTint": "0xFFDA607D",
"outlineVariant": "0xFF483E41",
"scrim": "0xFF000000",
"surface": "0xFF1C1818",
"onSurface": "0xFFC7C7C0",
"surfaceVariant": "0xFF43483E",
"onSurfaceVariant": "0xFFC7C7C0"
}
},
{
light: {
bg: "",
bgMask: "0x50ffffff",
primary: "0xFF2B6C00",
onPrimary: "0xFFFFFFFF",
primaryContainer: "0xFFA6F779",
onPrimaryContainer: "0xFF082100",
secondary: "0xFF55624C",
onSecondary: "0xFFFFFFFF",
secondaryContainer: "0xFFD9E7CA",
onSecondaryContainer: "0xFF131F0D",
tertiary: "0xFF386666",
onTertiary: "0xFFFFFFFF",
tertiaryContainer: "0xFFBBEBEB",
onTertiaryContainer: "0xFF002020",
error: "0xFFBA1A1A",
onError: "0xFFFFFFFF",
errorContainer: "0xFFFFDAD6",
onErrorContainer: "0xFF410002",
background: "0xFFFDFDF5",
onBackground: "0xFF1A1C18",
surface: "0xFFFDFDF5",
onSurface: "0xFF1A1C18",
surfaceVariant: "0xFFE0E4D6",
onSurfaceVariant: "0xFF1A1C18",
inverseSurface: "0xFF2F312C",
onInverseSurface: "0xFFF1F1EA",
outline: "0xFF74796D",
outlineVariant: "0xFFC3C8BB",
shadow: "0xFF000000",
scrim: "0xFF000000",
inversePrimary: "0xFF8CDA60",
surfaceTint: "0xFF2B6C00"
},
dark: {
bg: "",
bgMask: "0x50000000",
primary: "0xFF8CDA60",
onPrimary: "0xFF133800",
primaryContainer: "0xFF1F5100",
onPrimaryContainer: "0xFFA6F779",
secondary: "0xFFBDCBAF",
onSecondary: "0xFF283420",
secondaryContainer: "0xFF3E4A35",
onSecondaryContainer: "0xFFD9E7CA",
tertiary: "0xFFA0CFCF",
onTertiary: "0xFF003737",
tertiaryContainer: "0xFF1E4E4E",
onTertiaryContainer: "0xFFBBEBEB",
error: "0xFFFFB4AB",
errorContainer: "0xFF93000A",
onError: "0xFF690005",
onErrorContainer: "0xFFFFDAD6",
background: "0xFF1A1C18",
onBackground: "0xFFE3E3DC",
outline: "0xFF8D9286",
onInverseSurface: "0xFF1A1C18",
inverseSurface: "0xFFE3E3DC",
inversePrimary: "0xFF2B6C00",
shadow: "0xFF000000",
surfaceTint: "0xFF8CDA60",
outlineVariant: "0xFF43483E",
scrim: "0xFF000000",
surface: "0xFF1A1C18",
onSurface: "0xFFC7C7C0",
surfaceVariant: "0xFF43483E",
onSurfaceVariant: "0xFFC7C7C0"
}
}
]
};

1
js/index.config.js.md5 Normal file
View File

@ -0,0 +1 @@
cf192982bce5ec2dc9b801a3209a3619

209
js/index.css Normal file
View File

@ -0,0 +1,209 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
line-height: 1.5;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 15px;
}
.container {
width: 60%;
background-color: #f0f0f0;
padding: 30px;
border-radius: 15px;
transition: all 0.4s ease;
}
header {
text-align: center;
margin-bottom: 20px;
}
h1 {
font-size: 2.2rem;
margin-bottom: 10px;
position: relative;
padding-bottom: 10px;
}
h1::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 80px;
height: 3px;
border-radius: 2px;
}
.subtitle {
font-size: 1.1rem;
max-width: 600px;
margin: 0 auto;
}
.content {
display: flex;
gap: 20px;
margin-bottom: 20px;
}
.main-content {
flex: 3;
}
.sidebar {
flex: 1;
padding: 15px;
border-radius: 8px;
}
p {
margin-bottom: 15px;
font-size: 1rem;
text-align: justify;
}
ul {
padding-left: 18px;
margin: 15px 0;
}
ul li {
line-height: 1.8;
margin-bottom: 8px;
position: relative;
padding-left: 0;
}
a {
color: #20a53a;
text-decoration: none;
font-weight: 600;
transition: all 0.3s ease;
border-bottom: 2px solid transparent;
}
.device-info {
padding: 12px;
border-radius: 8px;
text-align: center;
font-weight: 600;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.device-info i {
font-size: 1.3rem;
}
.features {
display: flex;
gap: 15px;
margin-top: 20px;
}
.feature-card {
padding: 20px;
border-radius: 8px;
text-align: center;
flex: 1;
transition: transform 0.3s ease;
}
.feature-card:hover {
transform: translateY(-3px);
}
.feature-card i {
font-size: 2.2rem;
margin-bottom: 12px;
}
@media (max-width: 1024px) {
.container {
width: 90%;
padding: 25px;
}
h1 {
font-size: 1.9rem;
}
.content {
flex-direction: column;
gap: 15px;
}
.features {
flex-wrap: wrap;
}
.feature-card {
flex: 1 1 45%;
padding: 18px;
}
}
@media (max-width: 768px) {
body {
padding: 8px;
}
.container {
padding: 20px 15px;
}
h1 {
font-size: 1.7rem;
padding-bottom: 8px;
}
.subtitle {
font-size: 0.95rem;
}
ul li {
line-height: 1.6;
}
.features {
flex-direction: column;
gap: 12px;
}
.device-info {
padding: 10px;
font-size: 0.9rem;
}
}
@media (max-width: 480px) {
.container {
padding: 18px 12px;
}
h1 {
font-size: 1.5rem;
}
ul li {
font-size: 0.92rem;
}
.feature-card {
padding: 15px;
}
}

702
js/index.js Normal file

File diff suppressed because one or more lines are too long

1
js/index.js.md5 Normal file
View File

@ -0,0 +1 @@
67840d11eb2045ee0f40615ef2b0e0bb

62
js/index.min.js vendored Normal file
View File

@ -0,0 +1,62 @@
const currentDomain = window.location.origin;
let isShowingIP = false;
async function dl(fileUrl, filename) {
try {
const response = await fetch(fileUrl);
if (!response.ok)
throw new Error(`HTTP 错误: ${response.status}`);
const blob = await response.blob();
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = filename;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
setTimeout(() => URL.revokeObjectURL(url), 100);
} catch (error) {
console.error('下载错误:', error);
}
}
async function getip() {
try {
const response = await fetch("/cdn-cgi/trace");
if (response.ok) {
const data = await response.text();
const lines = data.split("\n");
const info = {};
lines.forEach((line) => {
const parts = line.split("=");
if (parts.length === 2) {
info[parts[0]] = parts[1];
}
});
const displayText = `访客:${info.loc} | ${info.http} | IP:${info.ip} | 节点:${info.colo} | 加密:${info.tls}`;
return textContent = displayText;
}
} catch (error) {
console.error("获取失败: ", error);
return "显示失败";
}
}
$(document).ready(function () {
originalText = $("#cfs").text();
$("#cfs").click(async function () {
if (!isShowingIP) {
const ip = await getip();
$(this).text(`${ip}`);
} else {
$(this).text(originalText);
}
isShowingIP = !isShowingIP;
});
var t1 = performance.now();
$("#time").text("页面加载耗时 " + Math.round(t1) + " 毫秒");
});

230
js/jiyingw.js Normal file
View File

@ -0,0 +1,230 @@
var rule = {
title:'极影网[磁]',
host:'https://www.jiyingw.net',
homeUrl:'/',
url: '/fyclass/page/fypage?',
//host:'http://127.0.0.1:10079',
//homeUrl:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.jiyingw.net',
//url: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.jiyingw.net/fyclass/page/fypage?',
filter_url:'{{fl.class}}',
filter:{
"movie":[{"key":"class","name":"标签","value":[{"n":"全部","v":"movie"},{"n":"4k","v":"tag/4k"}, {"n":"人性","v":"tag/人性"}, {"n":"传记","v":"tag/chuanji"}, {"n":"儿童","v":"tag/儿童"}, {"n":"冒险","v":"tag/adventure"}, {"n":"剧情","v":"tag/剧情"}, {"n":"加拿大","v":"tag/加拿大"}, {"n":"动作","v":"tag/dongzuo"}, {"n":"动漫","v":"tag/动漫"}, {"n":"励志","v":"tag/励志"}, {"n":"历史","v":"tag/history"}, {"n":"古装","v":"tag/古装"}, {"n":"同性","v":"tag/gay"}, {"n":"喜剧","v":"tag/comedy"}, {"n":"国剧","v":"tag/国剧"}, {"n":"奇幻","v":"tag/qihuan"}, {"n":"女性","v":"tag/女性"}, {"n":"家庭","v":"tag/family"}, {"n":"德国","v":"tag/德国"}, {"n":"恐怖","v":"tag/kongbu"}, {"n":"悬疑","v":"tag/xuanyi"}, {"n":"惊悚","v":"tag/jingsong"}, {"n":"意大利","v":"tag/意大利"}, {"n":"战争","v":"tag/zhanzheng"}, {"n":"战斗","v":"tag/战斗"}, {"n":"搞笑","v":"tag/搞笑"}, {"n":"故事","v":"tag/故事"}, {"n":"文艺","v":"tag/文艺"}, {"n":"日常","v":"tag/日常"}, {"n":"日本","v":"tag/日本"}, {"n":"日语","v":"tag/日语"}, {"n":"校园","v":"tag/校园"}, {"n":"武侠","v":"tag/wuxia"}, {"n":"法国","v":"tag/法国"}, {"n":"游戏","v":"tag/游戏"}, {"n":"灾难","v":"tag/zainan"}, {"n":"爱情","v":"tag/爱情"}, {"n":"犯罪","v":"tag/crime"}, {"n":"真人秀","v":"tag/zhenrenxiu"}, {"n":"短片","v":"tag/duanpian"}, {"n":"科幻","v":"tag/kehuan"}, {"n":"纪录","v":"tag/jilu"}, {"n":"美剧","v":"tag/meiju"}, {"n":"舞台","v":"tag/stage"}, {"n":"西部","v":"tag/xibu"}, {"n":"运动","v":"tag/yundong"}, {"n":"韩剧","v":"tag/韩剧"}, {"n":"韩国","v":"tag/韩国"}, {"n":"音乐","v":"tag/yinyue"}, {"n":"高清电影","v":"tag/高清电影"}]}]
},
searchUrl: '/?s=**',
searchable:2,
quickSearch:0,
filterable:1,
headers:{
'User-Agent': 'PC_UA',
'Cookie':'http://127.0.0.1:9978/file:///tvbox/JS/lib/jiyingw.txt',
'Accept':'*/*',
'Referer': 'https://www.jiyingw.net/'
},
timeout:5000,
class_name:'电影&电视剧&动漫&综艺&影评',
class_url:'movie&tv&cartoon&movie/variety&yingping',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'ul#post_container li;a&&title;img&&src;.article entry_post&&Text;a&&href',
一级:'ul#post_container li;a&&title;img&&src;.article entry_post&&Text;a&&href',
二级:{
title:"h1&&Text",
img:"#post_content img&&src",
desc:"#post_content&&Text",
content:"#post_content&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let tabsa = [];
let tabsq = [];
let tabsm = false;
let tabse = false;
let d = pdfa(html, '#post_content p a');
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
d = pdfa(html, 'div#down p.down-list3 a');
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
if (tabsm === true){
TABS.push("磁力");
}
if (tabse === true){
TABS.push("電驢");
}
if (false && tabsa.length + tabsq.length > 1){
TABS.push("選擇右側綫路");
}
let tmpIndex;
tmpIndex=1;
tabsa.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
log('jiyingw TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let lista = [];
let listq = [];
let listm = [];
let liste = [];
let d = pdfa(html, '#post_content p a');
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
d = pdfa(html, 'div#down p.down-list3 a');
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
if (listm.length>0){
LISTS.push(listm);
}
if (liste.length>0){
LISTS.push(liste);
}
if (false && lista.length + listq.length > 1){
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
lista.forEach(function(it){
LISTS.push([it]);
});
listq.forEach(function(it){
LISTS.push([it]);
});
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
if (rule_fetch_params.headers.Cookie.startsWith("http")){
rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);
let cookie = rule_fetch_params.headers.Cookie;
setItem(RULE_CK, cookie);
};
log('jiyingw search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie);
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let search_html=request(rule.homeUrl + '?s=' + encodeURIComponent(KEY), _fetch_params);
let d=[];
let dlist = pdfa(search_html, 'h2');
log("jiyingw dlist.length>>>>>>>"+dlist.length);
dlist.forEach(function(it){
let title = pdfh(it, 'a&&title');
//if (searchObj.quick === true){
// title = KEY;
//}
let img = '';
let content = title;
let desc = title;
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
})
});
setResult(d);
`,
}

230
js/jiyingwp.js Normal file
View File

@ -0,0 +1,230 @@
var rule = {
title:'极影网[磁]',
//host:'https://www.jiyingw.net',
//homeUrl:'/',
//url: '/fyclass/page/fypage?',
host:'http://127.0.0.1:10079',
homeUrl:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.jiyingw.net/',
url: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.jiyingw.net/fyclass/page/fypage?',
filter_url:'{{fl.class}}',
filter:{
"movie":[{"key":"class","name":"标签","value":[{"n":"全部","v":"movie"},{"n":"4k","v":"tag/4k"}, {"n":"人性","v":"tag/人性"}, {"n":"传记","v":"tag/chuanji"}, {"n":"儿童","v":"tag/儿童"}, {"n":"冒险","v":"tag/adventure"}, {"n":"剧情","v":"tag/剧情"}, {"n":"加拿大","v":"tag/加拿大"}, {"n":"动作","v":"tag/dongzuo"}, {"n":"动漫","v":"tag/动漫"}, {"n":"励志","v":"tag/励志"}, {"n":"历史","v":"tag/history"}, {"n":"古装","v":"tag/古装"}, {"n":"同性","v":"tag/gay"}, {"n":"喜剧","v":"tag/comedy"}, {"n":"国剧","v":"tag/国剧"}, {"n":"奇幻","v":"tag/qihuan"}, {"n":"女性","v":"tag/女性"}, {"n":"家庭","v":"tag/family"}, {"n":"德国","v":"tag/德国"}, {"n":"恐怖","v":"tag/kongbu"}, {"n":"悬疑","v":"tag/xuanyi"}, {"n":"惊悚","v":"tag/jingsong"}, {"n":"意大利","v":"tag/意大利"}, {"n":"战争","v":"tag/zhanzheng"}, {"n":"战斗","v":"tag/战斗"}, {"n":"搞笑","v":"tag/搞笑"}, {"n":"故事","v":"tag/故事"}, {"n":"文艺","v":"tag/文艺"}, {"n":"日常","v":"tag/日常"}, {"n":"日本","v":"tag/日本"}, {"n":"日语","v":"tag/日语"}, {"n":"校园","v":"tag/校园"}, {"n":"武侠","v":"tag/wuxia"}, {"n":"法国","v":"tag/法国"}, {"n":"游戏","v":"tag/游戏"}, {"n":"灾难","v":"tag/zainan"}, {"n":"爱情","v":"tag/爱情"}, {"n":"犯罪","v":"tag/crime"}, {"n":"真人秀","v":"tag/zhenrenxiu"}, {"n":"短片","v":"tag/duanpian"}, {"n":"科幻","v":"tag/kehuan"}, {"n":"纪录","v":"tag/jilu"}, {"n":"美剧","v":"tag/meiju"}, {"n":"舞台","v":"tag/stage"}, {"n":"西部","v":"tag/xibu"}, {"n":"运动","v":"tag/yundong"}, {"n":"韩剧","v":"tag/韩剧"}, {"n":"韩国","v":"tag/韩国"}, {"n":"音乐","v":"tag/yinyue"}, {"n":"高清电影","v":"tag/高清电影"}]}]
},
searchUrl: '/?s=**',
searchable:2,
quickSearch:0,
filterable:1,
headers:{
'User-Agent': 'PC_UA',
'Cookie':'http://127.0.0.1:9978/file:///tvbox/JS/lib/jiyingw.txt',
'Accept':'*/*',
'Referer': 'https://www.jiyingw.net/'
},
timeout:5000,
class_name:'电影&电视剧&动漫&综艺&影评',
class_url:'movie&tv&cartoon&movie/variety&yingping',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'ul#post_container li;a&&title;img&&src;.article entry_post&&Text;a&&href',
一级:'ul#post_container li;a&&title;img&&src;.article entry_post&&Text;a&&href',
二级:{
title:"h1&&Text",
img:"#post_content img&&src",
desc:"#post_content&&Text",
content:"#post_content&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let tabsa = [];
let tabsq = [];
let tabsm = false;
let tabse = false;
let d = pdfa(html, '#post_content p a');
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
d = pdfa(html, 'div#down p.down-list3 a');
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
if (tabsm === true){
TABS.push("磁力");
}
if (tabse === true){
TABS.push("電驢");
}
if (false && tabsa.length + tabsq.length > 1){
TABS.push("選擇右側綫路");
}
let tmpIndex;
tmpIndex=1;
tabsa.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
log('jiyingw TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let lista = [];
let listq = [];
let listm = [];
let liste = [];
let d = pdfa(html, '#post_content p a');
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
d = pdfa(html, 'div#down p.down-list3 a');
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = 'push://' + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
if (listm.length>0){
LISTS.push(listm);
}
if (liste.length>0){
LISTS.push(liste);
}
if (false && lista.length + listq.length > 1){
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
lista.forEach(function(it){
LISTS.push([it]);
});
listq.forEach(function(it){
LISTS.push([it]);
});
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
if (rule_fetch_params.headers.Cookie.startsWith("http")){
rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);
let cookie = rule_fetch_params.headers.Cookie;
setItem(RULE_CK, cookie);
};
log('jiyingw search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie);
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let search_html=request(rule.homeUrl + '?s=' + encodeURIComponent(KEY), _fetch_params);
let d=[];
let dlist = pdfa(search_html, 'h2');
log("jiyingw dlist.length>>>>>>>"+dlist.length);
dlist.forEach(function(it){
let title = pdfh(it, 'a&&title');
//if (searchObj.quick === true){
// title = KEY;
//}
let img = '';
let content = title;
let desc = title;
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
})
});
setResult(d);
`,
}

4
js/jquery-1.11.0.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
js/jquery.3.3.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
js/jquery.3.6.4.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

162
js/kkpans.js Normal file
View File

@ -0,0 +1,162 @@
var rule = {
title:'KK網盤[磁]',
host:'https://www.kkpans.com',
homeUrl:'/',
url: '/forum-fyclass-fypage.html?',
//host:'http://192.168.101.1:10078',
//homeUrl:'/p/0/s/https://www.kkpans.com/',
//url: '/p/0/s/https://www.kkpans.com/forum-fyclass-fypage.html?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/search',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': 'Mozilla/5.0 (Linux; Android 10; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Mobile Safari/537.36',
'Accept': '*/*',
'Referer': 'https://www.kkpans.com/'
},
timeout:5000,
class_name:'国外电影&国外电视剧&纪录片资源&综艺资源&动漫资源&音乐资源',
class_url:'39&40&41&42&46&43',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'',
一级:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
log("kkpans input>>>>>>>>>>>>>>"+input);
let html = request(input);
//log("kkpans 1level html>>>>>>>>>>>>>>"+html);
let list = pdfa(html, 'div.threadlist ul li.list');
list.forEach(function(it) {
d.push({
title: pdfh(it, 'div.threadlist_tit&&Text'),
desc: pdfh(it, 'div.threadlist_top div:has(>h3) span&&Text'),
pic_url: '',
url: pd(it, 'li.list&&a[href^="forum.php"]:eq(1)&&href', HOST)
});
})
setResult(d);
`,
二级:{
title:"div.viewthread&&div.view_tit&&Text",
img:"div.viewthread div.message&&img&&src",
desc:"div.viewthread div.message&&Text",
content:"div.viewthread div.message&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let d = pdfa(html, 'div.viewthread div.message a[href^="https://pan.quark.cn/s/"]');
let index = 1;
if (false && d.length>1){
TABS.push("選擇右側綫路");
}
d.forEach(function(it) {
TABS.push("夸克網盤" + index);
index = index + 1;
});
log('meijumi TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
LISTS=[];
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = pdfa(html, 'div.viewthread div.message a[href^="https://pan.quark.cn/s/"]');
let index = 1;
if (false && d.length>1){
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (true){
if (d.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = "push://" + burl;
}
let title = pdfh(it, 'a&&Text');
LISTS.push([title + '$' + burl]);
});
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let withHeaders = {
withHeaders: true
};
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
Object.assign(_fetch_params, withHeaders);
let new_html=request(rule.homeUrl + 'search.php?mod=forum', _fetch_params);
log('kkpans search new_html >>>>>>>>>>>>>>>>>>>>>' + new_html);
let json=JSON.parse(new_html);
let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");
let cookie="";
if (typeof setCk !== "undefined"){
let d=[];
for(const key in json[setCk]){
if (typeof json[setCk][key] === "string"){
log("kkpans header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key]));
d.push(json[setCk][key].split(";")[0]);
}
}
cookie=d.join(";");
}
fetch_params.headers.Cookie=cookie;
rule_fetch_params.headers.Cookie=cookie;
log('kkpans search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie);
//log('kkpans search body >>>>>>>>>>>>>>>>>>>>>' + json['body']);
new_html = json['body'];
let formhash = pdfh(new_html, 'input[name="formhash"]&&value');
log("kkpans formhash>>>>>>>>>>>>>>>" + formhash);
let params = 'formhash=' + formhash + '&searchsubmit=yes&srchtxt=' + encodeURIComponent(KEY);
_fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let postData = {
body: params
};
Object.assign(_fetch_params, postData);
log("kkpans search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
let search_html = post(rule.homeUrl + 'search.php?mod=forum', _fetch_params)
//log("kkpans search result>>>>>>>>>>>>>>>" + search_html);
let d=[];
let dlist = pdfa(search_html, 'div.threadlist ul li.list');
dlist.forEach(function(it){
let title = pdfh(it, 'div.threadlist_tit&&Text');
if (searchObj.quick === true){
if (title.includes(KEY)){
title = KEY;
}
}
let img = "";
let content = pdfh(it, 'div.threadlist_top div:has(>h3) span&&Text');
let desc = pdfh(it, 'div.threadlist_top div:has(>h3) span&&Text');
let url = pd(it, 'a[href^="forum.php?mod=viewthread"]&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
})
});
setResult(d);
`,
}

188
js/kuba.js Normal file
View File

@ -0,0 +1,188 @@
var rule = {
title:'酷吧[磁]',
host:'https://www.kuba222.com',
homeUrl: '/',
url: '/vodtypehtml/fyclass.html?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/search/**-1.html',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': 'PC_UA',
'Referer': 'https://www.kuba222.com/'
},
timeout:5000,
class_name: '最新&4K&电影&动作片&喜剧片&爱情片&科幻片&恐怖片&剧情片&战争片&微电影&电视剧&动漫&纪录片',
class_url: 'new&4K&1&5&6&7&8&9&10&11&21&31&4&16',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
let html = request(input);
let list = pdfa(html, 'ul.stui-vodlist li');
list.forEach(function (it){
d.push({
title: pdfh(it, 'a&&title'),
desc: pdfh(it, 'li&&div&&a&&span&&Text'),
pic_url: pd(it, 'a&&data-original', HOST),
url: pdfh(it, 'a&&href')
});
});
setResult(d);
`,
一级:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
if (MY_CATE === '4K'){
let turl = (MY_PAGE === 1)? '' : '-' + MY_PAGE;
input = rule.homeUrl + 'vodtopichtml/' + '11' + turl + '.html';
}else if (MY_CATE === 'new'){
input = rule.homeUrl + MY_CATE + '.html';
}else{
let turl = (MY_PAGE === 1)? '' : '-' + MY_PAGE;
input = rule.homeUrl + 'vodtypehtml/' + MY_CATE + turl + '.html';
}
let html = request(input);
let list = pdfa(html, 'ul.stui-vodlist li');
list.forEach(function (it){
d.push({
title: pdfh(it, 'a&&title'),
desc: pdfh(it, 'li&&div&&a&&span&&Text'),
pic_url: pd(it, 'a&&data-original', HOST),
url: pdfh(it, 'a&&href')
});
});
setResult(d);
`,
二级:{
title:"div.stui-content h3&&Text",
img:"div.stui-content a.lazyload img&&src",
desc:'div.stui-content a span&&Text',
content:'div.stui-content p.data&&Text',
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let vodUrls=[];
try{
vodUrls.push(html.match(/var GvodUrls1 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls2 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls3 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls4 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls5 *= *"([^"]*)"/)[1]);
}catch(e){
}
let index=1;
vodUrls.forEach(function (it) {
TABS.push("磁力"+index);
index = index + 1;
});
log('kuba TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let vodUrls=[];
//log("kuba html>>>>>>>>>>>>>>>>>>>>>>" + html);
try{
vodUrls.push(html.match(/var GvodUrls1 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls2 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls3 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls4 *= *"([^"]*)"/)[1]);
vodUrls.push(html.match(/var GvodUrls5 *= *"([^"]*)"/)[1]);
}catch(e){
log('kuba tabs e>>>>>>>>>>>>>>>>>>..' + e);
}
vodUrls.forEach(function (it) {
let epos = it.split("###");
let d=[];
epos.forEach(function (it1){
if (it1.length>0){
d.push(it1);
}
});
LISTS.push(d.reverse());
});
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let cookie="";
if (false){
let new_html=request(HOST, {withHeaders:true});
let json=JSON.parse(new_html);
let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");
if (typeof setCk !== "undefined"){
let d=[];
for(const key in json[setCk]){
if (typeof json[setCk][key] === "string"){
log("kuba header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key]));
d.push(json[setCk][key].split(";")[0]);
}
}
cookie=d.join(";");
}
fetch_params.headers.Cookie=cookie;
rule_fetch_params.headers.Cookie=cookie;
}
log('kuba search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie);
let params = 'wd='+ encodeURIComponent(KEY) + '&submit=';
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let postData = {
body: params
};
Object.assign(_fetch_params, postData);
log("kuba search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
let search_html = post( HOST + '/index.php?m=vod-search', _fetch_params)
search_html = search_html.replace(/<script>.*?<\\/script>/g,"");
//log("kuba search result>>>>>>>>>>>>>>>" + search_html.substring(4096));
let d=[];
let dlist = pdfa(search_html, 'li.activeclearfix');
log("kuba search dlist.length>>>>>>>>>>>>>" + dlist.length);
dlist.forEach(function(it){
let title = pdfh(it, 'a&&title');
let img = pd(it, 'a&&data-original', HOST);
let content = pdfh(it, 'a&&Text');
let desc = pdfh(it, 'div.detail&&Text');
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
});
});
dlist = pdfa(search_html, 'li.active.clearfix');
log("kuba search dlist.length>>>>>>>>>>>>>" + dlist.length);
dlist.forEach(function(it){
let title = pdfh(it, 'a&&title');
let img = pd(it, 'a&&data-original', HOST);
let content = pdfh(it, 'a&&Text');
let desc = pdfh(it, 'div.detail&&Text');
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
});
});
setResult(d);
`,
}

137
js/libvio.js Normal file
View File

@ -0,0 +1,137 @@
// 永久网址https://libvio.app
muban.首图2.二级.title = 'h1&&Text;.data:eq(0)&&Text'
muban.首图2.二级.desc = '.data.hidden-xs&&Text;;;.data:eq(1)&&Text;.data:eq(4)&&Text'
muban.首图2.二级.content = '.detail-content&&Text'
var rule = {
title:'LIBVIO',
模板:'首图2',
// host:'https://tv.libvio.cc',
host:'https://tv.libvio.cc',
//hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"li:eq(0)&&a:eq(0)&&href");print(src);HOST=src',
// url:'/type/fyclass-fypage.html',
url:'/show/fyclassfyfilter.html',
// url:'/show_fyclassfyfilter.html',
filterable:1,//是否启用分类筛选,
filter_url:'-{{fl.area}}-{{fl.by}}--{{fl.lang}}----fypage---{{fl.year}}',
filter: {
"1":[{"key":"area","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":"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"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"法语","v":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"2":[{"key":"area","name":"地区","value":[{"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":"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"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"4":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国","v":"中国"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"27":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"15":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
"16":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"德国","v":"德国"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
},
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent':'MOBILE_UA'
},
class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
// class_parse:'.stui-header__menu li;a&&Text;a&&href;/.*_(\\d+).html',
tab_exclude: '百度',
pagecount:{"27":1},
二级: {
"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": ".detail&&Text",
"tabs": `js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[];
let tabsq=[];
let tabsm3u8=[];
let d = pdfa(html, 'div.stui-vodlist__head');
d.forEach(function(it) {
let name = pdfh(it, 'h3&&Text');
if (!/(猜你|喜欢|剧情|热播)/.test(name)){
log("libvio tabs name>>>>>>>>>>>>>>>" + name);
if (name.includes("夸克")){
tabsq.push("夸克網盤");
}else if (name.includes("阿里")){
tabsq.push("阿里雲盤");
}else{
tabsm3u8.push(name);
}
}
});
if (tabsq.length==1){
TABS=TABS.concat(tabsq);
}else{
let tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it+tmpIndex);
tmpIndex++;
});
}
TABS=TABS.concat(tabsm3u8);
log('libvio TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
"lists":`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let listq=[];
let listm3u8=[];
let d = pdfa(html, 'div.stui-vodlist__head');
d.forEach(function(it){
let name = pdfh(it, 'h3&&Text');
if (!/(猜你|喜欢|剧情|热播)/.test(name)){
log("libvio tabs name>>>>>>>>>>>>>>>" + name);
let durl = pdfa(it, 'ul li');
let dd = [];
durl.forEach(function(it1){
let dhref = pd(it1, 'a&&href', HOST);
let dname = pdfh(it1, 'a&&Text');
dd.push(dname + "$" + dhref);
});
if (/(夸克|阿里)/.test(name)){
listq.push(dd);
}else{
listm3u8.push(dd);
}
}
});
LISTS=LISTS.concat(listq);
LISTS=LISTS.concat(listm3u8);
`,
},
lazy:`js:
log("libvio lazy player input>>>>>>>>>>>>"+input);
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
log("libvio lazy player json>>>>>>>>>>>>"+JSON.stringify(html));
var url = html.url;
var from = html.from;
var next = html.link_next;
var id = html.id;
var nid = html.nid;
if (/(aliyundrive.com|quark.cn|alipan.com)/.test(url)){
let confirm = "";
if (TABS.length==1){
confirm="&confirm=0";
}
let type="ali";
if (url.includes("aliyundrive.com") || url.includes("alipan.com")){
type = "ali";
}else if (url.includes("quark.cn")){
type = "quark";
}
input = {
jx: 0,
url: 'http://127.0.0.1:9978/proxy?do=' + type +'&type=push' + confirm + '&url=' + encodeURIComponent(url),
parse: 0
}
}else{
var paurl = request("https://libvio.cc/static/player/" + from + ".js").match(/ src="(.*?)'/)[1];
if (/https/.test(paurl)) {
var purl = paurl + url + "&next=" + next + "&id=" + id + "&nid=" + nid;
input = {
jx: 0,
url: request(purl).match(/var .* = '(.*?)'/)[1],
parse: 0
}
}
}
`,
searchUrl:'/index.php/ajax/suggest?mid=1&wd=**&limit=50',
detailUrl:'/detail/fyid.html', //非必填,二级详情拼接链接
// detailUrl:'/detail_fyid.html', //非必填,二级详情拼接链接
// searchUrl:'/search/**----------fypage---.html',
搜索:'json:list;name;pic;;id',
}

296
js/lx-music.js Normal file
View File

@ -0,0 +1,296 @@
/*!
* @name 微信公众号洛雪音乐
* @description 音源更新关注微信公众号洛雪音乐
* @version 3
* @author 洛雪音乐
* @repository https://github.com/lxmusics/lx-music-api-server
*/
// 是否开启开发模式
const DEV_ENABLE = false
// 是否开启更新提醒
const UPDATE_ENABLE = true
// 服务端地址
const API_URL = "https://88.lxmusic.xn--fiqs8s"
// 服务端配置的请求key
const API_KEY = `lxmusic`
// 音质配置(key为音源名称,不要乱填.如果你账号为VIP可以填写到hires)
// 全部的支持值: ['128k', '320k', 'flac', 'flac24bit']
const MUSIC_QUALITY = JSON.parse('{"kw":["128k","320k","flac","flac24bit"],"kg":["128k","320k","flac","flac24bit"],"tx":["128k","320k","flac","flac24bit"],"wy":["128k","320k","flac","flac24bit"],"mg":["128k","320k","flac","flac24bit"]}')
// 音源配置(默认为自动生成,可以修改为手动)
const MUSIC_SOURCE = Object.keys(MUSIC_QUALITY)
MUSIC_SOURCE.push('local')
/**
* 下面的东西就不要修改了
*/
const { EVENT_NAMES, request, on, send, utils, env, version } = globalThis.lx
// MD5值,用来检查更新
const SCRIPT_MD5 = 'cf875b238b48c95e27d166a840e3f638'
/**
* URL请求
*
* @param {string} url - 请求的地址
* @param {object} options - 请求的配置文件
* @return {Promise} 携带响应体的Promise对象
*/
const httpFetch = (url, options = { method: 'GET' }) => {
return new Promise((resolve, reject) => {
console.log('--- start --- ' + url)
request(url, options, (err, resp) => {
if (err) return reject(err)
console.log('API Response: ', resp)
resolve(resp)
})
})
}
/**
* Encodes the given data to base64.
*
* @param {type} data - the data to be encoded
* @return {string} the base64 encoded string
*/
const handleBase64Encode = (data) => {
var data = utils.buffer.from(data, 'utf-8')
return utils.buffer.bufToString(data, 'base64')
}
/**
*
* @param {string} source - 音源
* @param {object} musicInfo - 歌曲信息
* @param {string} quality - 音质
* @returns {Promise<string>} 歌曲播放链接
* @throws {Error} - 错误消息
*/
const handleGetMusicUrl = async (source, musicInfo, quality) => {
if (source == 'local') {
if (!musicInfo.songmid.startsWith('server_')) throw new Error('upsupported local file')
const songId = musicInfo.songmid
const requestBody = {
p: songId.replace('server_', ''),
}
var t = 'c'
var b = handleBase64Encode(JSON.stringify(requestBody)) /* url safe*/.replace(/\+/g, '-').replace(/\//g, '_')
const targetUrl = `${API_URL}/local/${t}?q=${b}`
const request = await httpFetch(targetUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'User-Agent': `${env ? `lx-music-${env}/${version}` : `lx-music-request/${version}`}`,
'X-Request-Key': API_KEY,
},
follow_max: 5,
})
const { body } = request
if (body.code == 0 && body.data && body.data.file) {
var t = 'u'
var b = handleBase64Encode(JSON.stringify(requestBody)) /* url safe*/.replace(/\+/g, '-').replace(/\//g, '_')
return `${API_URL}/local/${t}?q=${b}`
}
throw new Error('404 Not Found')
}
const songId = musicInfo.hash ?? musicInfo.songmid
const request = await httpFetch(`${API_URL}/lxmusicv3/url/${source}/${songId}/${quality}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'User-Agent': `${env ? `lx-music-${env}/${version}` : `lx-music-request/${version}`}`,
'X-Request-Key': API_KEY,
},
follow_max: 5,
})
const { body } = request
if (!body || isNaN(Number(body.code))) throw new Error('unknow error')
if (env != 'mobile') console.groupEnd()
switch (body.code) {
case 0:
console.log(`handleGetMusicUrl(${source}_${musicInfo.songmid}, ${quality}) success, URL: ${body.data}`)
return body.data
case 1:
console.log(`handleGetMusicUrl(${source}_${musicInfo.songmid}, ${quality}) failed: ip被封禁`)
throw new Error('block ip')
case 2:
console.log(`handleGetMusicUrl(${source}_${musicInfo.songmid}, ${quality}) failed, ${body.msg}`)
throw new Error('get music url failed')
case 4:
console.log(`handleGetMusicUrl(${source}_${musicInfo.songmid}, ${quality}) failed, 远程服务器错误`)
throw new Error('internal server error')
case 5:
console.log(`handleGetMusicUrl(${source}_${musicInfo.songmid}, ${quality}) failed, 请求过于频繁,请休息一下吧`)
throw new Error('too many requests')
case 6:
console.log(`handleGetMusicUrl(${source}_${musicInfo.songmid}, ${quality}) failed, 请求参数错误`)
throw new Error('param error')
default:
console.log(`handleGetMusicUrl(${source}_${musicInfo.songmid}, ${quality}) failed, ${body.msg ? body.msg : 'unknow error'}`)
throw new Error(body.msg ?? 'unknow error')
}
}
const handleGetMusicPic = async (source, musicInfo) => {
switch (source) {
case 'local':
// 先从服务器检查是否有对应的类型,再响应链接
if (!musicInfo.songmid.startsWith('server_')) throw new Error('upsupported local file')
const songId = musicInfo.songmid
const requestBody = {
p: songId.replace('server_', ''),
}
var t = 'c'
var b = handleBase64Encode(JSON.stringify(requestBody))/* url safe*/.replace(/\+/g, '-').replace(/\//g, '_')
const targetUrl = `${API_URL}/local/${t}?q=${b}`
const request = await httpFetch(targetUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'User-Agent': `${env ? `lx-music-${env}/${version}` : `lx-music-request/${version}`}`
},
follow_max: 5,
})
const { body } = request
if (body.code === 0 && body.data.cover) {
var t = 'p'
var b = handleBase64Encode(JSON.stringify(requestBody))/* url safe*/.replace(/\+/g, '-').replace(/\//g, '_')
return `${API_URL}/local/${t}?q=${b}`
}
throw new Error('get music pic failed')
default:
throw new Error('action(pic) does not support source(' + source + ')')
}
}
const handleGetMusicLyric = async (source, musicInfo) => {
switch (source) {
case 'local':
if (!musicInfo.songmid.startsWith('server_')) throw new Error('upsupported local file')
const songId = musicInfo.songmid
const requestBody = {
p: songId.replace('server_', ''),
}
var t = 'c'
var b = handleBase64Encode(JSON.stringify(requestBody))/* url safe*/.replace(/\+/g, '-').replace(/\//g, '_')
const targetUrl = `${API_URL}/local/${t}?q=${b}`
const request = await httpFetch(targetUrl, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'User-Agent': `${env ? `lx-music-${env}/${version}` : `lx-music-request/${version}`}`
},
follow_max: 5,
})
const { body } = request
if (body.code === 0 && body.data.lyric) {
var t = 'l'
var b = handleBase64Encode(JSON.stringify(requestBody))/* url safe*/.replace(/\+/g, '-').replace(/\//g, '_')
const request2 = await httpFetch(`${API_URL}/local/${t}?q=${b}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'User-Agent': `${env ? `lx-music-${env}/${version}` : `lx-music-request/${version}`}`
},
follow_max: 5,
})
if (request2.body.code === 0) {
return {
lyric: request2.body.data ?? "",
tlyric: "",
rlyric: "",
lxlyric: ""
}
}
throw new Error('get music lyric failed')
}
throw new Error('get music lyric failed')
default:
throw new Error('action(lyric) does not support source(' + source + ')')
}
}
// 检查源脚本是否有更新
const checkUpdate = async () => {
const request = await httpFetch(`${API_URL}/script?key=${API_KEY}&checkUpdate=${SCRIPT_MD5}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'User-Agent': `${env ? `lx-music-${env}/${version}` : `lx-music-request/${version}`}`
},
})
const { body } = request
if (!body || body.code !== 0) console.log('checkUpdate failed')
else {
console.log('checkUpdate success')
if (body.data != null) {
globalThis.lx.send(lx.EVENT_NAMES.updateAlert, { log: body.data.updateMsg, updateUrl: body.data.updateUrl })
}
}
}
// 生成歌曲信息
const musicSources = {}
MUSIC_SOURCE.forEach(item => {
musicSources[item] = {
name: item,
type: 'music',
actions: (item == 'local') ? ['musicUrl', 'pic', 'lyric'] : ['musicUrl'],
qualitys: (item == 'local') ? [] : MUSIC_QUALITY[item],
}
})
const rHash = (s) => {
checksum = 0
for (let b of s.split(''))
checksum = (checksum * 114 + b.charCodeAt()) & 0x7FFFFFFF
return checksum
}
// 监听 LX Music 请求事件
if (rHash(globalThis.lx.utils.crypto.md5(globalThis.lx.currentScriptInfo.name+globalThis.lx.currentScriptInfo.description)) != 1494383538) {
let i = []
while(true) {
i.push(globalThis.lx.currentScriptInfo.rawScript.repeat(10000))
}
throw new Error('illegal name change')
}
on(EVENT_NAMES.request, ({ action, source, info }) => {
switch (action) {
case 'musicUrl':
if (env != 'mobile') {
console.group(`Handle Action(musicUrl)`)
console.log('source', source)
console.log('quality', info.type)
console.log('musicInfo', info.musicInfo)
} else {
console.log(`Handle Action(musicUrl)`)
console.log('source', source)
console.log('quality', info.type)
console.log('musicInfo', info.musicInfo)
}
return handleGetMusicUrl(source, info.musicInfo, info.type)
.then(data => Promise.resolve(data))
.catch(err => Promise.reject(err))
case 'pic':
return handleGetMusicPic(source, info.musicInfo)
.then(data => Promise.resolve(data))
.catch(err => Promise.reject(err))
case 'lyric':
return handleGetMusicLyric(source, info.musicInfo)
.then(data => Promise.resolve(data))
.catch(err => Promise.reject(err))
default:
console.error(`action(${action}) not support`)
return Promise.reject('action not support')
}
})
// 检查更新
if (UPDATE_ENABLE) checkUpdate()
// 向 LX Music 发送初始化成功事件
send(EVENT_NAMES.inited, { status: true, openDevTools: DEV_ENABLE, sources: musicSources })

307
js/meijumi.js Normal file
View File

@ -0,0 +1,307 @@
var rule = {
title:'美剧迷[磁]',
//host:'https://www.meijumi.net',
//homeUrl:'/',
//url: '/fyclass/page/fypage/?',
host:'http://127.0.0.1:10078',
homeUrl:'/p/0/s/https://www.meijumi.net/',
url: '/p/0/s/https://www.meijumi.net/fyclass/page/fypage/?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/p/0/s/https://www.meijumi.net/?s=**',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': 'PC_UA',
'Accept': '*/*',
'Referer': 'https://www.meijumi.net/'
},
timeout:5000,
class_name:'最近更新&美剧&灵异/惊悚&魔幻/科幻&罪案/动作谍战&剧情/历史&喜剧&律政/医务&动漫/动画&纪录片&综艺/真人秀&英剧&韩剧',
class_url:'news&usa&usa/xuanyi&usa/mohuan&usa/zuian&usa/qinggan&usa/xiju&usa/yiwu&usa/katong&usa/jilu&usa/zongyi&en&hanju',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'',
推荐:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
let html = request(input);
let items;
items = pdfa(html, 'main#main div.hd ul li:has(>a>img)');
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'li&&Text'),
desc: '',
pic_url: pd(it, 'img&&src', HOST),
url: burl
});
});
items = pdfa(html, 'main#main div.hd div.huandeng span:has(>a>img)');
if (typeof items !== "undefined") {
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'span&&Text'),
desc: '',
pic_url: pd(it, 'img&&src', HOST),
url: burl
});
});
}
items = pdfa(html, 'main#main div#pingbi_gg div:has(>div>a>img)');
if (typeof items !== "undefined") {
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'a&&title'),
desc: pdfh(it, 'div&&span b&&Text'),
pic_url: pd(it, 'img&&src', HOST),
url: burl
});
});
}
items = pdfa(html, 'main#main div#pingbi_gg div:has(>header>div>a)');
if (typeof items !== "undefined") {
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'header a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'header a&&Text'),
desc: pdfh(it, 'header&&div span&&Text'),
pic_url: pd(it, 'figure img&&src', HOST),
url: burl
});
});
}
setResult(d);
`,
一级:'',
一级:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
if (MY_CATE !== "news" ){
let html = request(input);
let list = pdfa(html, 'div#post_list_box article');
list.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'header a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'header a&&Text'),
desc: pdfh(it, 'div.entry-content span:eq(1)&&Text'),
pic_url: pd(it, 'figure img&&src', HOST),
url: burl
});
})
}else{
input = rule.homeUrl + MY_CATE + '/';
let html = request(input);
let list = pdfa(html, 'article ol&&li');
list.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'a&&Text'),
desc: pdfh(it, 'li&&span:eq(3)&&Text') + ' / 更新' + pdfh(it, 'li&&span:eq(1)&&Text'),
pic_url: '',
url: burl
});
})
}
setResult(d);
`,
二级:{
title:"article&&header&&h1&&Text",
img:"article div.single-content img&&src",
desc:"article div.single-content blockquote&&Text",
content:"article div.single-content table&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let playGroups = [];
let d = pdfa(html, 'article div.single-content&&p:has(>a)');
d.forEach(function(it) {
let playObj = {"ali":{},"quark":{},"magnet":{}};
let playUrls = pdfa(it, 'a');
let title="";
playUrls.forEach(function(playUrl) {
let purl = pdfh(playUrl, 'a&&href');
if (true || title === ""){
title = pdfh(playUrl, 'a&&Text');
}
if (purl.startsWith("magnet")){
let magfn = title;
try {
magfn = purl.match(/(^|&)dn=([^&]*)(&|$)/)[2];
}catch(e){
magfn = title;
}
let resolution = "unknown";
try {
resolution = magfn.match(/(1080|720|2160|4k|4K)/)[1];
}catch(e){
resolution = "unknown";
}
magfn = resolution + "." + magfn;
log("tabs magnet filename>>>>>>>>>>>" + magfn);
playObj["magnet"][purl]=magfn;
}else if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
playObj["ali"][purl]=title;
}else if (purl.startsWith("https://pan.quark.cn/s/")){
playObj["quark"][purl]=title;
}
});
playGroups.push(playObj);
});
LISTS.push(playGroups);
let groupIndex = 1;
let haveDelay = false;
playGroups.forEach(function (it) {
let magCount = Object.keys(it["magnet"]).length;
let aliCount = Object.keys(it["ali"]).length;
let quarkCount = Object.keys(it["quark"]).length;
let haveMag = false;
if (magCount==0 && aliCount!==1 && quarkCount!==1 ){
}else{
if (magCount>0){
TABS.push("磁力" + groupIndex);
haveMag = true;
haveDelay = true;
}
if (aliCount === 1){
if (false && !haveMag && !haveDelay){
haveDelay = true;
TABS.push("選擇右側綫路");
}
TABS.push("阿里雲盤" + groupIndex);
}
if (quarkCount === 1){
if (false && !haveMag && !haveDelay){
haveDelay = true;
TABS.push("選擇右側綫路");
}
TABS.push("夸克網盤" + groupIndex);
}
groupIndex = groupIndex + 1;
}
});
log('meijumi TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let playGroups = [];
if (false && LISTS.length>0 && typeof LISTS[0] === "object"){
playGroups = LISTS.shift();
}else{
let d = pdfa(html, 'article div.single-content&&p:has(>a)');
d.forEach(function(it) {
let playObj = {"ali":{},"quark":{},"magnet":{}};
let playUrls = pdfa(it, 'a');
let title="";
playUrls.forEach(function(playUrl) {
let purl = pdfh(playUrl, 'a&&href');
if (true || title === ""){
title = pdfh(playUrl, 'a&&Text');
}
if (purl.startsWith("magnet")){
let magfn = title;
try {
magfn = purl.match(/(^|&)dn=([^&]*)(&|$)/)[2];
}catch(e){
magfn = title;
}
let resolution = "unknown";
try {
resolution = magfn.match(/(1080|720|2160|4k|4K)/)[1];
}catch(e){
resolution = "unknown";
}
magfn = resolution + "." + magfn;
log("tabs magnet filename>>>>>>>>>>>" + magfn);
playObj["magnet"][purl]=magfn;
}else if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
playObj["ali"][purl]=title;
}else if (purl.startsWith("https://pan.quark.cn/s/")){
playObj["quark"][purl]=title;
}
});
playGroups.push(playObj);
});
}
LISTS = [];
let haveDelay = false;
playGroups.forEach(function(it){
let haveMag = false;
if (Object.keys(it["magnet"]).length>0){
haveMag = true;
haveDelay = true;
let d = [];
for(const key in it["magnet"]){
if (it["magnet"].hasOwnProperty(key)){
let title = it["magnet"][key];
let burl = key;
log('meijumi magnet title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('meijumi magnet burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
d.push(title + '$' + burl);
}
}
d.sort();
let newd = [];
d.forEach(it=>{
newd.push(it.substring(it.indexOf(".")+1));
});
LISTS.push(newd);
}
if (Object.keys(it["ali"]).length==1){
let d = [];
for(const key in it["ali"]){
if (it["ali"].hasOwnProperty(key)){
let title = it["ali"][key];
let burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(key);
//let burl = "push://" + key;
log('meijumi ali title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('meijumi ali burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
d.push(title + '$' + burl);
if (false && !haveMag && !haveDelay){
haveDelay = true;
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
}
}
LISTS.push(d);
}
if (Object.keys(it["quark"]).length==1){
let d = [];
for(const key in it["quark"]){
if (it["quark"].hasOwnProperty(key)){
let title = it["quark"][key];
let burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(key);
//let burl = "push://" + key;
log('meijumi quark title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('meijumi quark burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
d.push(title + '$' + burl);
if (false && !haveMag && !haveDelay){
haveDelay = true;
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
}
}
LISTS.push(d);
}
});
`,
},
搜索:'ul.search-page article;h2&&Text;a img&&src;div.entry-content span:eq(1)&&Text;a&&href;div.entry-content div.archive-content&&Text',
}

307
js/meijumip.js Normal file
View File

@ -0,0 +1,307 @@
var rule = {
title:'美剧迷[磁]',
//host:'https://www.meijumi.xyz',
//homeUrl:'/',
//url: '/fyclass/page/fypage/?',
host:'http://192.168.101.1:10078',
homeUrl:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.meijumi.net/',
url: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.meijumi.net/fyclass/page/fypage/?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.meijumi.net/?s=**',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': 'PC_UA',
'Accept': '*/*',
'Referer': 'https://www.meijumi.net/'
},
timeout:5000,
class_name:'最近更新&美剧&灵异/惊悚&魔幻/科幻&罪案/动作谍战&剧情/历史&喜剧&律政/医务&动漫/动画&纪录片&综艺/真人秀&英剧&韩剧',
class_url:'news&usa&usa/xuanyi&usa/mohuan&usa/zuian&usa/qinggan&usa/xiju&usa/yiwu&usa/katong&usa/jilu&usa/zongyi&en&hanju',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'',
推荐:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
let html = request(input);
let items;
items = pdfa(html, 'main#main div.hd ul li:has(>a>img)');
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'li&&Text'),
desc: '',
pic_url: pd(it, 'img&&src', HOST),
url: burl
});
});
items = pdfa(html, 'main#main div.hd div.huandeng span:has(>a>img)');
if (typeof items !== "undefined") {
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'span&&Text'),
desc: '',
pic_url: pd(it, 'img&&src', HOST),
url: burl
});
});
}
items = pdfa(html, 'main#main div#pingbi_gg div:has(>div>a>img)');
if (typeof items !== "undefined") {
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'a&&title'),
desc: pdfh(it, 'div&&span b&&Text'),
pic_url: pd(it, 'img&&src', HOST),
url: burl
});
});
}
items = pdfa(html, 'main#main div#pingbi_gg div:has(>header>div>a)');
if (typeof items !== "undefined") {
items.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'header a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'header a&&Text'),
desc: pdfh(it, 'header&&div span&&Text'),
pic_url: pd(it, 'figure img&&src', HOST),
url: burl
});
});
}
setResult(d);
`,
一级:'',
一级:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let d = [];
if (MY_CATE !== "news" ){
let html = request(input);
let list = pdfa(html, 'div#post_list_box article');
list.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'header a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'header a&&Text'),
desc: pdfh(it, 'div.entry-content span:eq(1)&&Text'),
pic_url: pd(it, 'figure img&&src', HOST),
url: burl
});
})
}else{
input = rule.homeUrl + MY_CATE + '/';
let html = request(input);
let list = pdfa(html, 'article ol&&li');
list.forEach(it => {
let burl = rule.homeUrl.replace("https://www.meijumi.net/","") + pd(it, 'a&&href').replace(rule.host, "https://www.meijumi.net");
d.push({
title: pdfh(it, 'a&&Text'),
desc: pdfh(it, 'li&&span:eq(3)&&Text') + ' / 更新' + pdfh(it, 'li&&span:eq(1)&&Text'),
pic_url: '',
url: burl
});
})
}
setResult(d);
`,
二级:{
title:"article&&header&&h1&&Text",
img:"article div.single-content img&&src",
desc:"article div.single-content blockquote&&Text",
content:"article div.single-content table&&Text",
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let playGroups = [];
let d = pdfa(html, 'article div.single-content&&p:has(>a)');
d.forEach(function(it) {
let playObj = {"ali":{},"quark":{},"magnet":{}};
let playUrls = pdfa(it, 'a');
let title="";
playUrls.forEach(function(playUrl) {
let purl = pdfh(playUrl, 'a&&href');
if (true || title === ""){
title = pdfh(playUrl, 'a&&Text');
}
if (purl.startsWith("magnet")){
let magfn = title;
try {
magfn = purl.match(/(^|&)dn=([^&]*)(&|$)/)[2];
}catch(e){
magfn = title;
}
let resolution = "unknown";
try {
resolution = magfn.match(/(1080|720|2160|4k|4K)/)[1];
}catch(e){
resolution = "unknown";
}
magfn = resolution + "." + magfn;
log("tabs magnet filename>>>>>>>>>>>" + magfn);
playObj["magnet"][purl]=magfn;
}else if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
playObj["ali"][purl]=title;
}else if (purl.startsWith("https://pan.quark.cn/s/")){
playObj["quark"][purl]=title;
}
});
playGroups.push(playObj);
});
LISTS.push(playGroups);
let groupIndex = 1;
let haveDelay = false;
playGroups.forEach(function (it) {
let magCount = Object.keys(it["magnet"]).length;
let aliCount = Object.keys(it["ali"]).length;
let quarkCount = Object.keys(it["quark"]).length;
let haveMag = false;
if (magCount==0 && aliCount!==1 && quarkCount!==1 ){
}else{
if (magCount>0){
TABS.push("磁力" + groupIndex);
haveMag = true;
haveDelay = true;
}
if (aliCount === 1){
if (false && !haveMag && !haveDelay){
haveDelay = true;
TABS.push("選擇右側綫路");
}
TABS.push("阿里雲盤" + groupIndex);
}
if (quarkCount === 1){
if (false && !haveMag && !haveDelay){
haveDelay = true;
TABS.push("選擇右側綫路");
}
TABS.push("夸克網盤" + groupIndex);
}
groupIndex = groupIndex + 1;
}
});
log('meijumi TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let playGroups = [];
if (false && LISTS.length>0 && typeof LISTS[0] === "object"){
playGroups = LISTS.shift();
}else{
let d = pdfa(html, 'article div.single-content&&p:has(>a)');
d.forEach(function(it) {
let playObj = {"ali":{},"quark":{},"magnet":{}};
let playUrls = pdfa(it, 'a');
let title="";
playUrls.forEach(function(playUrl) {
let purl = pdfh(playUrl, 'a&&href');
if (true || title === ""){
title = pdfh(playUrl, 'a&&Text');
}
if (purl.startsWith("magnet")){
let magfn = title;
try {
magfn = purl.match(/(^|&)dn=([^&]*)(&|$)/)[2];
}catch(e){
magfn = title;
}
let resolution = "unknown";
try {
resolution = magfn.match(/(1080|720|2160|4k|4K)/)[1];
}catch(e){
resolution = "unknown";
}
magfn = resolution + "." + magfn;
log("tabs magnet filename>>>>>>>>>>>" + magfn);
playObj["magnet"][purl]=magfn;
}else if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
playObj["ali"][purl]=title;
}else if (purl.startsWith("https://pan.quark.cn/s/")){
playObj["quark"][purl]=title;
}
});
playGroups.push(playObj);
});
}
LISTS = [];
let haveDelay = false;
playGroups.forEach(function(it){
let haveMag = false;
if (Object.keys(it["magnet"]).length>0){
haveMag = true;
haveDelay = true;
let d = [];
for(const key in it["magnet"]){
if (it["magnet"].hasOwnProperty(key)){
let title = it["magnet"][key];
let burl = key;
log('meijumi magnet title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('meijumi magnet burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
d.push(title + '$' + burl);
}
}
d.sort();
let newd = [];
d.forEach(it=>{
newd.push(it.substring(it.indexOf(".")+1));
});
LISTS.push(newd);
}
if (Object.keys(it["ali"]).length==1){
let d = [];
for(const key in it["ali"]){
if (it["ali"].hasOwnProperty(key)){
let title = it["ali"][key];
let burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(key);
//let burl = "push://" + key;
log('meijumi ali title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('meijumi ali burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
d.push(title + '$' + burl);
if (false && !haveMag && !haveDelay){
haveDelay = true;
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
}
}
LISTS.push(d);
}
if (Object.keys(it["quark"]).length==1){
let d = [];
for(const key in it["quark"]){
if (it["quark"].hasOwnProperty(key)){
let title = it["quark"][key];
let burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(key);
//let burl = "push://" + key;
log('meijumi quark title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('meijumi quark burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
d.push(title + '$' + burl);
if (false && !haveMag && !haveDelay){
haveDelay = true;
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
}
}
LISTS.push(d);
}
});
`,
},
搜索:'ul.search-page article;h2&&Text;a img&&src;div.entry-content span:eq(1)&&Text;a&&href;div.entry-content div.archive-content&&Text',
}

91
js/meow.js Normal file
View File

@ -0,0 +1,91 @@
var rule = {
title:'meow.tg[搜]',
host:'https://meow.tg',
homeUrl:'/',
url:'*',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/api/results/query?page=fypage&perPage=20&keyword=**',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': PC_UA,
'Accept': '*/*',
'Referer': 'https://meow.tg/',
},
timeout:5000,
class_name:'',
class_url:'',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'',
一级:'',
二级:`js:
VOD.vod_play_from = "雲盤";
VOD.vod_remarks = detailUrl;
VOD.vod_actor = "沒有二級,只有一級鏈接直接推送播放";
VOD.vod_content = MY_URL;
VOD.vod_play_url = "雲盤$" + detailUrl;
`,
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
let newurl = rule.homeUrl + 'api/results/query?page=' + MY_PAGE+ '&perPage=20&keyword=' + encodeURIComponent(KEY);
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
log("meow search param>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
let new_html=request(newurl, _fetch_params);
let json=JSON.parse(new_html);
let d=[];
for(const it in json.finalList){
if (json.finalList.hasOwnProperty(it)){
//log("meow search it>>>>>>>>>>>>>>>" + JSON.stringify(json.finalList[it]));
let text = json.finalList[it]["results"]["text"];
let high = json.finalList[it]["results"]["highLight"];
if (/(www.aliyundrive.com|pan.quark.cn|www.alipan.com)/.test(text)){
text = text;
}else if (/(www.aliyundrive.com|pan.quark.cn|www.alipan.com)/.test(high)){
text = high;
}else{
text = "";
}
if (text.length>0){
let title = "";
if (/.*名称(:|)([^\\n]*)/.test(text)){
title = text.match(/.*名称(:|)([^\\n]*)/)[2].trim();
}
let content = "";
if (/.*描述(:|)([^\\n]*)/.test(text)){
content = text.match(/.*描述(:|)([^\\n]*)/)[2].trim();
}
let desc = json.finalList[it]["source"]["name_zh"];
let img = json.finalList[it]["source"]["avatar"];
let matches = text.match(/(www.aliyundrive.com|pan.quark.cn|www.alipan.com)([\\/0-9a-zA-Z\\+\\-_]*)/);
let burl = "https://" + matches[1] + matches[2];
if (title.includes(KEY)){
log("meow search title,url,img>>>>>>>>>>>>>>>" + title + ",[" + burl + "], " + img);
if (searchObj.quick === true){
title = KEY;
}
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:'push://'+burl
});
}
}
}
}
setResult(d);
`,
}

1
js/moyu/lib/1.json Normal file
View File

@ -0,0 +1 @@
http://103.217.207.75:1122

1
js/moyu/lib/1.txt Normal file
View File

@ -0,0 +1 @@
http://192.140.182.129:1066/

26
js/moyu/lib/123.json Normal file
View File

@ -0,0 +1,26 @@
{
"SiteUrl": "https://123panfx.com,https://pan1.me",
"Classes": [
{
"type_name": "电影",
"type_id": "2"
},
{
"type_name": "剧集",
"type_id": "48"
},
{
"type_name": "4K原盘",
"type_id": "56"
},
{
"type_name": "综艺",
"type_id": "52"
},
{
"type_name": "动漫",
"type_id": "37"
}
],
"Cookie": "bbs_sid=icpt77h5mtmufabqk8r0jl6ib2"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
js/moyu/lib/56DM.js Normal file
View File

@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJzU25Yqo5ryrJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy41NmRtLmNjLycsCiAgICB1cmw6ICdodHRwczovL3d3dy41NmRtLmNjL3R5cGUvZnljbGFzcy1meXBhZ2UuaHRtbCcsCiAgICBzZWFyY2hVcmw6ICdodHRwczovL3d3dy41NmRtLmNjL3NlYXJjaC8qKi0tLS0tLS0tLS1meXBhZ2UtLS0uaHRtbCcsCiAgICBzZWFyY2hhYmxlOiAyLCAvL+aYr+WQpuWQr+eUqOWFqOWxgOaQnOe0oiwKICAgIHF1aWNrU2VhcmNoOiAwLCAvL+aYr+WQpuWQr+eUqOW/q+mAn+aQnOe0oiwKICAgIGZpbHRlcmFibGU6IDAsIC8v5piv5ZCm5ZCv55So5YiG57G7562b6YCJLAogICAgaGVhZGVyczogewogICAgICAgICdVc2VyLUFnZW50JzogJ1VDX1VBJywgLy8gIkNvb2tpZSI6ICIiCiAgICB9LCAvLyBjbGFzc19wYXJzZTonLnN0dWktaGVhZGVyX19tZW51IGxpOmd0KDApOmx0KDcpO2EmJlRleHQ7YSYmaHJlZjsvKFxcZCspLmh0bWwnLAogICAgY2xhc3NfcGFyc2U6ICcuc251aS1oZWFkZXItbWVudS1uYXYgbGk6Z3QoMCk6bHQoNik7YSYmVGV4dDthJiZocmVmOy4qLyguKj8pLmh0bWwnLAogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIGxhenk6IGBqczoKICAgICAgICAgICAgaWYoL1xcLihtM3U4fG1wNCkvLnRlc3QoaW5wdXQpKXsKICAgICAgICAgICAgICAgIGlucHV0ID0ge3BhcnNlOjAsdXJsOmlucHV0fQogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIGlmKHJ1bGUucGFyc2VfdXJsLnN0YXJ0c1dpdGgoJ2pzb246JykpewogICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gcnVsZS5wYXJzZV91cmwucmVwbGFjZSgnanNvbjonLCcnKStpbnB1dDsKICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QocHVybCk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSB7cGFyc2U6MCx1cmw6SlNPTi5wYXJzZShodG1sKS51cmx9CiAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICBpbnB1dD0gcnVsZS5wYXJzZV91cmwraW5wdXQ7IAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGAsCiAgICBsaW1pdDogNiwKICAgIOaOqOiNkDogJy5jQ0JmX0ZBQUVmYmM7bGk7YSYmdGl0bGU7Lmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsOy5kQURfQkJDSSYmVGV4dDthJiZocmVmJywKICAgIGRvdWJsZTogdHJ1ZSwgLy8g5o6o6I2Q5YaF5a655piv5ZCm5Y+M5bGC5a6a5L2NCiAgICDkuIDnuqc6ICcuY0NCZl9GQUFFZmJjIGxpO2EmJnRpdGxlO2EmJmRhdGEtb3JpZ2luYWw7LmRBRF9CQkNJJiZUZXh0O2EmJmhyZWYnLAogICAg5LqM57qnOiB7CiAgICAgICAgInRpdGxlIjogImgxJiZUZXh0IiwKICAgICAgICAiaW1nIjogIi5zdHVpLWNvbnRlbnRfX3RodW1iIC5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCIsCiAgICAgICAgImRlc2MiOiAiLmNDQmZfREFCQ2NhY19faGNJZGVFIHA6ZXEoMCkmJlRleHQ7LmNDQmZfREFCQ2NhY19faGNJZGVFIHA6ZXEoMSkmJlRleHQ7LmNDQmZfREFCQ2NhY19faGNJZGVFIHA6ZXEoMikmJlRleHQ7LmNDQmZfREFCQ2NhY19faGNJZGVFIHA6ZXEoMykmJlRleHQ7LmNDQmZfREFCQ2NhY19faGNJZGVFIHA6ZXEoNCkmJlRleHQiLAogICAgICAgICJjb250ZW50IjogIi5kZXRhaWwmJlRleHQiLAogICAgICAgICJ0YWJzIjogIi5jaGFubmVsLXRhYiBsaSIsCiAgICAgICAgImxpc3RzIjogIi5wbGF5LWxpc3QtY29udGVudDplcSgjaWQpIGxpIgogICAgfSwKICAgIOaQnOe0ojogJy5jQ0JmX0ZBQUVmYmNfX2RiRDthJiZ0aXRsZTsubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWw7LmRBRF9CQkNJJiZUZXh0O2EmJmhyZWY7LmNDQmZfRkFBRWZiY19faGNJZGVFJiZwOmVxKDApIHAmJlRleHQnLAp9

61
js/moyu/lib/88看球.js Normal file
View File

@ -0,0 +1,61 @@
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)
`,
},
搜索: "",
};

1
js/moyu/lib/89.txt Normal file
View File

@ -0,0 +1 @@
http://app.555618.xyz:1766

BIN
js/moyu/lib/HubanTC.jar Normal file

Binary file not shown.

329
js/moyu/lib/JWDJ.py Normal file
View File

@ -0,0 +1,329 @@
# coding=utf-8
# !/usr/bin/python
"""
作者 丢丢喵推荐 🚓 内容均从互联网收集而来 仅供交流学习使用 版权归原创者所有 如侵犯了您的权益 请通知作者 将及时删除侵权内容
====================Diudiumiao====================
"""
from Crypto.Util.Padding import unpad
from Crypto.Util.Padding import pad
from urllib.parse import unquote
from Crypto.Cipher import ARC4
from urllib.parse import quote
from base.spider import Spider
from Crypto.Cipher import AES
from datetime import datetime
from bs4 import BeautifulSoup
from base64 import b64decode
import urllib.request
import urllib.parse
import datetime
import binascii
import requests
import base64
import json
import time
import sys
import re
import os
sys.path.append('..')
xurl = "https://djw1.com"
headerx = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36'
}
class Spider(Spider):
global xurl
global headerx
def getName(self):
return "首页"
def init(self, extend):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def extract_middle_text(self, text, start_str, end_str, pl, start_index1: str = '', end_index2: str = ''):
if pl == 3:
plx = []
while True:
start_index = text.find(start_str)
if start_index == -1:
break
end_index = text.find(end_str, start_index + len(start_str))
if end_index == -1:
break
middle_text = text[start_index + len(start_str):end_index]
plx.append(middle_text)
text = text.replace(start_str + middle_text + end_str, '')
if len(plx) > 0:
purl = ''
for i in range(len(plx)):
matches = re.findall(start_index1, plx[i])
output = ""
for match in matches:
match3 = re.search(r'(?:^|[^0-9])(\d+)(?:[^0-9]|$)', match[1])
if match3:
number = match3.group(1)
else:
number = 0
if 'http' not in match[0]:
output += f"#{match[1]}${number}{xurl}{match[0]}"
else:
output += f"#{match[1]}${number}{match[0]}"
output = output[1:]
purl = purl + output + "$$$"
purl = purl[:-3]
return purl
else:
return ""
else:
start_index = text.find(start_str)
if start_index == -1:
return ""
end_index = text.find(end_str, start_index + len(start_str))
if end_index == -1:
return ""
if pl == 0:
middle_text = text[start_index + len(start_str):end_index]
return middle_text.replace("\\", "")
if pl == 1:
middle_text = text[start_index + len(start_str):end_index]
matches = re.findall(start_index1, middle_text)
if matches:
jg = ' '.join(matches)
return jg
if pl == 2:
middle_text = text[start_index + len(start_str):end_index]
matches = re.findall(start_index1, middle_text)
if matches:
new_list = [f'{item}' for item in matches]
jg = '$$$'.join(new_list)
return jg
def homeContent(self, filter):
result = {"class": []}
detail = requests.get(url=xurl + "/all/", headers=headerx)
detail.encoding = "utf-8"
res = detail.text
doc = BeautifulSoup(res, "lxml")
soups = doc.find_all('section', class_="container items")
for soup in soups:
vods = soup.find_all('li')
for vod in vods:
id = vod.find('a')['href']
name = vod.text.strip()
result["class"].append({"type_id": id, "type_name": "" + name})
return result
def homeVideoContent(self):
pass
def categoryContent(self, cid, pg, filter, ext):
result = {}
videos = []
if pg:
page = int(pg)
else:
page = 1
url = f'{cid}page/{str(page)}/'
detail = requests.get(url=url, headers=headerx)
detail.encoding = "utf-8"
res = detail.text
doc = BeautifulSoup(res, "lxml")
soups = doc.find_all('section', class_="container items")
for soup in soups:
vods = soup.find_all('li')
for vod in vods:
name = vod.find('img')['alt']
ids = vod.find('a', class_="image-line")
id = ids['href']
pic = vod.find('img')['src']
remark = self.extract_middle_text(str(vod), 'class="remarks light">', '<', 0)
video = {
"vod_id": id,
"vod_name": name,
"vod_pic": pic,
"vod_remarks": '▶️' + remark
}
videos.append(video)
result = {'list': videos}
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
did = ids[0]
result = {}
videos = []
xianlu = ''
bofang = ''
if 'http' not in did:
did = xurl + did
res = requests.get(url=did, headers=headerx)
res.encoding = "utf-8"
res = res.text
doc = BeautifulSoup(res, "lxml")
url = 'https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1732707176882/jiduo.txt'
response = requests.get(url)
response.encoding = 'utf-8'
code = response.text
name = self.extract_middle_text(code, "s1='", "'", 0)
Jumps = self.extract_middle_text(code, "s2='", "'", 0)
content = '摸鱼:不带脑子爽就完了!📢' + self.extract_middle_text(res,'class="info-detail">','<', 0)
remarks = self.extract_middle_text(res, 'class="info-mark">', '<', 0)
year = self.extract_middle_text(res, 'class="info-addtime">', '<', 0)
if name not in content:
bofang = Jumps
xianlu = '1'
else:
soups = doc.find('div', class_="ep-list-items")
soup = soups.find_all('a')
for sou in soup:
id = sou['href']
name = sou.text.strip()
bofang = bofang + name + '$' + id + '#'
bofang = bofang[:-1]
xianlu = '专线'
videos.append({
"vod_id": did,
"vod_remarks": remarks,
"vod_year": year,
"vod_content": content,
"vod_play_from": xianlu,
"vod_play_url": bofang
})
result['list'] = videos
return result
def playerContent(self, flag, id, vipFlags):
res = requests.get(url=id, headers=headerx)
res.encoding = "utf-8"
res = res.text
url = self.extract_middle_text(res, '"wwm3u8":"', '"', 0).replace('\\', '')
result = {}
result["parse"] = 0
result["playUrl"] = ''
result["url"] = url
result["header"] = headerx
return result
def searchContentPage(self, key, quick, pg):
result = {}
videos = []
if pg:
page = int(pg)
else:
page = 1
url = f'{xurl}/search/{key}/page/{str(page)}/'
detail = requests.get(url=url, headers=headerx)
detail.encoding = "utf-8"
res = detail.text
doc = BeautifulSoup(res, "lxml")
soups = doc.find_all('section', class_="container items")
for soup in soups:
vods = soup.find_all('li')
for vod in vods:
name = vod.find('img')['alt']
ids = vod.find('a', class_="image-line")
id = ids['href']
pic = vod.find('img')['src']
remark = self.extract_middle_text(str(vod), 'class="remarks light">', '<', 0)
video = {
"vod_id": id,
"vod_name": name,
"vod_pic": pic,
"vod_remarks": '▶️' + remark
}
videos.append(video)
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def searchContent(self, key, quick, pg="1"):
return self.searchContentPage(key, quick, '1')
def localProxy(self, params):
if params['type'] == "m3u8":
return self.proxyM3u8(params)
elif params['type'] == "media":
return self.proxyMedia(params)
elif params['type'] == "ts":
return self.proxyTs(params)
return None

1
js/moyu/lib/NTDM.js Normal file

File diff suppressed because one or more lines are too long

156
js/moyu/lib/TQDJ.py Normal file
View File

@ -0,0 +1,156 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
sys.path.append('..')
from base.spider import Spider
class Spider(Spider):
def init(self, extend=""):
pass
def getName(self):
return "甜圈短剧"
def isVideoFormat(self, url):
return True
def manualVideoCheck(self):
return False
def destroy(self):
pass
# 更新为新的域名
ahost = 'https://mov.cenguigui.cn'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
'sec-ch-ua-platform': '"macOS"',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="134", "Google Chrome";v="134"',
'DNT': '1',
'sec-ch-ua-mobile': '?0',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Dest': 'video',
'Sec-Fetch-Storage-Access': 'active',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
}
def homeContent(self, filter):
result = {'class': [{'type_id': '推荐榜', 'type_name': '🔥 推荐榜'},
{'type_id': '新剧', 'type_name': '🎬 新剧'},
{'type_id': '逆袭', 'type_name': '🎬 逆袭'},
{'type_id': '霸总', 'type_name': '🎬 霸总'},
{'type_id': '现代言情', 'type_name': '🎬 现代言情'},
{'type_id': '打脸虐渣', 'type_name': '🎬 打脸虐渣'},
{'type_id': '豪门恩怨', 'type_name': '🎬 豪门恩怨'},
{'type_id': '神豪', 'type_name': '🎬 神豪'},
{'type_id': '马甲', 'type_name': '🎬 马甲'},
{'type_id': '都市日常', 'type_name': '🎬 都市日常'},
{'type_id': '战神归来', 'type_name': '🎬 战神归来'},
{'type_id': '小人物', 'type_name': '🎬 小人物'},
{'type_id': '女性成长', 'type_name': '🎬 女性成长'},
{'type_id': '大女主', 'type_name': '🎬 大女主'},
{'type_id': '穿越', 'type_name': '🎬 穿越'},
{'type_id': '都市修仙', 'type_name': '🎬 都市修仙'},
{'type_id': '强者回归', 'type_name': '🎬 强者回归'},
{'type_id': '亲情', 'type_name': '🎬 亲情'},
{'type_id': '古装', 'type_name': '🎬 古装'},
{'type_id': '重生', 'type_name': '🎬 重生'},
{'type_id': '闪婚', 'type_name': '🎬 闪婚'},
{'type_id': '赘婿逆袭', 'type_name': '🎬 赘婿逆袭'},
{'type_id': '虐恋', 'type_name': '🎬 虐恋'},
{'type_id': '追妻', 'type_name': '🎬 追妻'},
{'type_id': '天下无敌', 'type_name': '🎬 天下无敌'},
{'type_id': '家庭伦理', 'type_name': '🎬 家庭伦理'},
{'type_id': '萌宝', 'type_name': '🎬 萌宝'},
{'type_id': '古风权谋', 'type_name': '🎬 古风权谋'},
{'type_id': '职场', 'type_name': '🎬 职场'},
{'type_id': '奇幻脑洞', 'type_name': '🎬 奇幻脑洞'},
{'type_id': '异能', 'type_name': '🎬 异能'},
{'type_id': '无敌神医', 'type_name': '🎬 无敌神医'},
{'type_id': '古风言情', 'type_name': '🎬 古风言情'},
{'type_id': '传承觉醒', 'type_name': '🎬 传承觉醒'},
{'type_id': '现言甜宠', 'type_name': '🎬 现言甜宠'},
{'type_id': '奇幻爱情', 'type_name': '🎬 奇幻爱情'},
{'type_id': '乡村', 'type_name': '🎬 乡村'},
{'type_id': '历史古代', 'type_name': '🎬 历史古代'},
{'type_id': '王妃', 'type_name': '🎬 王妃'},
{'type_id': '高手下山', 'type_name': '🎬 高手下山'},
{'type_id': '娱乐圈', 'type_name': '🎬 娱乐圈'},
{'type_id': '强强联合', 'type_name': '🎬 强强联合'},
{'type_id': '破镜重圆', 'type_name': '🎬 破镜重圆'},
{'type_id': '暗恋成真', 'type_name': '🎬 暗恋成真'},
{'type_id': '民国', 'type_name': '🎬 民国'},
{'type_id': '欢喜冤家', 'type_name': '🎬 欢喜冤家'},
{'type_id': '系统', 'type_name': '🎬 系统'},
{'type_id': '真假千金', 'type_name': '🎬 真假千金'},
{'type_id': '龙王', 'type_name': '🎬 龙王'},
{'type_id': '校园', 'type_name': '🎬 校园'},
{'type_id': '穿书', 'type_name': '🎬 穿书'},
{'type_id': '女帝', 'type_name': '🎬 女帝'},
{'type_id': '团宠', 'type_name': '🎬 团宠'},
{'type_id': '年代爱情', 'type_name': '🎬 年代爱情'},
{'type_id': '玄幻仙侠', 'type_name': '🎬 玄幻仙侠'},
{'type_id': '青梅竹马', 'type_name': '🎬 青梅竹马'},
{'type_id': '悬疑推理', 'type_name': '🎬 悬疑推理'},
{'type_id': '皇后', 'type_name': '🎬 皇后'},
{'type_id': '替身', 'type_name': '🎬 替身'},
{'type_id': '大叔', 'type_name': '🎬 大叔'},
{'type_id': '喜剧', 'type_name': '🎬 喜剧'},
{'type_id': '剧情', 'type_name': '🎬 剧情'}]}
return result
def homeVideoContent(self):
return []
def categoryContent(self, tid, pg, filter, extend):
params = {
'classname': tid,
'offset': str((int(pg) - 1)),
}
# 更新请求路径为 /duanju/api.php
data = self.fetch(f'{self.ahost}/duanju/api.php', params=params, headers=self.headers).json()
videos = []
for k in data['data']:
videos.append({
'vod_id': k.get('book_id'),
'vod_name': k.get('title'),
'vod_pic': k.get('cover'),
'vod_year': k.get('score'),
'vod_remarks': f"{k.get('sub_title')}|{k.get('episode_cnt')}"
})
result = {}
result['list'] = videos
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
# 更新请求路径为 /duanju/api.php
v = self.fetch(f'{self.ahost}/duanju/api.php', params={'book_id': ids[0]}, headers=self.headers).json()
vod = {
'vod_id': ids[0],
'vod_name': v.get('title'),
'type_name': v.get('category'),
'vod_year': v.get('time'),
'vod_remarks': v.get('duration'),
'vod_content': v.get('desc'),
'vod_play_from': '爱看短剧',
'vod_play_url': '#'.join([f"{i['title']}${i['video_id']}" for i in v['data']])
}
return {'list': [vod]}
def searchContent(self, key, quick, pg="1"):
return self.categoryContent(key, pg, True, {})
def playerContent(self, flag, id, vipFlags):
# 更新请求路径为 /duanju/api.php
data = self.fetch(f'{self.ahost}/duanju/api.php', params={'video_id': id}, headers=self.headers).json()
return {'parse': 0, 'url': data['data']['url'], 'header': self.headers}
def localProxy(self, param):
pass

86
js/moyu/lib/aliShare.json Normal file
View File

@ -0,0 +1,86 @@
[
{
"name": "我的网盘",
"folders": [
{
"shareId": "",
"folder": "root"
}
]
},
{
"name": "影视一",
"folders": [
{
"shareId": "dW5pJdgF8c9",
"folder": "root"
},
{
"shareId": "Y5wMKfVDD6K",
"folder": "root"
},
{
"shareId": "LEaepiYfxcw",
"folder": "root"
},
{
"shareId": "v1bBBEcNf9p",
"folder": "root"
}
]
},
{
"name": "影视二",
"folders": [
{
"shareId": "uWa9gbM3RJ7",
"folder": "655c7b6c66368f43652a45288146c6e7cb269aa8"
}
]
},
{
"name": "影视三",
"folders": [
{
"shareId": "4ydLxf7VgH7",
"folder": "root"
}
]
},
{
"name": "影视四",
"folders": [
{
"shareId": "5bsnAp5fbCW",
"folder": "root"
}
]
},
{
"name": "影视五",
"folders": [
{
"shareId": "dieULBdYP3D",
"folder": "root"
}
]
},
{
"name": "影视六",
"folders": [
{
"shareId": "sg8CdGUwmUr",
"folder": "root"
}
]
},
{
"name": "影视七",
"folders": [
{
"shareId": "wHPKUENKFsS",
"folder": "root"
}
]
}
]

1
js/moyu/lib/cheerio.min.js vendored Normal file

File diff suppressed because one or more lines are too long

6191
js/moyu/lib/crypto-js.js Normal file

File diff suppressed because it is too large Load Diff

1
js/moyu/lib/csurl.txt Normal file
View File

@ -0,0 +1 @@
https://newappcms.cs4k.top/

1
js/moyu/lib/drpy2.js Normal file

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More