Pending changes exported from your codespace
This commit is contained in:
parent
0e4f5a991f
commit
281959314d
56
南风/api.json
56
南风/api.json
@ -21,6 +21,27 @@
|
||||
"filterable": 0,
|
||||
"ext": "https://www.czzy55.com/"
|
||||
},
|
||||
{
|
||||
"key": "csp_AppTT",
|
||||
"name": "💥追剧",
|
||||
"type": 3,
|
||||
"api": "csp_AppTT",
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "AO7TcBkd8Jqf5UgA7xXA6dVlLcc="
|
||||
},
|
||||
{
|
||||
"key": "csp_Bdys",
|
||||
"name": "☀哔嘀",
|
||||
"type": 3,
|
||||
"api": "csp_Bdys",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1
|
||||
},
|
||||
{
|
||||
"key": "csp_YQKan",
|
||||
"name": "🌎一起看",
|
||||
@ -50,18 +71,6 @@
|
||||
"filterable": 1,
|
||||
"changeable": 1
|
||||
},
|
||||
{
|
||||
"key": "率率",
|
||||
"name": "🌸率率",
|
||||
"type": 3,
|
||||
"api": "csp_AppLd",
|
||||
"playerType": 1,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": "FbjSZ1FapovNr0QF4QvEpcoxb5gWXdQJE2MXqLG6ykBcSsOR7TnDygTd5bXnCjGuLD/PknUhkn0yQ2NzCIxgZAkPAofMgEqVYlhBvnhU8N1VerP8K2NTNgP+NxESztO6"
|
||||
},
|
||||
{
|
||||
"key": "萌米",
|
||||
"name": "👀萌米",
|
||||
@ -73,18 +82,6 @@
|
||||
"changeable": 0,
|
||||
"ext": "FbjDcUxPqpfNr0QF4QvEpcoxMMdAA5wQTClJt+Hxgw4VXJLfrTSRjQjA6r70U2ONX3iG4lQWk1cgXQMSUZpbUzIYJ6iQs3+gcUVDp1lz6rcrGqDtCW4hfAf9JSR025m0+TGWMsZkVg=="
|
||||
},
|
||||
{
|
||||
"key": "星奇",
|
||||
"name": "💥星奇",
|
||||
"type": 3,
|
||||
"api": "csp_AppMao",
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": "FbjDcUxPqpfNr0QF4QvE6sExbd4UXJxJXzdL462ywU1XScGa5G6Hj0/c+Ou1GW6rdX6N2XIhnD46QzIsRoZ8bk4fG4OYi0iCaWwRj2ddkacwFqHtLjQhalHqIy0+kpiTv2eOfJYxTshgrxcJ+g3lEHx7ZLC9kB1TCfZUSHwqHB3tt6V/1OhRENIOZNRFfXVBEFd7jQg+J06kjCAF7z1Bt8hRvMjC2VcbQXsEz8MCZDgu06C9/wirWcTa/wWJsfT+Z7fXaDs+dIWMYiwf6td5CWTx6LfL6eTuiMhs2KU5Byw9F+4Y/AHBg4r+LEe+Hm4EM2d8X3ca5zHSj+kjmpXOiGDo4TalFqgTq67eggmthCbV2d131SKc03V+5gruudQQk/Tb9e4lg6SQhA9/5kWOOM/LRmkqIxSt6d0wpu7yKKh65enwKbgasc93/HnGr6W4LuZjf6eYnS2GgRzWRE0fT5lYNmxnWeRnYuLhoZbDqslAfJzg"
|
||||
},
|
||||
{
|
||||
"key": "csp_Jianpian",
|
||||
"name": "🧲荐片",
|
||||
@ -228,17 +225,6 @@
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "csp_Duanju",
|
||||
"name": "🎭短剧",
|
||||
"type": 3,
|
||||
"api": "csp_Duanju",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": "http://aiduanju.vip/"
|
||||
},
|
||||
{
|
||||
"key": "csp_Yj1211",
|
||||
"name": "📽️在线直播",
|
||||
|
BIN
南风/spider.jar
BIN
南风/spider.jar
Binary file not shown.
38
小米/api.json
38
小米/api.json
@ -4,7 +4,7 @@
|
||||
"sites": [
|
||||
{
|
||||
"key": "豆豆",
|
||||
"name": "🎟豆瓣┃主页",
|
||||
"name": "🎟豆瓣┃接口免费",
|
||||
"type": 3,
|
||||
"api": "csp_DouDou",
|
||||
"searchable": 0,
|
||||
@ -13,7 +13,7 @@
|
||||
},
|
||||
{
|
||||
"key": "Bili",
|
||||
"name": "🅱哔哩┃哔哩",
|
||||
"name": "🅱哔哩┃收费可耻",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"style": {
|
||||
@ -521,38 +521,6 @@
|
||||
"type": 2,
|
||||
"url": "Sequence"
|
||||
},
|
||||
{
|
||||
"name": "稻香🌾",
|
||||
"type": 0,
|
||||
"url": "https://jx.xmflv.com/?url=",
|
||||
"ext": {
|
||||
"flag": [
|
||||
"mgtv",
|
||||
"qiyi",
|
||||
"imgo",
|
||||
"爱奇艺",
|
||||
"奇艺",
|
||||
"qq",
|
||||
"腾讯",
|
||||
"youku",
|
||||
"优酷",
|
||||
"pptv",
|
||||
"PPTV",
|
||||
"letv",
|
||||
"乐视",
|
||||
"leshi",
|
||||
"bilibili",
|
||||
"哔哩哔哩",
|
||||
"哔哩",
|
||||
"mgtv",
|
||||
"芒果",
|
||||
"芒果"
|
||||
],
|
||||
"header": {
|
||||
"User-Agent": "okhttp/3.12.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "爱酷🌾",
|
||||
"type": 1,
|
||||
@ -589,7 +557,7 @@
|
||||
{
|
||||
"name": "蚂蚁🌾",
|
||||
"type": 1,
|
||||
"url": "http://121.62.61.51:6888/api/?key=5CWvFJheqm0EGrXAou&url=",
|
||||
"url": "http://121.62.61.51:6888/api/?key=n669JAmIzmG1K813tb&url=",
|
||||
"ext": {
|
||||
"flag": [
|
||||
"NBY"
|
||||
|
@ -1,304 +0,0 @@
|
||||
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};
|
File diff suppressed because one or more lines are too long
1
小米/api/drpy2.min.js
vendored
1
小米/api/drpy2.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
小米/jars/新剧.jar
BIN
小米/jars/新剧.jar
Binary file not shown.
@ -1,30 +0,0 @@
|
||||
var rule = {
|
||||
title: '23', // csp_AppYsV2
|
||||
host: 'http://111.173.83.218:7575',
|
||||
homeUrl:'/api.php/v1.vod/vodPhbAll',
|
||||
url: '/api.php/v1.vod?type=fyclassfyfilter&limit=18&page=fypage',
|
||||
filter_url:'&class={{fl.class}}&area={{fl.area}}&year={{fl.year}}&by={{fl.by}}',
|
||||
filter: {
|
||||
"2":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"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":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"1":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"恐怖","v":"恐怖"},{"n":"动作","v":"动作"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"战争","v":"战争"},{"n":"警匪","v":"警匪"},{"n":"犯罪","v":"犯罪"},{"n":"动画","v":"动画"},{"n":"奇幻","v":"奇幻"},{"n":"武侠","v":"武侠"},{"n":"冒险","v":"冒险"},{"n":"枪战","v":"枪战"},{"n":"恐怖","v":"恐怖"},{"n":"悬疑","v":"悬疑"},{"n":"惊悚","v":"惊悚"},{"n":"经典","v":"经典"},{"n":"青春","v":"青春"},{"n":"文艺","v":"文艺"},{"n":"微电影","v":"微电影"},{"n":"古装","v":"古装"},{"n":"历史","v":"历史"},{"n":"运动","v":"运动"},{"n":"农村","v":"农村"},{"n":"儿童","v":"儿童"},{"n":"网络电影","v":"网络电影"}]},{"key":"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":"lang","name":"语言","value":[{"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":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"3":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
|
||||
},
|
||||
detailUrl:'/api.php/v1.vod/detail?vod_id=fyid',
|
||||
searchUrl: '/api.php/v1.vod?wd=**&limit=18&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable:1,//是否启用分类筛选,
|
||||
headers:{'User-Agent':'okhttp/4.1.0'},
|
||||
timeout:5000,
|
||||
class_name:'剧集&电影&综艺&动漫', // 分类筛选 /api.php/v1.vod/types
|
||||
class_url:'2&1&3&4',
|
||||
play_parse:true,
|
||||
lazy:'js:input=/SMD/.test(input)?JSON.parse(request("http://jiexi.xn--654a.cc/home/api?type=ys&uid=15212721&key=ghkmnorsxBDPTVXY57&url="+input)).url:/.m3u8|.mp4/.test(input)?input:/xinvip|XYYDS-|zb-/.test(input)?JSON.parse(request("http://json.xn--654a.cc/home/api?type=ys&uid=3462326&key=akstzCJKNPQSTY1689&url="+input)).url:/Feiyun-/.test(input)?JSON.parse(request("https://daina.hk/api/?key=aaf9a4fcded7dff0787d422c2489fe54&url="+input)).url:/^\\d+$/.test(input)?""+input:JSON.parse(request("http://api.888484.xyz/神秘哥哥/super.php?v="+input)).url',
|
||||
limit:6,
|
||||
推荐:'json:data.list;vod_list;*;*;*;*',
|
||||
double:true,
|
||||
一级:'json:data.list;vod_name;vod_pic;vod_remarks;vod_id',
|
||||
二级:'js:try{let html=request(input);html=JSON.parse(html);let node=html.data;VOD={vod_id:node["vod_id"],vod_name:node["vod_name"],vod_pic:node["vod_pic"],type_name:node["vod_class"],vod_year:node["vod_year"],vod_area:node["vod_area"],vod_remarks:node["vod_remarks"],vod_actor:node["vod_actor"],vod_director:node["vod_director"],vod_content:node["vod_content"].strip()};let episodes=Object.values(node.vod_play_list);print(episodes);let playMap={};if(typeof play_url==="undefined"){var play_url=""}episodes.forEach(function(ep){let source=ep["player_info"]["show"];if(!playMap.hasOwnProperty(source)){playMap[source]=[]}playMap[source].append(ep["url"])});let playFrom=[];let playList=[];Object.keys(playMap).forEach(function(key){playFrom.append(key);playList.append(playMap[key])});let vod_play_from=playFrom.join("$$$");let vod_play_url=playList.join("$$$");VOD["vod_play_from"]=vod_play_from;VOD["vod_play_url"]=vod_play_url}catch(e){log("获取二级详情页发生错误:"+e.message)}',
|
||||
搜索:'*',
|
||||
}
|
4010
小米/lives/IPv4.txt
4010
小米/lives/IPv4.txt
File diff suppressed because it is too large
Load Diff
@ -207,6 +207,11 @@
|
||||
"type": 1,
|
||||
"url": "http://119.91.123.253:2345/Api/yun.php?url="
|
||||
},
|
||||
{
|
||||
"name": "嗅探0",
|
||||
"type": 0,
|
||||
"url": "http://101.132.136.85:233/?url="
|
||||
},
|
||||
{
|
||||
"name": "嗅探1",
|
||||
"type": 0,
|
||||
|
BIN
小胡/jars/影探.jar
BIN
小胡/jars/影探.jar
Binary file not shown.
BIN
小胡/jars/耐看.jar
BIN
小胡/jars/耐看.jar
Binary file not shown.
41
小胡/js/新视觉.js
41
小胡/js/新视觉.js
File diff suppressed because one or more lines are too long
@ -1,82 +0,0 @@
|
||||
{
|
||||
"规则名": "玩偶姐姐",
|
||||
//"DEBUG":"1",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "MOBILE_UA",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "否",
|
||||
"是否开启获取首页数据": "是",
|
||||
"首页推荐链接": "https://www.weixine.net",
|
||||
"首页列表数组规则": "body&&.module-items",
|
||||
"首页片单列表数组规则": ".module-item",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.weixine.net/vodshow/{cateId}--{by}------{catePg}---{year}.html",
|
||||
"分类名称": "电影&电视剧&综艺&动漫&短剧&音乐空间",
|
||||
"分类名称替换词": "1&2&4&3&5&6",
|
||||
//"筛选数据": {},
|
||||
"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".module-items&&.module-item",
|
||||
"分类片单是否Jsoup写法": "是",
|
||||
"分类片单标题": "a&&title",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".module-item-pic&&img&&data-src",
|
||||
"分类片单副标题": ".module-item-text&&Text",
|
||||
"分类片单链接加前缀": "https://www.weixine.net",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$MOBILE_UA",
|
||||
"搜索链接": "https://www.weixine.net/vodsearch/{wd}----------{SearchPg}---.html",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".module-items&&.module-search-item",
|
||||
"搜索片单是否Jsoup写法": "是",
|
||||
"搜索片单图片": ".lazyload&&data-src",
|
||||
"搜索片单标题": "h3&&Text",
|
||||
"搜索片单链接": "h3&&a&&href",
|
||||
"搜索片单副标题": ".video-info&&a&&Text",
|
||||
"搜索片单链接加前缀": "https://www.weixine.net",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "否",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "是",
|
||||
"类型详情": "",
|
||||
"年代详情": "",
|
||||
"地区详情": "",
|
||||
"演员详情": ".video-info-main&&.video-info-actor,1&&Text",
|
||||
"简介详情": ".video-info-content&&p,-1&&Text",
|
||||
"线路列表数组规则": ".module-player-tab&&.module-tab-item:contains(阿里)",
|
||||
"线路标题": "span&&Text",
|
||||
"播放列表数组规则": "body&&.module-player-list",
|
||||
"选集列表数组规则": ".module-row-one:contains(ali)",
|
||||
"选集标题链接是否Jsoup写法": "是",
|
||||
"选集标题": "h4&&Text",
|
||||
"选集链接": ".btn-down&&a&&href",
|
||||
"是否反转选集序列": "否",
|
||||
"选集链接加前缀": "",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "",
|
||||
"是否开启手动嗅探": "否",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
63
肥猫/api.json
63
肥猫/api.json
@ -15,6 +15,7 @@
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"playerType": 2,
|
||||
"searchable": 0,
|
||||
"ext": {
|
||||
"首页": "正在热映",
|
||||
"图片代理": "",
|
||||
@ -116,6 +117,14 @@
|
||||
"filterable": 1,
|
||||
"ext": "https://m.emsdn.cn"
|
||||
},
|
||||
{
|
||||
"key": "csp_Nkdy",
|
||||
"name": "🏔耐看┃影视",
|
||||
"type": 3,
|
||||
"playerType": "2",
|
||||
"api": "csp_Nkdy",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "csp_Auete",
|
||||
"name": "🦝┃Aue┃影视",
|
||||
@ -160,27 +169,19 @@
|
||||
"playerType": "1"
|
||||
},
|
||||
{
|
||||
"key": "二懒影视",
|
||||
"name": "🏍️┃二懒┃影视",
|
||||
"key": "毛驴",
|
||||
"name": "🦙┃毛驴┃影视",
|
||||
"type": 3,
|
||||
"api": "csp_Fangniu4k",
|
||||
"searchable": 1,
|
||||
"jar": "./jars/二懒影视.jar"
|
||||
},
|
||||
{
|
||||
"key": "耐看",
|
||||
"name": "🦁┃耐看┃影视",
|
||||
"type": 3,
|
||||
"api": "csp_Nkdy",
|
||||
"api": "csp_MaoLv",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "毛驴",
|
||||
"name": "🦙┃毛驴┃影视",
|
||||
"key": "玖玖",
|
||||
"name": "🌅┃玖玖┃影视",
|
||||
"type": 3,
|
||||
"api": "csp_MaoLv",
|
||||
"api": "csp_Cs1369",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
@ -194,6 +195,13 @@
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "JOJO",
|
||||
"name": "🐺┃JOJO┃影视",
|
||||
"type": 3,
|
||||
"api": "./api/jiohub.js",
|
||||
"playerType": 1
|
||||
},
|
||||
{
|
||||
"key": "saohuo",
|
||||
"name": " 👗┃骚火┃影视",
|
||||
@ -231,7 +239,7 @@
|
||||
"name": "🐦┃视觉┃影视",
|
||||
"type": 3,
|
||||
"api": "csp_Xinsj",
|
||||
"searchable": 1,
|
||||
"searchable": 0,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://www.80yy3.com/"
|
||||
@ -257,19 +265,6 @@
|
||||
"mackey": "yingshichetvQ4Zi|PHRBxdt7PppocRJ5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "布蕾",
|
||||
"name": "⚡┃布蕾┃影视",
|
||||
"type": 3,
|
||||
"api": "csp_Lvdou",
|
||||
"playerType": 1,
|
||||
"ext": {
|
||||
"server": "http://38.12.25.109:158/api.php/app/",
|
||||
"mackey": "weZtRbfJDgzyvHiG|YLdoqhUccdDmEPQU",
|
||||
"parsekey": "mupfinBA986icmAZ|eV7YDmhgzThSiR1s",
|
||||
"parseurl": "https://maya.x3322.net/api/index?parsesId=5&parsesUrl="
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "乐乐",
|
||||
"name": "🎡️┃乐乐┃影视",
|
||||
@ -362,14 +357,6 @@
|
||||
"分类url": "http://fagmn.com/list/{cateId}_{catePg}.html?order=time"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "咕噜",
|
||||
"name": "🦸┃咕噜┃影视",
|
||||
"type": 3,
|
||||
"api": "csp_Movie2",
|
||||
"ext": "./json/Movie5.json",
|
||||
"jar": "./jars/咕噜.jar"
|
||||
},
|
||||
{
|
||||
"key": "csp_SP360",
|
||||
"name": "📺┃360┃官源",
|
||||
@ -389,7 +376,8 @@
|
||||
"name": "🎭┃短剧┃视频",
|
||||
"type": 3,
|
||||
"api": "csp_Duanju",
|
||||
"playerType": "2"
|
||||
"playerType": "2",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "种子短剧",
|
||||
@ -415,6 +403,7 @@
|
||||
"type": 3,
|
||||
"playerType": "2",
|
||||
"api": "csp_BookTing",
|
||||
"searchable": 0,
|
||||
"ext": "https://m.ting275.com",
|
||||
"style": {
|
||||
"type": "rect",
|
||||
|
206
肥猫/api/jiohub.js
Normal file
206
肥猫/api/jiohub.js
Normal file
@ -0,0 +1,206 @@
|
||||
import { Crypto, load, _, dayjs } from 'assets://js/lib/cat.js';
|
||||
|
||||
let key = 'jiohub';
|
||||
let url = 'https://jiohub.top';
|
||||
let siteKey = '';
|
||||
let siteType = 0;
|
||||
|
||||
const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
|
||||
|
||||
const cookie = {};
|
||||
|
||||
async function request(reqUrl, referer, mth, data, hd) {
|
||||
const headers = {
|
||||
'User-Agent': UA,
|
||||
Cookie: _.map(cookie, (value, key) => {
|
||||
return `${key}=${value}`;
|
||||
}).join(';'),
|
||||
};
|
||||
if (referer) headers.referer = encodeURIComponent(referer);
|
||||
let res = await req(reqUrl, {
|
||||
method: mth || 'get',
|
||||
headers: headers,
|
||||
data: data,
|
||||
postType: mth === 'post' ? 'form' : '',
|
||||
});
|
||||
return res.content;
|
||||
}
|
||||
|
||||
// cfg = {skey: siteKey, ext: extend}
|
||||
async function init(cfg) {
|
||||
siteKey = cfg.skey;
|
||||
siteType = cfg.stype;
|
||||
}
|
||||
|
||||
async function home(filter) {
|
||||
const html = await request(url);
|
||||
const $ = load(html);
|
||||
const series = $('.nav-list a[href*=/video]');
|
||||
let classes = _.map(series, (s) => {
|
||||
let typeId = s.attribs['href'];
|
||||
let typeName = typeId.match(/\/video\/(.*)\?/)[1];
|
||||
typeName = decodeURIComponent(typeName);
|
||||
return {
|
||||
type_id: typeName,
|
||||
type_name: typeName,
|
||||
};
|
||||
});
|
||||
return JSON.stringify({
|
||||
class: classes,
|
||||
});
|
||||
}
|
||||
|
||||
async function homeVod() {
|
||||
return '{}';
|
||||
}
|
||||
|
||||
async function category(tid, pg, filter, extend) {
|
||||
let page = pg || 1;
|
||||
if (page == 0) page = 1;
|
||||
const link = url + '/video/' + tid + "?page=" + page + '&size=18';
|
||||
const html = await request(link);
|
||||
const $ = load(html);
|
||||
const items = $('div.content-body > a');
|
||||
let videos = _.map(items, (item) => {
|
||||
const img = $(item).find('img:first')[0].attribs['src'];
|
||||
const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
|
||||
const n = ($(item).find('p.card-title')[0]).children[0].data;
|
||||
let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
|
||||
const score = ($(item).find('p.score')[0]).children[0].data || '';
|
||||
if (speed == tid) speed = '';
|
||||
return {
|
||||
vod_id: a,
|
||||
vod_name: n,
|
||||
vod_pic: img,
|
||||
vod_remarks: speed || score || '',
|
||||
};
|
||||
});
|
||||
|
||||
let total = 18;
|
||||
const pag = $('ui-pagination');
|
||||
if (pag.length > 0) {
|
||||
try {
|
||||
total = parseInt(pag[0].attribs['total']);
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return JSON.stringify({
|
||||
page: page,
|
||||
pagecount: _.ceil(total / 18),
|
||||
list: videos,
|
||||
});
|
||||
}
|
||||
|
||||
function stripHtmlTag(src) {
|
||||
return src
|
||||
.replace(/<\/?[^>]+(>|$)/g, '')
|
||||
.replace(/&.{1,5};/g, '')
|
||||
.replace(/\s{2,}/g, ' ');
|
||||
}
|
||||
|
||||
async function detail(id) {
|
||||
const html = await request(url + '/watch/' + id);
|
||||
const $ = load(html);
|
||||
const detail = $('div.content-detail > p');
|
||||
let vod = {
|
||||
vod_id: id,
|
||||
vod_content: stripHtmlTag($('div.content-detail span.detail-sketch').html()).trim(),
|
||||
};
|
||||
for (const info of detail) {
|
||||
const i = $(info).text().trim();
|
||||
if (i.startsWith('地区:')) {
|
||||
vod.vod_area = i.substring(3);
|
||||
} else if (i.startsWith('年份:')) {
|
||||
vod.vod_year = i.substring(3);
|
||||
} else if (i.startsWith('类型:')) {
|
||||
vod.vod_type = i.substring(3);
|
||||
} else if (i.startsWith('导演:')) {
|
||||
vod.vod_director = i.substring(3);
|
||||
} else if (i.startsWith('主演:')) {
|
||||
vod.vod_actor = i.substring(3);
|
||||
} else if (i.startsWith('语言:')) {
|
||||
vod.vod_lang = i.substring(3);
|
||||
}
|
||||
}
|
||||
|
||||
const urls = html.match(/let urls = \"(.*)\";/)[1].replace(/_/g, '/').replace(/-/g, '+');
|
||||
var key = Crypto.enc.Utf8.parse("cf2d1a-6a4d-9ef8");
|
||||
var playlist = Crypto.AES.decrypt(urls, key, { iv: key, padding: Crypto.pad.Pkcs7 });
|
||||
playlist = Crypto.enc.Utf8.stringify(playlist).split('\n');
|
||||
vod.vod_play_from = 'JOJO';
|
||||
vod.vod_play_url = playlist.join('#');
|
||||
return JSON.stringify({
|
||||
list: [vod],
|
||||
});
|
||||
}
|
||||
|
||||
function playPid() {
|
||||
var key = Crypto.enc.Utf8.parse('VSmJTRRE'+dayjs().format('YYYYMMDD'));
|
||||
var iv = Crypto.enc.Hex.parse("00000000000000000000000000000000");
|
||||
var pid = Crypto.AES.encrypt(dayjs().format('YYYY-MM-DD HH:mm'), key, { iv: iv, padding: Crypto.pad.Pkcs7 });
|
||||
pid = pid.toString().replace(/\+/g, '-');
|
||||
return pid;
|
||||
}
|
||||
|
||||
async function play(flag, id, flags) {
|
||||
return JSON.stringify({
|
||||
parse: 0,
|
||||
url: id + '?pid=' + playPid(),
|
||||
header: {
|
||||
'User-Agent': UA,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
async function search(wd, quick, pg) {
|
||||
let page = pg || 1;
|
||||
if (page == 0) page = 1;
|
||||
const link = url + '/video/search?q=' + wd + "&page=" + page + '&size=18&pid=' + playPid();
|
||||
const html = await request(link);
|
||||
const $ = load(html);
|
||||
const items = $('div.content-body > a');
|
||||
let videos = _.map(items, (item) => {
|
||||
const img = $(item).find('img:first')[0].attribs['src'];
|
||||
const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
|
||||
const n = ($(item).find('p.card-title')[0]).children[0].data;
|
||||
let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
|
||||
const score = ($(item).find('p.score')[0]).children[0].data || '';
|
||||
if (speed == '电影') speed = '';
|
||||
return {
|
||||
vod_id: a,
|
||||
vod_name: n,
|
||||
vod_pic: img,
|
||||
vod_remarks: speed || score || '',
|
||||
};
|
||||
});
|
||||
|
||||
let total = 18;
|
||||
const pag = $('ui-pagination');
|
||||
if (pag.length > 0) {
|
||||
try {
|
||||
total = parseInt(pag[0].attribs['total']);
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return JSON.stringify({
|
||||
page: page,
|
||||
pagecount: _.ceil(total / 18),
|
||||
list: videos,
|
||||
});
|
||||
}
|
||||
|
||||
export function __jsEvalReturn() {
|
||||
return {
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search,
|
||||
};
|
||||
}
|
BIN
肥猫/jars/二懒影视.jar
BIN
肥猫/jars/二懒影视.jar
Binary file not shown.
BIN
肥猫/jars/咕噜.jar
BIN
肥猫/jars/咕噜.jar
Binary file not shown.
BIN
肥猫/jars/虎虎.jar
BIN
肥猫/jars/虎虎.jar
Binary file not shown.
48
肥猫/js/007.js
48
肥猫/js/007.js
@ -1,48 +0,0 @@
|
||||
// 搜索数字验证
|
||||
muban.首图2.二级.desc = '.data:eq(1)&&Text;;;.data:eq(6)&&Text;.data:eq(5)&&Text';
|
||||
muban.首图2.二级.tabs = '.nav-tabs.dpplay&&li';
|
||||
var rule = {
|
||||
title:'007影视',
|
||||
搜索编码:'utf-8',
|
||||
// 搜索编码:'gbk',
|
||||
模板:'首图2',
|
||||
ali_token:'{{ali_token}}',
|
||||
bili_cookie:'{{bili_cookie}}',
|
||||
host:'https://www.007ts.me',
|
||||
// url:'/show/fyclass--------fypage---.html',
|
||||
url:'/show/fyclassfyfilter.html',
|
||||
filterable:1,//是否启用分类筛选,
|
||||
filter_url:'-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}----fypage---{{fl.year}}',
|
||||
filter:{
|
||||
"1":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"爱情","v":"爱情"},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"战争","v":"战争"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"武侠","v":"武侠"},{"n":"冒险","v":"冒险"},{"n":"枪战","v":"枪战"},{"n":"恐怖","v":"恐怖"},{"n":"微电影","v":"微电影"},{"n":"其它","v":"其它"}]},{"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":"俄罗斯"},{"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":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"2":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"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":"俄罗斯"},{"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":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"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"},{"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":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"脱口秀","v":"脱口秀"},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"八卦","v":"八卦"},{"n":"访谈","v":"访谈"},{"n":"情感","v":"情感"},{"n":"生活","v":"生活"},{"n":"搞笑","v":"搞笑"},{"n":"音乐","v":"音乐"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"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"},{"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":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"7":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"18":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"19":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
|
||||
"20":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
|
||||
},
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(9);a&&Text;a&&href;.*/(.*?).html',
|
||||
lazy:`js:var html=JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
log(html);
|
||||
var url=html.url;
|
||||
if(html.encrypt=='1'){
|
||||
url=unescape(url)
|
||||
}else if(html.encrypt=='2'){
|
||||
url=unescape(base64Decode(url))
|
||||
}
|
||||
if(/m3u8|mp4/.test(url)){
|
||||
input=url
|
||||
}else if(/qq|iqiyi/.test(url)){
|
||||
input={jx:0,url:'https://jx.m3u8.tv/jiexi/?url='+url,parse:1,header:JSON.stringify({'user-agent':'Mozilla/5.0'})}
|
||||
}else{
|
||||
input
|
||||
}`,
|
||||
|
||||
// searchUrl:'/search/**----------fypage---.html',
|
||||
searchUrl:'/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
// searchUrl:'/VSP/V3/SearchContent#{"contentTypes":["VOD"],"searchScopes":["CONTENT_NAME","ACTOR"],"sortType":["RELEVANCE"],"count":8,"offset":0,"SearchKey":"**","subjectID":"10000100000000090000000000001323"};postjson',
|
||||
detailUrl:'/detail/fyid.html', //非必填,二级详情拼接链接
|
||||
搜索:'json:list;name;pic;;id',
|
||||
}
|
28
肥猫/js/360.js
28
肥猫/js/360.js
@ -1,28 +0,0 @@
|
||||
var rule = {
|
||||
title:'360影视',
|
||||
host:'https://www.360kan.com',
|
||||
homeUrl:'https://api.web.360kan.com/v1/rank?cat=2&size=9',
|
||||
detailUrl:'https://api.web.360kan.com/v1/detail?cat=fyclass&id=fyid',
|
||||
searchUrl:'https://api.so.360kan.com/index?force_v=1&kw=**&from=&pageno=fypage&v_ap=1&tab=all',
|
||||
url:'https://api.web.360kan.com/v1/filter/list?catid=fyclass&rank=rankhot&cat=&year=&area=&act=&size=35&pageno=fypage&callback=',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'电视剧&电影&综艺&动漫',
|
||||
class_url:'2&1&3&4',
|
||||
limit:5,
|
||||
multi:1,
|
||||
searchable:2,
|
||||
play_parse:true,
|
||||
lazy:'js:input=input.split("?")[0];log(input);',
|
||||
// 疑似t4专用的
|
||||
// lazy:'js:input={parse: 1, playUrl: "", jx: 1, url: input.split("?")[0]}',
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
// lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
|
||||
推荐:'json:data;title;cover;comment;cat+ent_id;description',
|
||||
一级:'json:data.movies;title;cover;pubdate;id;description',
|
||||
二级:'',
|
||||
二级:'js:let html=JSON.parse(fetch(input,fetch_params));let data=html.data;let tilte=data.title;let img=data.cdncover;let vod_type=data.moviecategory.join(",");let area=data.area.join(",");let director=data.director.join(",");let actor=data.actor.join(",");let content=data.description;let base_vod={vod_id:input,vod_name:tilte,type_name:vod_type,vod_actor:actor,vod_director:director,vod_content:content,vod_remarks:area,vod_pic:urljoin2(input,img)};let delta=200;let vod_play={};let sites=data.playlink_sites;sites.forEach(function(site){let playList="";let vodItems=[];if(data.allupinfo){let total=parseInt(data.allupinfo[site]);for(let j=1;j<total;j+=delta){let end=Math.min(total,j+delta-1);let url2=buildUrl(input,{start:j,end:end,site:site});let vod_data=JSON.parse(fetch(url2),fetch_params).data;if(vod_data.allepidetail){vod_data=vod_data.allepidetail[site];vod_data.forEach(function(item,index){vodItems.push((item.playlink_num||"")+"$"+urlDeal(item.url||""))})}else{vod_data=vod_data.defaultepisode;vod_data.forEach(function(item,index){vodItems.push((item.period||"")+(item.name||"")+"$"+urlDeal(item.url)||"")})}}}else{let item=data.playlinksdetail[site];vodItems.push((item.sort||"")+"$"+urlDeal(item.default_url||""))}if(vodItems.length>0){playList=vodItems.join("#")}if(playList.length<1){return}vod_play[site]=playList});let tabs=Object.keys(vod_play);let playUrls=[];for(let id in tabs){print("id:"+id);playUrls.push(vod_play[tabs[id]])}if(tabs.length>0){let vod_play_from=tabs.join("$$$");let vod_play_url=playUrls.join("$$$");base_vod.vod_play_from=vod_play_from;base_vod.vod_play_url=vod_play_url}VOD=base_vod;',
|
||||
搜索:'json:data.longData.rows;titleTxt||titlealias;cover;cat_name;cat_id+en_id;description',
|
||||
}
|
696
肥猫/js/豆瓣推荐.js
696
肥猫/js/豆瓣推荐.js
@ -1,696 +0,0 @@
|
||||
var rule = {
|
||||
title: 'drpy',
|
||||
host: 'https://frodo.douban.com',
|
||||
apidoc: 'https://www.doubanapi.com',
|
||||
homeUrl: '',
|
||||
searchUrl: '',
|
||||
searchable: 1,
|
||||
quickSearch: 1,
|
||||
filterable: 1,
|
||||
// 分类链接fypage参数支持1个()表达式
|
||||
url: '/?pg=fypage&class=fyclass&douban=$douban',
|
||||
filter_url: 'fl={{fl}}',
|
||||
图片来源: '@Referer=https://api.douban.com/@User-Agent=Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/113.0.0.0%20Safari/537.36',
|
||||
headers: {
|
||||
"Host": "frodo.douban.com",
|
||||
// "Host": "api.douban.com",
|
||||
"Connection": "Keep-Alive",
|
||||
"Referer": "https://servicewechat.com/wx2f9b06c1de1ccfca/84/page-frame.html",
|
||||
// "content-type": "application/json",
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat"
|
||||
},
|
||||
timeout: 5000,
|
||||
|
||||
class_name: '电影-热门&电视剧-热门&电影-筛选&电视剧-筛选&综艺-热门',
|
||||
class_url: 'hot_gaia&tv_hot&movie&tv&show_hot',
|
||||
|
||||
//class_name:'我的豆瓣&热门电影&热播剧集&热播综艺&电影筛选&电视筛选&电影榜单&电视榜单',
|
||||
//class_url:'interests&hot_gaia&tv_hot&show_hot&movie&tv&rank_list_movie&rank_list_tv',
|
||||
filter: {
|
||||
'interests': [{
|
||||
'key': 'status',
|
||||
'name': '状态',
|
||||
'value': [{
|
||||
'n': '想看',
|
||||
'v': 'mark'
|
||||
}, {
|
||||
'n': '在看',
|
||||
'v': 'doing'
|
||||
}, {
|
||||
'n': '看过',
|
||||
'v': 'done'
|
||||
}]
|
||||
}, {
|
||||
'key': 'subtype_tag',
|
||||
'name': '形式',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '电影',
|
||||
'v': 'movie'
|
||||
}, {
|
||||
'n': '电视',
|
||||
'v': 'tv'
|
||||
}]
|
||||
}, {
|
||||
'key': 'year_tag',
|
||||
'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': '2010年代',
|
||||
'v': '2010年代'
|
||||
}, {
|
||||
'n': '2000年代',
|
||||
'v': '2000年代'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '90年代'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '80年代'
|
||||
}, {
|
||||
'n': '70年代',
|
||||
'v': '70年代'
|
||||
}, {
|
||||
'n': '60年代',
|
||||
'v': '60年代'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '更早'
|
||||
}]
|
||||
}],
|
||||
'hot_gaia': [{
|
||||
'key': 'sort',
|
||||
'name': '排序',
|
||||
'value': [{
|
||||
'n': '热度',
|
||||
'v': 'recommend'
|
||||
}, {
|
||||
'n': '最新',
|
||||
'v': 'time'
|
||||
}, {
|
||||
'n': '评分',
|
||||
'v': 'rank'
|
||||
}]
|
||||
}, {
|
||||
'key': 'area',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': '全部'
|
||||
}, {
|
||||
'n': '华语',
|
||||
'v': '华语'
|
||||
}, {
|
||||
'n': '欧美',
|
||||
'v': '欧美'
|
||||
}, {
|
||||
'n': '韩国',
|
||||
'v': '韩国'
|
||||
}, {
|
||||
'n': '日本',
|
||||
'v': '日本'
|
||||
}]
|
||||
}],
|
||||
'tv_hot': [{
|
||||
'key': 'type',
|
||||
'name': '分类',
|
||||
'value': [{
|
||||
'n': '综合',
|
||||
'v': 'tv_hot'
|
||||
}, {
|
||||
'n': '国产剧',
|
||||
'v': 'tv_domestic'
|
||||
}, {
|
||||
'n': '欧美剧',
|
||||
'v': 'tv_american'
|
||||
}, {
|
||||
'n': '日剧',
|
||||
'v': 'tv_japanese'
|
||||
}, {
|
||||
'n': '韩剧',
|
||||
'v': 'tv_korean'
|
||||
}, {
|
||||
'n': '动画',
|
||||
'v': 'tv_animation'
|
||||
}]
|
||||
}],
|
||||
'show_hot': [{
|
||||
'key': 'type',
|
||||
'name': '分类',
|
||||
'value': [{
|
||||
'n': '综合',
|
||||
'v': 'show_hot'
|
||||
}, {
|
||||
'n': '国内',
|
||||
'v': 'show_domestic'
|
||||
}, {
|
||||
'n': '国外',
|
||||
'v': 'show_foreign'
|
||||
}]
|
||||
}],
|
||||
'movie': [{
|
||||
'key': '类型',
|
||||
'name': '类型',
|
||||
'value': [{
|
||||
'n': '全部类型',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '喜剧',
|
||||
'v': '喜剧'
|
||||
}, {
|
||||
'n': '爱情',
|
||||
'v': '爱情'
|
||||
}, {
|
||||
'n': '动作',
|
||||
'v': '动作'
|
||||
}, {
|
||||
'n': '科幻',
|
||||
'v': '科幻'
|
||||
}, {
|
||||
'n': '动画',
|
||||
'v': '动画'
|
||||
}, {
|
||||
'n': '悬疑',
|
||||
'v': '悬疑'
|
||||
}, {
|
||||
'n': '犯罪',
|
||||
'v': '犯罪'
|
||||
}, {
|
||||
'n': '惊悚',
|
||||
'v': '惊悚'
|
||||
}, {
|
||||
'n': '冒险',
|
||||
'v': '冒险'
|
||||
}, {
|
||||
'n': '音乐',
|
||||
'v': '音乐'
|
||||
}, {
|
||||
'n': '历史',
|
||||
'v': '历史'
|
||||
}, {
|
||||
'n': '奇幻',
|
||||
'v': '奇幻'
|
||||
}, {
|
||||
'n': '恐怖',
|
||||
'v': '恐怖'
|
||||
}, {
|
||||
'n': '战争',
|
||||
'v': '战争'
|
||||
}, {
|
||||
'n': '传记',
|
||||
'v': '传记'
|
||||
}, {
|
||||
'n': '歌舞',
|
||||
'v': '歌舞'
|
||||
}, {
|
||||
'n': '武侠',
|
||||
'v': '武侠'
|
||||
}, {
|
||||
'n': '情色',
|
||||
'v': '情色'
|
||||
}, {
|
||||
'n': '灾难',
|
||||
'v': '灾难'
|
||||
}, {
|
||||
'n': '西部',
|
||||
'v': '西部'
|
||||
}, {
|
||||
'n': '纪录片',
|
||||
'v': '纪录片'
|
||||
}, {
|
||||
'n': '短片',
|
||||
'v': '短片'
|
||||
}]
|
||||
}, {
|
||||
'key': '地区',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部地区',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '华语',
|
||||
'v': '华语'
|
||||
}, {
|
||||
'n': '欧美',
|
||||
'v': '欧美'
|
||||
}, {
|
||||
'n': '韩国',
|
||||
'v': '韩国'
|
||||
}, {
|
||||
'n': '日本',
|
||||
'v': '日本'
|
||||
}, {
|
||||
'n': '中国大陆',
|
||||
'v': '中国大陆'
|
||||
}, {
|
||||
'n': '美国',
|
||||
'v': '美国'
|
||||
}, {
|
||||
'n': '中国香港',
|
||||
'v': '中国香港'
|
||||
}, {
|
||||
'n': '中国台湾',
|
||||
'v': '中国台湾'
|
||||
}, {
|
||||
'n': '英国',
|
||||
'v': '英国'
|
||||
}, {
|
||||
'n': '法国',
|
||||
'v': '法国'
|
||||
}, {
|
||||
'n': '德国',
|
||||
'v': '德国'
|
||||
}, {
|
||||
'n': '意大利',
|
||||
'v': '意大利'
|
||||
}, {
|
||||
'n': '西班牙',
|
||||
'v': '西班牙'
|
||||
}, {
|
||||
'n': '印度',
|
||||
'v': '印度'
|
||||
}, {
|
||||
'n': '泰国',
|
||||
'v': '泰国'
|
||||
}, {
|
||||
'n': '俄罗斯',
|
||||
'v': '俄罗斯'
|
||||
}, {
|
||||
'n': '加拿大',
|
||||
'v': '加拿大'
|
||||
}, {
|
||||
'n': '澳大利亚',
|
||||
'v': '澳大利亚'
|
||||
}, {
|
||||
'n': '爱尔兰',
|
||||
'v': '爱尔兰'
|
||||
}, {
|
||||
'n': '瑞典',
|
||||
'v': '瑞典'
|
||||
}, {
|
||||
'n': '巴西',
|
||||
'v': '巴西'
|
||||
}, {
|
||||
'n': '丹麦',
|
||||
'v': '丹麦'
|
||||
}]
|
||||
}, /*{
|
||||
'key': 'sort',
|
||||
'name': '排序',
|
||||
'value': [{
|
||||
'n': '近期热度',
|
||||
'v': 'T'
|
||||
}, {
|
||||
'n': '首映时间',
|
||||
'v': 'R'
|
||||
}, {
|
||||
'n': '高分优先',
|
||||
'v': 'S'
|
||||
}]
|
||||
},*/ {
|
||||
'key': '年代',
|
||||
'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': '2010年代',
|
||||
'v': '2010年代'
|
||||
}, {
|
||||
'n': '2000年代',
|
||||
'v': '2000年代'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '90年代'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '80年代'
|
||||
}, {
|
||||
'n': '70年代',
|
||||
'v': '70年代'
|
||||
}, {
|
||||
'n': '60年代',
|
||||
'v': '60年代'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '更早'
|
||||
}]
|
||||
}],
|
||||
'tv': [{
|
||||
'key': '类型',
|
||||
'name': '类型',
|
||||
'value': [{
|
||||
'n': '不限',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '电视剧',
|
||||
'v': '电视剧'
|
||||
}, {
|
||||
'n': '综艺',
|
||||
'v': '综艺'
|
||||
}]
|
||||
}, {
|
||||
'key': '电视剧形式',
|
||||
'name': '电视',
|
||||
'value': [{
|
||||
'n': '不限',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '喜剧',
|
||||
'v': '喜剧'
|
||||
}, {
|
||||
'n': '爱情',
|
||||
'v': '爱情'
|
||||
}, {
|
||||
'n': '悬疑',
|
||||
'v': '悬疑'
|
||||
}, {
|
||||
'n': '动画',
|
||||
'v': '动画'
|
||||
}, {
|
||||
'n': '武侠',
|
||||
'v': '武侠'
|
||||
}, {
|
||||
'n': '古装',
|
||||
'v': '古装'
|
||||
}, {
|
||||
'n': '家庭',
|
||||
'v': '家庭'
|
||||
}, {
|
||||
'n': '犯罪',
|
||||
'v': '犯罪'
|
||||
}, {
|
||||
'n': '科幻',
|
||||
'v': '科幻'
|
||||
}, {
|
||||
'n': '恐怖',
|
||||
'v': '恐怖'
|
||||
}, {
|
||||
'n': '历史',
|
||||
'v': '历史'
|
||||
}, {
|
||||
'n': '战争',
|
||||
'v': '战争'
|
||||
}, {
|
||||
'n': '动作',
|
||||
'v': '动作'
|
||||
}, {
|
||||
'n': '冒险',
|
||||
'v': '冒险'
|
||||
}, {
|
||||
'n': '传记',
|
||||
'v': '传记'
|
||||
}, {
|
||||
'n': '剧情',
|
||||
'v': '剧情'
|
||||
}, {
|
||||
'n': '奇幻',
|
||||
'v': '奇幻'
|
||||
}, {
|
||||
'n': '惊悚',
|
||||
'v': '惊悚'
|
||||
}, {
|
||||
'n': '灾难',
|
||||
'v': '灾难'
|
||||
}, {
|
||||
'n': '歌舞',
|
||||
'v': '歌舞'
|
||||
}, {
|
||||
'n': '音乐',
|
||||
'v': '音乐'
|
||||
}]
|
||||
}, {
|
||||
'key': '综艺形式',
|
||||
'name': '综艺',
|
||||
'value': [{
|
||||
'n': '不限',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '真人秀',
|
||||
'v': '真人秀'
|
||||
}, {
|
||||
'n': '脱口秀',
|
||||
'v': '脱口秀'
|
||||
}, {
|
||||
'n': '音乐',
|
||||
'v': '音乐'
|
||||
}, {
|
||||
'n': '歌舞',
|
||||
'v': '歌舞'
|
||||
}]
|
||||
}, {
|
||||
'key': '地区',
|
||||
'name': '地区',
|
||||
'value': [{
|
||||
'n': '全部地区',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '华语',
|
||||
'v': '华语'
|
||||
}, {
|
||||
'n': '欧美',
|
||||
'v': '欧美'
|
||||
}, {
|
||||
'n': '国外',
|
||||
'v': '国外'
|
||||
}, {
|
||||
'n': '韩国',
|
||||
'v': '韩国'
|
||||
}, {
|
||||
'n': '日本',
|
||||
'v': '日本'
|
||||
}, {
|
||||
'n': '中国大陆',
|
||||
'v': '中国大陆'
|
||||
}, {
|
||||
'n': '中国香港',
|
||||
'v': '中国香港'
|
||||
}, {
|
||||
'n': '美国',
|
||||
'v': '美国'
|
||||
}, {
|
||||
'n': '英国',
|
||||
'v': '英国'
|
||||
}, {
|
||||
'n': '泰国',
|
||||
'v': '泰国'
|
||||
}, {
|
||||
'n': '中国台湾',
|
||||
'v': '中国台湾'
|
||||
}, {
|
||||
'n': '意大利',
|
||||
'v': '意大利'
|
||||
}, {
|
||||
'n': '法国',
|
||||
'v': '法国'
|
||||
}, {
|
||||
'n': '德国',
|
||||
'v': '德国'
|
||||
}, {
|
||||
'n': '西班牙',
|
||||
'v': '西班牙'
|
||||
}, {
|
||||
'n': '俄罗斯',
|
||||
'v': '俄罗斯'
|
||||
}, {
|
||||
'n': '瑞典',
|
||||
'v': '瑞典'
|
||||
}, {
|
||||
'n': '巴西',
|
||||
'v': '巴西'
|
||||
}, {
|
||||
'n': '丹麦',
|
||||
'v': '丹麦'
|
||||
}, {
|
||||
'n': '印度',
|
||||
'v': '印度'
|
||||
}, {
|
||||
'n': '加拿大',
|
||||
'v': '加拿大'
|
||||
}, {
|
||||
'n': '爱尔兰',
|
||||
'v': '爱尔兰'
|
||||
}, {
|
||||
'n': '澳大利亚',
|
||||
'v': '澳大利亚'
|
||||
}]
|
||||
},
|
||||
/*{
|
||||
'key': 'sort',
|
||||
'name': '排序',
|
||||
'value': [{
|
||||
'n': '近期热度',
|
||||
'v': 'T'
|
||||
}, {
|
||||
'n': '首播时间',
|
||||
'v': 'R'
|
||||
}, {
|
||||
'n': '高分优先',
|
||||
'v': 'S'
|
||||
}]
|
||||
}, */
|
||||
{
|
||||
'key': '年代',
|
||||
'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': '2010年代',
|
||||
'v': '2010年代'
|
||||
}, {
|
||||
'n': '2000年代',
|
||||
'v': '2000年代'
|
||||
}, {
|
||||
'n': '90年代',
|
||||
'v': '90年代'
|
||||
}, {
|
||||
'n': '80年代',
|
||||
'v': '80年代'
|
||||
}, {
|
||||
'n': '70年代',
|
||||
'v': '70年代'
|
||||
}, {
|
||||
'n': '60年代',
|
||||
'v': '60年代'
|
||||
}, {
|
||||
'n': '更早',
|
||||
'v': '更早'
|
||||
}]
|
||||
}, {
|
||||
'key': '平台',
|
||||
'name': '平台',
|
||||
'value': [{
|
||||
'n': '全部',
|
||||
'v': ''
|
||||
}, {
|
||||
'n': '腾讯视频',
|
||||
'v': '腾讯视频'
|
||||
}, {
|
||||
'n': '爱奇艺',
|
||||
'v': '爱奇艺'
|
||||
}, {
|
||||
'n': '优酷',
|
||||
'v': '优酷'
|
||||
}, {
|
||||
'n': '湖南卫视',
|
||||
'v': '湖南卫视'
|
||||
}, {
|
||||
'n': 'Netflix',
|
||||
'v': 'Netflix'
|
||||
}, {
|
||||
'n': 'HBO',
|
||||
'v': 'HBO'
|
||||
}, {
|
||||
'n': 'BBC',
|
||||
'v': 'BBC'
|
||||
}, {
|
||||
'n': 'NHK',
|
||||
'v': 'NHK'
|
||||
}, {
|
||||
'n': 'CBS',
|
||||
'v': 'CBS'
|
||||
}, {
|
||||
'n': 'NBC',
|
||||
'v': 'NBC'
|
||||
}, {
|
||||
'n': 'tvN',
|
||||
'v': 'tvN'
|
||||
}]
|
||||
}],
|
||||
'rank_list_movie': [{
|
||||
'key': '榜单',
|
||||
'name': '榜单',
|
||||
'value': [{
|
||||
'n': '实时热门电影',
|
||||
'v': 'movie_real_time_hotest'
|
||||
}, {
|
||||
'n': '一周口碑电影榜',
|
||||
'v': 'movie_weekly_best'
|
||||
}, {
|
||||
'n': '豆瓣电影Top250',
|
||||
'v': 'movie_top250'
|
||||
}]
|
||||
}],
|
||||
'rank_list_tv': [{
|
||||
'key': '榜单',
|
||||
'name': '榜单',
|
||||
'value': [{
|
||||
'n': '实时热门电视',
|
||||
'v': 'tv_real_time_hotest'
|
||||
}, {
|
||||
'n': '华语口碑剧集榜',
|
||||
'v': 'tv_chinese_best_weekly'
|
||||
}, {
|
||||
'n': '全球口碑剧集榜',
|
||||
'v': 'tv_global_best_weekly'
|
||||
}, {
|
||||
'n': '国内口碑综艺榜',
|
||||
'v': 'show_chinese_best_weekly'
|
||||
}, {
|
||||
'n': '国外口碑综艺榜',
|
||||
'v': 'show_global_best_weekly'
|
||||
}]
|
||||
}]
|
||||
},
|
||||
limit: 20,
|
||||
play_parse: false,
|
||||
推荐: '',
|
||||
推荐: 'js:let d=[];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function subject_real_time_hotest(){try{let res=miniapp_request("/subject_collection/subject_real_time_hotest/items",{});let lists=[];let arr=res.subject_collection_items||[];arr.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"暂无评分";let honnor=(item.honor_infos||[]).map(function(it){return it.title}).join("|");lists.append({vod_id:"msearch:"+TYPE,vod_name:item.title||"",vod_pic:item.pic.normal,vod_remarks:rating+" "+honnor})}});return lists}catch(e){print("发生了错误:"+e.message);return[]}}VODS=subject_real_time_hotest();print(VODS);',
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
lazy: '',
|
||||
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: '',
|
||||
一级: 'js:let d=[];let douban=input.split("douban=")[1].split("&")[0];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);if(/request_error/.test(html)){print(html)}return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function cate_filter(d,douban){douban=douban||"";try{let res={};if(MY_CATE==="interests"){if(douban){let status=MY_FL.status||"mark";let subtype_tag=MY_FL.subtype_tag||"";let year_tag=MY_FL.year_tag||"全部";let path="/user/"+douban+"/interests";res=miniapp_request(path,{type:"movie",status:status,subtype_tag:subtype_tag,year_tag:year_tag,start:(MY_PAGE-1)*count,count:count})}else{return{}}}else if(MY_CATE==="hot_gaia"){let sort=MY_FL.sort||"recommend";let area=MY_FL.area||"全部";let path="/movie/"+MY_CATE;res=miniapp_request(path,{area:area,sort:sort,start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE==="tv_hot"||MY_CATE==="show_hot"){let stype=MY_FL.type||MY_CATE;let path="/subject_collection/"+stype+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE.startsWith("rank_list")){let id=MY_CATE==="rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest";id=MY_FL.榜单||id;let path="/subject_collection/"+id+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else{let path="/"+MY_CATE+"/recommend";let selected_categories;let tags;let sort;if(Object.keys(MY_FL).length>0){sort=MY_FL.sort||"T";tags=Object.values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{sort="T";tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d,douban);setResult2(res);',
|
||||
二级: '',
|
||||
搜索: '',
|
||||
}
|
@ -1 +0,0 @@
|
||||
JjMCHFTzmFxNaoT2ALXZRE/xBqLeZlq68rWBgvjnM32VJblQOGcqAQdttwMAnkKisatSHhX2CXaQn99G3fGF8YEVi5uC5A208yw9C7ULZLCTdH3KQ+JKVn0zF1fH/O+7ES4p8ateIQ5FRoPXDp++O1O3oF4MNRdZH8Uc9crWu1+0dmbdcAmFOFFUACPjXFboc+dWB3n/WKwkta2e1Vr9AzQtT+eqq5EwRf2imck8/Qm/Gptl8F6Y5eVXvgVAZIJWY2A74ccn/VZO3SUCXVNliLwWhYVHWjNvgCnzoASR4PmQEO8jIfYy1oKt5/90X2sh+VQ5b2tYZP7Z9KP9zFWFT2RguROjpjtpkHoblX5jKJYXew5irl/gqeNnSBzm8MP3x+5UM979owSv7iAdpuEV61k+cVG4xdBvJ0rS3Xs6MxnFqTsMz3k1B85UkSyKP9HVnVVi/NGdtIwFScL1bz20+cAmunFiFSI1QMiIhnMR8UdaM+ZQlhLXs2MYW6neCCHQJ4LnbE88ffCG64YSw5lrRDFTWFYRAwbdDLv+ck1yVaiA/AAqUNG/fDpJoRJlukrF/gsjJKdb1toXYZmn75xMc1JvCZ/60PaExfCMbsDNTK2wcsop7AWMx0f2RZJWfdi6mAf3MUVKaf2lfWhlzPKnyDjGkokubzc8irOBcd6z/nII=
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"spider": "./spider.jar",
|
||||
"wallpaper": "http://我不是.肥猫.live/ppic/feimao.php",
|
||||
"wallpaper": "http://rihou.cc:88/壁纸",
|
||||
"lives": [
|
||||
{
|
||||
"name": "live",
|
||||
|
1307
荷城茶秀/api/alist.min.js
vendored
1307
荷城茶秀/api/alist.min.js
vendored
File diff suppressed because it is too large
Load Diff
80
饭太硬/api.json
80
饭太硬/api.json
@ -32,7 +32,7 @@
|
||||
},
|
||||
{
|
||||
"key": "酷看",
|
||||
"name": "💡酷看┃App",
|
||||
"name": "💡酷看┃秒播",
|
||||
"type": 3,
|
||||
"api": "csp_Kkys",
|
||||
"searchable": 1,
|
||||
@ -50,15 +50,21 @@
|
||||
"ext": "https://www.hdmyy.com/"
|
||||
},
|
||||
{
|
||||
"key": "Czsapp",
|
||||
"name": "📔厂长┃直连",
|
||||
"key": "追剧",
|
||||
"name": "💥追剧┃App",
|
||||
"type": 3,
|
||||
"api": "csp_Czsapp",
|
||||
"api": "csp_AppTT",
|
||||
"playerType": 2,
|
||||
"ext": "AO7TcBkd8Jqf5UgA7xXA6dVlLcc="
|
||||
},
|
||||
{
|
||||
"key": "嘀嘀",
|
||||
"name": "☀嘀嘀┃无广",
|
||||
"type": 3,
|
||||
"api": "csp_Bdys",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "https://www.czzy55.com/"
|
||||
"changeable": 1
|
||||
},
|
||||
{
|
||||
"key": "DiDuan",
|
||||
@ -82,7 +88,7 @@
|
||||
},
|
||||
{
|
||||
"key": "77",
|
||||
"name": "👒七七┃App",
|
||||
"name": "👒七七┃秒播",
|
||||
"type": 3,
|
||||
"api": "csp_Kunyu77",
|
||||
"searchable": 1,
|
||||
@ -99,6 +105,17 @@
|
||||
"changeable": 0,
|
||||
"ext": "FbjDcUxPqpfNr0QF4QvEpcoxMMdAA5wQTClJt+Hxgw4VXJLfrTSRjQjA6r70U2ONX3iG4lQWk1cgXQMSUZpbUzIYJ6iQs3+gcUVDp1lz6rcrGqDtCW4hfAf9JSR025m0+TGWMsZkVg=="
|
||||
},
|
||||
{
|
||||
"key": "Czsapp",
|
||||
"name": "📔厂长┃无广",
|
||||
"type": 3,
|
||||
"api": "csp_Czsapp",
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "https://www.czzy55.com/"
|
||||
},
|
||||
{
|
||||
"key": "毛驴",
|
||||
"name": "🍓毛驴┃直连",
|
||||
@ -110,36 +127,14 @@
|
||||
"ext": "https://www.maolvys.com/"
|
||||
},
|
||||
{
|
||||
"key": "率率",
|
||||
"name": "🌸率率┃App",
|
||||
"key": "zxzj",
|
||||
"name": "🍊在线┃外剧",
|
||||
"type": 3,
|
||||
"api": "csp_AppLd",
|
||||
"playerType": 1,
|
||||
"api": "csp_Zxzj",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "FbjSZ1FapovNr0QF4QvEpcoxb5gWXdQJE2MXqLG6ykBcSsOR7TnDygTd5bXnCjGuLD/PknUhkn0yQ2NzCIxgZAkPAofMgEqVYlhBvnhU8N1VerP8K2NTNgP+NxESztO6"
|
||||
},
|
||||
{
|
||||
"key": "小柚",
|
||||
"name": "🍊小柚┃App",
|
||||
"type": 3,
|
||||
"api": "csp_AppSK",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 0,
|
||||
"ext": "FbjPcVZY48PN/RIZ5QqOrsp7JoZYCZdLEy9R9ri6ykNdUNSIsT3IgxCP9qyzByO7ZG6Z030vgWoyXGNlCJx9KFpYXtyZ3B/cLTtO0SAclaw3AOm0fS9oLx2taGF6hg=="
|
||||
},
|
||||
{
|
||||
"key": "星奇",
|
||||
"name": "💥星奇┃App",
|
||||
"type": 3,
|
||||
"api": "csp_AppMao",
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "FbjDcUxPqpfNr0QF4QvE6sExbd4UXJxJXzdL462ywU1XScGa5G6Hj0/c+Ou1GW6rdX6N2XIhnD46QzIsRoZ8bk4fG4OYi0iCaWwRj2ddkacwFqHtLjQhalHqIy0+kpiTv2eOfJYxTshgrxcJ+g3lEHx7ZLC9kB1TCfZUSHwqHB3tt6V/1OhRENIOZNRFfXVBEFd7jQg+J06kjCAF7z1Bt8hRvMjC2VcbQXsEz8MCZDgu06C9/wirWcTa/wWJsfT+Z7fXaDs+dIWMYiwf6td5CWTx6LfL6eTuiMhs2KU5Byw9F+4Y/AHBg4r+LEe+Hm4EM2d8X3ca5zHSj+kjmpXOiGDo4TalFqgTq67eggmthCbV2d131SKc03V+5gruudQQk/Tb9e4lg6SQhA9/5kWOOM/LRmkqIxSt6d0wpu7yKKh65enwKbgasc93/HnGr6W4LuZjf6eYnS2GgRzWRE0fT5lYNmxnWeRnYuLhoZbDqslAfJzg"
|
||||
"ext": "https://www.zxzja.com/"
|
||||
},
|
||||
{
|
||||
"key": "一起看 ",
|
||||
@ -162,7 +157,7 @@
|
||||
},
|
||||
{
|
||||
"key": "csp_Bttoo",
|
||||
"name": "🍄比特┃直连",
|
||||
"name": "🍄比特┃秒播",
|
||||
"type": 3,
|
||||
"api": "csp_Bttwoo",
|
||||
"searchable": 1,
|
||||
@ -335,16 +330,6 @@
|
||||
"changeable": 0,
|
||||
"ext": "./json/MTV.json"
|
||||
},
|
||||
{
|
||||
"key": "短剧",
|
||||
"name": "🌈短剧┃在线",
|
||||
"type": 3,
|
||||
"api": "csp_Duanju",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "http://aiduanju.vip/"
|
||||
},
|
||||
{
|
||||
"key": "csp_Yj1211",
|
||||
"name": "📽️网红┃直播",
|
||||
@ -652,8 +637,7 @@
|
||||
"xinvip",
|
||||
"XAL",
|
||||
"qiqi",
|
||||
"XALS",
|
||||
"YuMi-vip"
|
||||
"XALS"
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -754,7 +738,9 @@
|
||||
],
|
||||
"regex": [
|
||||
"18.4",
|
||||
"15.1666"
|
||||
"15.1666",
|
||||
"16.5333",
|
||||
"#EXT-X-DISCONTINUITY\\r*\\n*[\\s\\S]*?#EXT-X-CUE-IN"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
File diff suppressed because one or more lines are too long
BIN
饭太硬/spider.jar
BIN
饭太硬/spider.jar
Binary file not shown.
@ -1,621 +0,0 @@
|
||||
import { Crypto, jinja2, _ } from 'assets://js/lib/cat.js';
|
||||
|
||||
let siteKey = '';
|
||||
let siteType = 0;
|
||||
|
||||
let cookie = '';
|
||||
let login = '';
|
||||
let vip = false;
|
||||
let extendObj = {};
|
||||
let bili_jct = '';
|
||||
let vod_audio_id = {
|
||||
30280: 192000,
|
||||
30232: 132000,
|
||||
30216: 64000,
|
||||
};
|
||||
|
||||
let vod_codec = {
|
||||
// 13: 'AV1',
|
||||
12: 'HEVC',
|
||||
7: 'AVC',
|
||||
};
|
||||
|
||||
const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36';
|
||||
|
||||
async function request(reqUrl, ua, buffer) {
|
||||
let res = await req(reqUrl, {
|
||||
method: 'get',
|
||||
headers: ua ? ua : { 'User-Agent': UA },
|
||||
timeout: 60000,
|
||||
buffer: buffer ? 1 : 0,
|
||||
});
|
||||
return res.content;
|
||||
}
|
||||
|
||||
async function post(reqUrl, postData, ua, posttype) {
|
||||
let res = await req(reqUrl, {
|
||||
method: 'post',
|
||||
headers: ua ? ua : { 'User-Agent': UA },
|
||||
data: postData,
|
||||
timeout: 60000,
|
||||
postType: posttype,
|
||||
});
|
||||
return res.content;
|
||||
}
|
||||
|
||||
function getHeaders() {
|
||||
const headers = {
|
||||
'User-Agent': UA,
|
||||
};
|
||||
if (!_.isEmpty(cookie)) {
|
||||
headers.cookie = cookie;
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
||||
async function getCookie() {
|
||||
let result = await req('https://www.bilibili.com', {
|
||||
method: 'get',
|
||||
headers: { 'User-Agent': UA },
|
||||
timeout: 60000,
|
||||
});
|
||||
const setCookieHeaders = result.headers['set-cookie'];
|
||||
cookie = setCookieHeaders.map((kk) => kk.split(';')[0] + ';').join('');
|
||||
}
|
||||
|
||||
async function init(cfg) {
|
||||
siteKey = cfg.skey;
|
||||
siteType = cfg.stype;
|
||||
let extend = cfg.ext;
|
||||
|
||||
if (cfg.ext.hasOwnProperty('categories')) extend = cfg.ext.categories;
|
||||
if (cfg.ext.hasOwnProperty('cookie')) cookie = cfg.ext.cookie;
|
||||
// 获取csrf
|
||||
const cookies = cookie.split(';');
|
||||
cookies.forEach(cookie => {
|
||||
if (cookie.includes('bili_jct')) {
|
||||
bili_jct = cookie.split('=')[1];
|
||||
}
|
||||
});
|
||||
|
||||
if (_.isEmpty(cookie)) await getCookie();
|
||||
let result = JSON.parse(await request('https://api.bilibili.com/x/web-interface/nav', getHeaders()));
|
||||
login = result.data.isLogin;
|
||||
vip = result.data.vipStatus;
|
||||
const ext = extend.split('#');
|
||||
const jsonData = [
|
||||
{
|
||||
key: 'order',
|
||||
name: '排序',
|
||||
value: [
|
||||
{ n: '综合排序', v: '0' },
|
||||
{ n: '最多点击', v: 'click' },
|
||||
{ n: '最新发布', v: 'pubdate' },
|
||||
{ n: '最多弹幕', v: 'dm' },
|
||||
{ n: '最多收藏', v: 'stow' },
|
||||
],
|
||||
},
|
||||
{
|
||||
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' },
|
||||
],
|
||||
},
|
||||
];
|
||||
const newarr = [];
|
||||
const d = {};
|
||||
const sc = {
|
||||
type_name: "首页",
|
||||
type_id: "首页",
|
||||
land: 1,
|
||||
ratio: 1.33,
|
||||
}
|
||||
newarr.push(sc);
|
||||
for (const kk of ext) {
|
||||
const c = {
|
||||
type_name: kk,
|
||||
type_id: kk,
|
||||
land: 1,
|
||||
ratio: 1.33,
|
||||
};
|
||||
newarr.push(c);
|
||||
d[kk] = jsonData;
|
||||
}
|
||||
if (!_.isEmpty(bili_jct)) {
|
||||
const hc = {
|
||||
type_name: "历史记录",
|
||||
type_id: "历史记录",
|
||||
land: 1,
|
||||
ratio: 1.33,
|
||||
}
|
||||
newarr.push(hc);
|
||||
}
|
||||
extendObj = {
|
||||
classes: newarr,
|
||||
filter: d,
|
||||
};
|
||||
}
|
||||
|
||||
function home(filter) {
|
||||
try {
|
||||
const jSONObject = {
|
||||
class: extendObj.classes,
|
||||
};
|
||||
if (filter) {
|
||||
jSONObject.filters = extendObj.filter;
|
||||
}
|
||||
return JSON.stringify(jSONObject);
|
||||
} catch (e) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
async function homeVod() {
|
||||
try {
|
||||
const list = [];
|
||||
const url = 'https://api.bilibili.com/x/web-interface/index/top/rcmd?ps=14&fresh_idx=1&fresh_idx_1h=1';
|
||||
|
||||
const response = await request(url, getHeaders());
|
||||
const responseData = JSON.parse(response);
|
||||
const vods = responseData.data.item;
|
||||
|
||||
for (const item of vods) {
|
||||
const vod = {};
|
||||
let imageUrl = item.pic;
|
||||
if (imageUrl.startsWith('//')) {
|
||||
imageUrl = 'https:' + imageUrl;
|
||||
}
|
||||
let cd = getFullTime(item.duration);
|
||||
|
||||
vod.vod_id = item.bvid;
|
||||
vod.vod_name = removeTags(item.title);
|
||||
vod.vod_pic = imageUrl;
|
||||
vod.vod_remarks = cd;
|
||||
vod.style = {
|
||||
type: 'rect',
|
||||
ratio: 1.33,
|
||||
},
|
||||
list.push(vod);
|
||||
}
|
||||
|
||||
const result = { list: list };
|
||||
return JSON.stringify(result);
|
||||
} catch (e) { }
|
||||
}
|
||||
|
||||
async function category(tid, page, filter, ext) {
|
||||
if (page < 1) page = 1;
|
||||
try {
|
||||
if (Object.keys(ext).length > 0 && ext.hasOwnProperty('tid') && ext['tid'].length > 0) {
|
||||
tid = ext['tid'];
|
||||
}
|
||||
let url = '';
|
||||
url = `https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword=${encodeURIComponent(tid)}`;
|
||||
|
||||
if (Object.keys(ext).length > 0) {
|
||||
for (const k in ext) {
|
||||
if (k == 'tid') {
|
||||
continue;
|
||||
}
|
||||
url += `&${encodeURIComponent(k)}=${encodeURIComponent(ext[k])}`;
|
||||
}
|
||||
}
|
||||
|
||||
url += `&page=${encodeURIComponent(page)}`;
|
||||
|
||||
if (tid == "首页") {
|
||||
url = "https://api.bilibili.com/x/web-interface/index/top/rcmd?ps=14&fresh_idx=" + page + "&fresh_idx_1h=" + page;
|
||||
} else if (tid == "历史记录") {
|
||||
url = "https://api.bilibili.com/x/v2/history?pn=" + page;
|
||||
}
|
||||
|
||||
const data = JSON.parse(await request(url, getHeaders())).data;
|
||||
let items = data.result;
|
||||
if (tid == "首页") {
|
||||
items = data.item;
|
||||
} else if (tid == "历史记录") {
|
||||
items = data;
|
||||
}
|
||||
|
||||
const videos = [];
|
||||
for (const item of items) {
|
||||
const video = {};
|
||||
let pic = item.pic;
|
||||
if (pic.startsWith('//')) {
|
||||
pic = 'https:' + pic;
|
||||
}
|
||||
let cd = getFullTime(item.duration);
|
||||
|
||||
video.vod_remarks = cd;
|
||||
video.vod_id = item.bvid;
|
||||
video.vod_name = removeTags(item.title);
|
||||
video.vod_pic = pic;
|
||||
|
||||
video.style = {
|
||||
type: 'rect',
|
||||
ratio: 1.33,
|
||||
},
|
||||
videos.push(video);
|
||||
}
|
||||
|
||||
const result = {
|
||||
page: page,
|
||||
pagecount: data.numPages ?? (page + 1),
|
||||
limit: videos.length,
|
||||
total: videos.length * (page + 1),
|
||||
list: videos,
|
||||
};
|
||||
|
||||
return JSON.stringify(result);
|
||||
} catch (e) { }
|
||||
return null;
|
||||
}
|
||||
|
||||
async function detail(ids) {
|
||||
try {
|
||||
const bvid = ids;
|
||||
const detailUrl = `https://api.bilibili.com/x/web-interface/view?bvid=${bvid}`;
|
||||
|
||||
const detailData = JSON.parse(await request(detailUrl, getHeaders())).data;
|
||||
// 记录历史
|
||||
if (!_.isEmpty(bili_jct)) {
|
||||
const historyReport = 'https://api.bilibili.com/x/v2/history/report';
|
||||
let dataPost = {
|
||||
aid: detailData.aid,
|
||||
cid: detailData.cid,
|
||||
csrf: bili_jct,
|
||||
}
|
||||
await post(historyReport, dataPost, getHeaders(), 'form');
|
||||
}
|
||||
let cd = getFullTime(detailData.duration);
|
||||
const aid = detailData.aid;
|
||||
const video = {
|
||||
vod_id: bvid,
|
||||
vod_name: detailData.title,
|
||||
vod_pic: detailData.pic,
|
||||
type_name: detailData.tname,
|
||||
vod_year: '',
|
||||
vod_area: '',
|
||||
vod_remarks: cd,
|
||||
vod_actor: '',
|
||||
vod_director: '',
|
||||
vod_content: detailData.desc,
|
||||
};
|
||||
|
||||
const playurldata = 'https://api.bilibili.com/x/player/playurl?avid=' + aid + '&cid=' + detailData.cid + '&qn=127&fnval=4048&fourk=1';
|
||||
const playurldatas = JSON.parse(await request(playurldata, getHeaders()));
|
||||
|
||||
const playurldatalist = playurldatas.data;
|
||||
const accept_quality = playurldatalist.accept_quality;
|
||||
const accept_description = playurldatalist.accept_description;
|
||||
const qualitylist = [];
|
||||
const descriptionList = [];
|
||||
|
||||
for (let i = 0; i < accept_quality.length; i++) {
|
||||
if (!vip) {
|
||||
if (!login) {
|
||||
if (accept_quality[i] > 32) continue;
|
||||
} else {
|
||||
if (accept_quality[i] > 80) continue;
|
||||
}
|
||||
}
|
||||
descriptionList.push(base64Encode(accept_description[i]));
|
||||
qualitylist.push(accept_quality[i]);
|
||||
}
|
||||
|
||||
let treeMap = {};
|
||||
const jSONArray = detailData.pages;
|
||||
let playList = [];
|
||||
for (let j = 0; j < jSONArray.length; j++) {
|
||||
const jSONObject6 = jSONArray[j];
|
||||
const cid = jSONObject6.cid;
|
||||
const playUrl = j + '$' + aid + '+' + cid + '+' + qualitylist.join(':') + '+' + descriptionList.join(':');
|
||||
playList.push(playUrl);
|
||||
}
|
||||
treeMap['dash'] = playList.join('#');
|
||||
treeMap['mp4'] = playList.join('#');
|
||||
|
||||
const relatedUrl = 'https://api.bilibili.com/x/web-interface/archive/related?bvid=' + bvid;
|
||||
const relatedData = JSON.parse(await request(relatedUrl, getHeaders())).data;
|
||||
playList = [];
|
||||
for (let j = 0; j < relatedData.length; j++) {
|
||||
const jSONObject6 = relatedData[j];
|
||||
const cid = jSONObject6.cid;
|
||||
const title = jSONObject6.title;
|
||||
const aaid = jSONObject6.aid;
|
||||
const playUrl = title + '$' + aaid + '+' + cid + '+' + qualitylist.join(':') + '+' + descriptionList.join(':');
|
||||
playList.push(playUrl);
|
||||
}
|
||||
treeMap['相关'] = playList.join('#');
|
||||
|
||||
video.vod_play_from = Object.keys(treeMap).join("$$$");
|
||||
video.vod_play_url = Object.values(treeMap).join("$$$");
|
||||
|
||||
const list = [video];
|
||||
const result = { list };
|
||||
return JSON.stringify(result);
|
||||
} catch (e) { }
|
||||
return null;
|
||||
}
|
||||
|
||||
async function play(flag, id, flags) {
|
||||
try {
|
||||
const playHeaders = { Referer: 'https://www.bilibili.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' };
|
||||
const ids = id.split('+');
|
||||
const aid = ids[0];
|
||||
const cid = ids[1];
|
||||
const qualityIds = ids[2].split(':');
|
||||
const qualityName = ids[3].split(':');
|
||||
const dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + cid;
|
||||
if (flag == 'dash' || flag == '相关') {
|
||||
// dash mpd 代理
|
||||
const js2Base = await js2Proxy(true, siteType, siteKey, 'dash/', {});
|
||||
let urls = [];
|
||||
for (let i = 0; i < qualityIds.length; i++) {
|
||||
urls.push(base64Decode(qualityName[i]), js2Base + base64Encode(aid + '+' + cid + '+' + qualityIds[i]));
|
||||
}
|
||||
return JSON.stringify({
|
||||
parse: 0,
|
||||
url: urls,
|
||||
danmaku: dan,
|
||||
header: playHeaders,
|
||||
});
|
||||
} else if (flag == 'mp4') {
|
||||
// 直链
|
||||
let urls = [];
|
||||
for (let i = 0; i < qualityIds.length; i++) {
|
||||
const url = `https://api.bilibili.com/x/player/playurl?avid=${aid}&cid=${cid}&qn=${qualityIds[i]}&fourk=1`;
|
||||
const resp = JSON.parse(await request(url, getHeaders()));
|
||||
const data = resp.data;
|
||||
if (data.quality != qualityIds[i]) continue;
|
||||
let durl = data.durl[0].url;
|
||||
urls.push(base64Decode(qualityName[i]), durl);
|
||||
}
|
||||
|
||||
return JSON.stringify({
|
||||
parse: 0,
|
||||
url: urls,
|
||||
danmaku: dan,
|
||||
header: playHeaders,
|
||||
});
|
||||
} else {
|
||||
// 音频外挂
|
||||
let urls = [];
|
||||
let audios = [];
|
||||
for (let i = 0; i < qualityIds.length; i++) {
|
||||
const url = `https://api.bilibili.com/x/player/playurl?avid=${aid}&cid=${cid}&qn=${qualityIds[i]}&fnval=4048&fourk=1`;
|
||||
let resp = JSON.parse(await request(url, getHeaders()));
|
||||
const dash = resp.data.dash;
|
||||
const video = dash.video;
|
||||
const audio = dash.audio;
|
||||
for (let j = 0; j < video.length; j++) {
|
||||
const dashjson = video[j];
|
||||
if (dashjson.id == qualityIds[i]) {
|
||||
for (const key in vod_codec) {
|
||||
if (dashjson.codecid == key) {
|
||||
urls.push(base64Decode(qualityName[i]) + ' ' + vod_codec[key], dashjson.baseUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (audios.length == 0) {
|
||||
for (let j = 0; j < audio.length; j++) {
|
||||
const dashjson = audio[j];
|
||||
for (const key in vod_audio_id) {
|
||||
if (dashjson.id == key) {
|
||||
audios.push({
|
||||
title: _.floor(parseInt(vod_audio_id[key]) / 1024) + 'Kbps',
|
||||
bit: vod_audio_id[key],
|
||||
url: dashjson.baseUrl,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
audios = _.sortBy(audios, 'bit');
|
||||
}
|
||||
}
|
||||
|
||||
return JSON.stringify({
|
||||
parse: 0,
|
||||
url: urls,
|
||||
extra: {
|
||||
audio: audios,
|
||||
},
|
||||
header: playHeaders,
|
||||
});
|
||||
}
|
||||
} catch (e) { }
|
||||
return null;
|
||||
}
|
||||
|
||||
async function search(key, quick, pg) {
|
||||
let page = pg || 1;
|
||||
if (page == 0) page = 1;
|
||||
try {
|
||||
const ext = {
|
||||
duration: '0',
|
||||
};
|
||||
let resp = JSON.parse(await category(key, page, true, ext));
|
||||
const catVideos = resp.list;
|
||||
const pageCount = resp.pagecount;
|
||||
const videos = [];
|
||||
for (let i = 0; i < catVideos.length; ++i) {
|
||||
videos.push(catVideos[i]);
|
||||
}
|
||||
const result = {
|
||||
page: page,
|
||||
pagecount: pageCount,
|
||||
land: 1,
|
||||
ratio: 1.33,
|
||||
list: videos,
|
||||
};
|
||||
return JSON.stringify(result);
|
||||
} catch (e) { }
|
||||
return null;
|
||||
}
|
||||
|
||||
async function proxy(segments, headers) {
|
||||
let what = segments[0];
|
||||
let url = base64Decode(segments[1]);
|
||||
if (what == 'dash') {
|
||||
const ids = url.split('+');
|
||||
const aid = ids[0];
|
||||
const cid = ids[1];
|
||||
const str5 = ids[2];
|
||||
const urls = `https://api.bilibili.com/x/player/playurl?avid=${aid}&cid=${cid}&qn=${str5}&fnval=4048&fourk=1`;
|
||||
let videoList = '';
|
||||
let audioList = '';
|
||||
|
||||
let resp = JSON.parse(await request(urls, getHeaders()));
|
||||
const dash = resp.data.dash;
|
||||
const video = dash.video;
|
||||
const audio = dash.audio;
|
||||
|
||||
for (let i = 0; i < video.length; i++) {
|
||||
// if (i > 0) continue; // 只取一个
|
||||
const dashjson = video[i];
|
||||
if (dashjson.id == str5) {
|
||||
videoList += getDashMedia(dashjson);
|
||||
}
|
||||
}
|
||||
|
||||
for (let i = 0; i < audio.length; i++) {
|
||||
// if (i > 0) continue;
|
||||
const ajson = audio[i];
|
||||
for (const key in vod_audio_id) {
|
||||
if (ajson.id == key) {
|
||||
audioList += getDashMedia(ajson);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let mpd = getDash(resp, videoList, audioList);
|
||||
|
||||
return JSON.stringify({
|
||||
code: 200,
|
||||
content: mpd,
|
||||
headers: {
|
||||
'Content-Type': 'application/dash+xml',
|
||||
},
|
||||
});
|
||||
}
|
||||
return JSON.stringify({
|
||||
code: 500,
|
||||
content: '',
|
||||
});
|
||||
}
|
||||
|
||||
function getDashMedia(dash) {
|
||||
try {
|
||||
let qnid = dash.id;
|
||||
const codecid = dash.codecid;
|
||||
const media_codecs = dash.codecs;
|
||||
const media_bandwidth = dash.bandwidth;
|
||||
const media_startWithSAP = dash.startWithSap;
|
||||
const media_mimeType = dash.mimeType;
|
||||
const media_BaseURL = dash.baseUrl.replace(/&/g, '&');
|
||||
const media_SegmentBase_indexRange = dash.SegmentBase.indexRange;
|
||||
const media_SegmentBase_Initialization = dash.SegmentBase.Initialization;
|
||||
const mediaType = media_mimeType.split('/')[0];
|
||||
let media_type_params = '';
|
||||
|
||||
if (mediaType == 'video') {
|
||||
const media_frameRate = dash.frameRate;
|
||||
const media_sar = dash.sar;
|
||||
const media_width = dash.width;
|
||||
const media_height = dash.height;
|
||||
media_type_params = `height='${media_height}' width='${media_width}' frameRate='${media_frameRate}' sar='${media_sar}'`;
|
||||
} else if (mediaType == 'audio') {
|
||||
for (const key in vod_audio_id) {
|
||||
if (qnid == key) {
|
||||
const audioSamplingRate = vod_audio_id[key];
|
||||
media_type_params = `numChannels='2' sampleRate='${audioSamplingRate}'`;
|
||||
}
|
||||
}
|
||||
}
|
||||
qnid += '_' + codecid;
|
||||
|
||||
return `<AdaptationSet lang="chi">
|
||||
<ContentComponent contentType="${mediaType}"/>
|
||||
<Representation id="${qnid}" bandwidth="${media_bandwidth}" codecs="${media_codecs}" mimeType="${media_mimeType}" ${media_type_params} startWithSAP="${media_startWithSAP}">
|
||||
<BaseURL>${media_BaseURL}</BaseURL>
|
||||
<SegmentBase indexRange="${media_SegmentBase_indexRange}">
|
||||
<Initialization range="${media_SegmentBase_Initialization}"/>
|
||||
</SegmentBase>
|
||||
</Representation>
|
||||
</AdaptationSet>`;
|
||||
} catch (e) {
|
||||
// Handle exceptions here
|
||||
}
|
||||
}
|
||||
|
||||
function getDash(ja, videoList, audioList) {
|
||||
const duration = ja.data.dash.duration;
|
||||
const minBufferTime = ja.data.dash.minBufferTime;
|
||||
return `<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" type="static" mediaPresentationDuration="PT${duration}S" minBufferTime="PT${minBufferTime}S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
|
||||
<Period duration="PT${duration}S" start="PT0S">
|
||||
${videoList}
|
||||
${audioList}
|
||||
</Period>
|
||||
</MPD>`;
|
||||
}
|
||||
|
||||
|
||||
function base64Encode(text) {
|
||||
return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text));
|
||||
}
|
||||
|
||||
function base64Decode(text) {
|
||||
return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
|
||||
}
|
||||
|
||||
|
||||
|
||||
function removeTags(input) {
|
||||
return input.replace(/<[^>]*>/g, '');
|
||||
}
|
||||
|
||||
function getFullTime(numberSec) {
|
||||
let totalSeconds = '';
|
||||
try {
|
||||
var timeParts = numberSec.split(":");
|
||||
var min = parseInt(timeParts[0]);
|
||||
var sec = parseInt(timeParts[1]);
|
||||
totalSeconds = min * 60 + sec;
|
||||
} catch (e) {
|
||||
totalSeconds = parseInt(numberSec);
|
||||
}
|
||||
if (isNaN(totalSeconds)) {
|
||||
return '无效输入';
|
||||
}
|
||||
if (totalSeconds >= 3600) {
|
||||
const hours = Math.floor(totalSeconds / 3600);
|
||||
const remainingSecondsAfterHours = totalSeconds % 3600;
|
||||
const minutes = Math.floor(remainingSecondsAfterHours / 60);
|
||||
const seconds = remainingSecondsAfterHours % 60;
|
||||
return `${hours}小时 ${minutes}分钟 ${seconds}秒`;
|
||||
} else {
|
||||
const minutes = Math.floor(totalSeconds / 60);
|
||||
const seconds = totalSeconds % 60;
|
||||
return `${minutes}分钟 ${seconds}秒`;
|
||||
}
|
||||
}
|
||||
|
||||
export function __jsEvalReturn() {
|
||||
return {
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
proxy: proxy,
|
||||
search: search,
|
||||
};
|
||||
}
|
||||
|
@ -62,10 +62,4 @@ export function gbkTool() {
|
||||
});
|
||||
}
|
||||
};
|
||||
}[\w]{2}/g,function(a){
|
||||
return decodeURIComponent(a);
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
1476
骚零/lives/白嫖.txt
1476
骚零/lives/白嫖.txt
File diff suppressed because it is too large
Load Diff
BIN
骚零/spider.jar
BIN
骚零/spider.jar
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user