mirror of
https://github.com/qist/tvbox.git
synced 2025-01-24 19:44:54 +08:00
Delete Js directory
This commit is contained in:
parent
12decbab07
commit
3d9e928c25
@ -1,7 +0,0 @@
|
||||
muban.首图2.二级.tabs = '.nav-tabs.dpplay&&li';
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'007影视',
|
||||
host:'https://www.007ts.me',
|
||||
url:'/channel/fyclass-fypage.html',
|
||||
searchUrl:'/search/**----------fypage---.html',
|
||||
});
|
@ -1,7 +0,0 @@
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'1080P',
|
||||
host:'https://1080p.tv',
|
||||
url:'/vodshow/fyclass--------fypage---/',
|
||||
searchUrl:'/vodsearch/**----------fypage---/',
|
||||
class_parse:'.navbar-items li:gt(1):lt(7);a&&Text;a&&href;.*/(.*?)/',
|
||||
});
|
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',
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'555影视',
|
||||
// host:'https://www.555dy.app',
|
||||
host:'https://www.555yy2.com/',
|
||||
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent':'MOBILE_UA',
|
||||
"Cookie": "searchneed=ok"
|
||||
},
|
||||
});
|
@ -1,8 +0,0 @@
|
||||
muban.海螺3.二级.desc = '.hl-text-conch&&Text';
|
||||
var rule = Object.assign(muban.海螺3,{
|
||||
title:'AnFuns动漫',
|
||||
host:'https://www.anfuns.cc',
|
||||
cate_exclude: '最新|排行',
|
||||
url:'/type/fyclass-fypage.html',
|
||||
searchUrl:'/search/page/fypage/wd/**.html',
|
||||
});
|
@ -1,8 +0,0 @@
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'LIBVIO',
|
||||
// host:'https://www.libvio.me',
|
||||
host:'https://www.libvio.fun',
|
||||
url:'/type/fyclass-fypage.html',
|
||||
class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
searchUrl:'/search/**----------fypage---.html',
|
||||
});
|
@ -1,26 +0,0 @@
|
||||
# c=[];for(let i in a){c.push(i+','+a[i])}d=c.join('\n');console.log(d);
|
||||
🔮嗨翻,https://pan.hikerfans.com
|
||||
🦀9T(Adult),https://drive.9t.ee
|
||||
🐱梓澪の妙妙屋,https://xn--i0v44m.xyz
|
||||
🚆资源小站,https://pan.142856.xyz
|
||||
🌤晴园的宝藏库,https://alist.52qy.repl.co
|
||||
🐭米奇妙妙屋,https://anime.mqmmw.ga
|
||||
💂小兵组网盘影视,https://6vv.app
|
||||
📀小光盘,https://alist.xiaoguanxiaocheng.life
|
||||
🐋一只鱼,https://alist.youte.ml
|
||||
🌊七米蓝,https://al.chirmyram.com
|
||||
🌴非盘,http://www.feifwp.top
|
||||
🥼帅盘,https://hi.shuaipeng.wang
|
||||
🐉神族九帝,https://alist.shenzjd.com
|
||||
☃姬路白雪,https://pan.jlbx.xyz
|
||||
🎧听闻网盘,https://wangpan.sangxuesheng.com
|
||||
💾DISK,http://124.222.140.243:8080
|
||||
🌨云播放,https://quanzi.laoxianghuijia.cn
|
||||
✨星梦,https://pan.bashroot.top
|
||||
🌊小江,https://dyj.me
|
||||
💫触光,https://pan.ichuguang.com
|
||||
🕵好汉吧,https://8023.haohanba.cn
|
||||
🥗AUNEY,http://121.227.25.116:8008
|
||||
🎡资源小站,https://960303.xyz/
|
||||
🏝fenwe,http://www.fenwe.tk:5244
|
||||
🎢轻弹浅唱,https://g.xiang.lol
|
270
Js/alist.js
270
Js/alist.js
@ -1,270 +0,0 @@
|
||||
import _ from 'https://underscorejs.org/underscore-esm-min.js'
|
||||
import { distance } from 'https://unpkg.com/fastest-levenshtein@1.0.16/esm/mod.js'
|
||||
|
||||
/**
|
||||
* alist js
|
||||
* 配置设置 {"key":"Alist","name":"Alist","type":3,"api":"http://xxx.com/alist.js","searchable":0,"quickSearch":0,"filterable":0,"ext":"http://xxx.com/alist.json"}
|
||||
* alist.json [{
|
||||
name:'名称',
|
||||
server:'地址',
|
||||
startPage:'/', //启动文件夹
|
||||
showAll: false , //是否显示全部文件,默认false只显示 视频和文件夹
|
||||
params:{ //对应文件夹参数 如设置对应文件夹的密码
|
||||
'/abc':{ password : '123' },
|
||||
'/abc/abc':{ password : '123' },
|
||||
}
|
||||
}]
|
||||
* 提示 想要加载文件夹里面全部视频到详情(看剧可以自动播放下一集支持历史记录)
|
||||
* 需要改软件才能支持,,建议长按文件夹时添加判断 tag == folder 时跳转 DetailActivity
|
||||
*/
|
||||
|
||||
const http = function (url, options = {}) {
|
||||
if(options.method =='POST' && options.data){
|
||||
options.body = JSON.stringify(options.data)
|
||||
options.headers = Object.assign({'content-type':'application/json'}, options.headers)
|
||||
}
|
||||
const res = req(url, options);
|
||||
res.json = () => res.content ? JSON.parse(res.content) : null;
|
||||
res.text = () => res.content;
|
||||
return res
|
||||
};
|
||||
["get", "post"].forEach(method => {
|
||||
http[method] = function (url, options = {}) {
|
||||
return http(url, Object.assign(options, {method: method.toUpperCase()}));
|
||||
}
|
||||
})
|
||||
|
||||
const __drives = {}
|
||||
|
||||
function get_drives_path(tid) {
|
||||
const index = tid.indexOf('$');
|
||||
const name = tid.substring(0, index);
|
||||
const path = tid.substring(index + 1)
|
||||
return { drives: get_drives(name), path }
|
||||
}
|
||||
|
||||
function get_drives(name) {
|
||||
const { settings, api, server } = __drives[name]
|
||||
if (settings.v3 == null) { //获取 设置
|
||||
settings.v3 = false
|
||||
const data = http.get(server + '/api/public/settings').json().data;
|
||||
if (_.isArray(data)) {
|
||||
settings.title = data.find(x => x.key == 'title')?.value;
|
||||
settings.v3 = false;
|
||||
settings.version = data.find(x => x.key == 'version')?.value;
|
||||
settings.enableSearch = data.find(x => x.key == 'enable search')?.value == 'true';
|
||||
} else {
|
||||
settings.title = data.title;
|
||||
settings.v3 = true;
|
||||
settings.version = data.version;
|
||||
settings.enableSearch = false; //v3 没有找到 搜索配置
|
||||
}
|
||||
//不同版本 接口不一样
|
||||
api.path = settings.v3 ? '/api/fs/list' : '/api/public/path';
|
||||
api.file = settings.v3 ? '/api/fs/get' : '/api/public/path';
|
||||
api.search = settings.v3 ? '/api/public/search' : '/api/public/search';
|
||||
}
|
||||
return __drives[name]
|
||||
}
|
||||
|
||||
function init(ext) {
|
||||
const data = http.get(ext).json();
|
||||
data.forEach(item => __drives[item.name] = {
|
||||
name: item.name,
|
||||
server: item.server.endsWith("/") ? url.substring(0, item.server.length() - 1) : item.server,
|
||||
startPage: item.startPage || '/', //首页
|
||||
showAll: item.showAll === true, //默认只显示 视频和文件夹,如果想显示全部 showAll 设置true
|
||||
params: item.params || {},
|
||||
_path_param: item.params ? _.sortBy(Object.keys(item.params), function(x) { return -x.length }) : [],
|
||||
settings: {},
|
||||
api: {},
|
||||
getParams(path) {
|
||||
const key = this._path_param.find(x => path.startsWith(x))
|
||||
return Object.assign({}, this.params[key], { path })
|
||||
},
|
||||
getPath(path) {
|
||||
const res = http.post(this.server + this.api.path, { data: this.getParams(path) }).json()
|
||||
return this.settings.v3 ? res.data.content : res.data.files
|
||||
},
|
||||
getFile(path) {
|
||||
const res = http.post(this.server + this.api.file, { data: this.getParams(path) }).json()
|
||||
const data = this.settings.v3 ? res.data : res.data.files[0]
|
||||
if (!this.settings.v3) data.raw_url = data.url //v2 的url和v3不一样
|
||||
return data
|
||||
},
|
||||
isFolder(data) { return data.type == 1 },
|
||||
isVideo(data) { //判断是否是 视频文件
|
||||
return this.settings.v3 ? data.type == 2 : data.type == 3
|
||||
},
|
||||
is_subt(data) {
|
||||
if (data.type == 1) return false
|
||||
const ext = [".srt", ".ass", ".scc", ".stl", ".ttml"]
|
||||
return ext.some(x => data.name.endsWith(x))
|
||||
},
|
||||
getPic(data) {
|
||||
let pic = this.settings.v3 ? data.thumb : data.thumbnail;
|
||||
return pic || (this.isFolder(data) ? "http://img1.3png.com/281e284a670865a71d91515866552b5f172b.png" : '')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function home(filter) {
|
||||
let classes = Object.keys(__drives).map(key => ({
|
||||
type_id: `${key}$${__drives[key].startPage}`,
|
||||
type_name: key,
|
||||
type_flag: '1',
|
||||
}))
|
||||
return JSON.stringify({ 'class': classes });
|
||||
}
|
||||
|
||||
function homeVod(params) {
|
||||
return JSON.stringify({ 'list': [] })
|
||||
}
|
||||
|
||||
function category(tid, pg, filter, extend) {
|
||||
let { drives, path } = get_drives_path(tid)
|
||||
const id = tid.endsWith('/') ? tid : tid + '/'
|
||||
const list = drives.getPath(path)
|
||||
let subList = []
|
||||
let vodFiles = []
|
||||
let allList = []
|
||||
list.forEach(item => {
|
||||
if (drives.is_subt(item)) subList.push(item.name)
|
||||
if (!drives.showAll && !drives.isFolder(item) && !drives.isVideo(item)) return //只显示视频文件和文件夹
|
||||
let remark = get_size(item.size)
|
||||
const vod = {
|
||||
'vod_id': id + item.name + (drives.isFolder(item) ? '/' : ''),
|
||||
'vod_name': item.name.replaceAll("$", "").replaceAll("#", ""),
|
||||
'vod_pic': drives.getPic(item),
|
||||
'vod_tag': drives.isFolder(item) ? 'folder' : 'file',
|
||||
'vod_remarks': drives.isFolder(item) ? remark + ' 文件夹' : remark
|
||||
}
|
||||
if (drives.isVideo(item)) vodFiles.push(vod)
|
||||
allList.push(vod)
|
||||
})
|
||||
|
||||
if (vodFiles.length == 1 && subList.length > 0) { //只有一个视频 一个或者多个字幕 取相似度最高的
|
||||
let sub = subList.length == 1 ? subList[0] : _.chain(allList).sortBy(x => (x.includes('chs') ? 100 : 0) + levenshteinDistance(x, vodFiles[0].vod_name)).last().value()
|
||||
vodFiles[0].vod_id += "@@@" + sub
|
||||
//vodFiles[0].vod_remarks += " 有字幕"
|
||||
} else {
|
||||
vodFiles.forEach(item => {
|
||||
const lh = 0
|
||||
let sub
|
||||
subList.forEach(s => {
|
||||
//编辑距离相似度
|
||||
const l = levenshteinDistance(s, item.vod_name)
|
||||
if (l > 60 && l > lh) sub = s
|
||||
})
|
||||
if (sub) {
|
||||
item.vod_id += "@@@" + sub
|
||||
//item.vod_remarks += " 有字幕"
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return JSON.stringify({
|
||||
'page': 1,
|
||||
'pagecount': 1,
|
||||
'limit': allList.length,
|
||||
'total': allList.length,
|
||||
'list': allList,
|
||||
});
|
||||
}
|
||||
|
||||
function detail(tid) {
|
||||
let { drives, path } = get_drives_path(tid)
|
||||
if (path.endsWith("/")) { //长按文件夹可以 加载里面全部视频到详情
|
||||
const content = category(tid, null, false, null)
|
||||
const { list } = JSON.parse(content)
|
||||
const vod_play_url = []
|
||||
list.forEach(x => {
|
||||
if (x.vod_tag == 'file') vod_play_url.push(`${x.vod_name}$${x.vod_id.substring(x.vod_id.indexOf('$') + 1)}`)
|
||||
})
|
||||
const pl = path.split("/");
|
||||
const vod_name = pl[pl.length - 2] || drives.name;
|
||||
let vod = {
|
||||
vod_id: tid,
|
||||
vod_name: vod_name,
|
||||
type_name: "文件夹",
|
||||
vod_pic: "https://avatars.githubusercontent.com/u/97389433?s=200&v=4",
|
||||
vod_content: tid,
|
||||
vod_tag: 'folder',
|
||||
vod_play_from: drives.name,
|
||||
vod_play_url: vod_play_url.join('#'),
|
||||
vod_remarks: drives.settings.title,
|
||||
}
|
||||
return JSON.stringify({ 'list': [vod] })
|
||||
} else {
|
||||
let paths = path.split("@@@");
|
||||
let vod_name = paths[0].substring(paths[0].lastIndexOf("/") + 1)
|
||||
let vod = {
|
||||
vod_id: tid,
|
||||
vod_name: vod_name,
|
||||
type_name: "文件",
|
||||
vod_pic: "https://avatars.githubusercontent.com/u/97389433?s=200&v=4",
|
||||
vod_content: tid,
|
||||
vod_play_from: drives.name,
|
||||
vod_play_url: vod_name + "$" + path,
|
||||
vod_remarks: drives.settings.title,
|
||||
}
|
||||
return JSON.stringify({
|
||||
'list': [vod]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function play(flag, id, flags) {
|
||||
const drives = get_drives(flag)
|
||||
const urls = id.split("@@@")
|
||||
const vod = {
|
||||
'parse': 0,
|
||||
'playUrl': '',
|
||||
'url': drives.getFile(urls[0]).raw_url
|
||||
}
|
||||
if (urls.length >= 2) {
|
||||
const path = urls[0].substring(0, urls[0].lastIndexOf('/') + 1)
|
||||
vod.subt = drives.getFile(path + urls[1]).raw_url
|
||||
}
|
||||
return JSON.stringify(vod)
|
||||
}
|
||||
|
||||
function search(wd, quick) {
|
||||
return JSON.stringify({
|
||||
'list': []
|
||||
});
|
||||
}
|
||||
|
||||
function get_size(sz) {
|
||||
if (sz <= 0) return "";
|
||||
let filesize = "";
|
||||
if (sz > 1024 * 1024 * 1024 * 1024.0) {
|
||||
sz /= (1024 * 1024 * 1024 * 1024.0);
|
||||
filesize = "TB";
|
||||
} else if (sz > 1024 * 1024 * 1024.0) {
|
||||
sz /= (1024 * 1024 * 1024.0);
|
||||
filesize = "GB";
|
||||
} else if (sz > 1024 * 1024.0) {
|
||||
sz /= (1024 * 1024.0);
|
||||
filesize = "MB";
|
||||
} else {
|
||||
sz /= 1024.0;
|
||||
filesize = "KB";
|
||||
}
|
||||
return sz.toFixed(2) + filesize
|
||||
}
|
||||
|
||||
function levenshteinDistance(str1, str2) {
|
||||
return 100 - 100 * distance(str1, str2) / Math.max(str1.length, str2.length)
|
||||
}
|
||||
|
||||
__JS_SPIDER__ = {
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
[
|
||||
{name:'米奇妙妙屋',server:'https://anime.mqmmw.ga',startPage:'/',showAll: false , params:{ }}
|
||||
]
|
@ -1,28 +0,0 @@
|
||||
[
|
||||
{name:'米奇妙妙屋',server:'https://anime.mqmmw.ga',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🔮嗨翻',server:'https://pan.hikerfans.com',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🦀9T(Adult)',server:'https://drive.9t.ee',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🐱梓澪の妙妙屋',server:'https://xn--i0v44m.xyz',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🚆资源小站',server:'https://pan.142856.xyz',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🌤晴园的宝藏库',server:'https://alist.52qy.repl.co',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🐭米奇妙妙屋',server:'https://anime.mqmmw.ga',startPage:'/',showAll:false,params:{}},
|
||||
{name:'💂小兵组网盘影视',server:'https://6vv.app',startPage:'/',showAll:false,params:{}},
|
||||
{name:'📀小光盘',server:'https://alist.xiaoguanxiaocheng.life',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🐋一只鱼',server:'https://alist.youte.ml',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🌊七米蓝',server:'https://al.chirmyram.com',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🌴非盘',server:'http://www.feifwp.top',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🥼帅盘',server:'https://hi.shuaipeng.wang',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🐉神族九帝',server:'https://alist.shenzjd.com',startPage:'/',showAll:false,params:{}},
|
||||
{name:'☃姬路白雪',server:'https://pan.jlbx.xyz',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🎧听闻网盘',server:'https://wangpan.sangxuesheng.com',startPage:'/',showAll:false,params:{}},
|
||||
{name:'💾DISK,http',server:'//124.222.140.243:8080',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🌨云播放',server:'https://quanzi.laoxianghuijia.cn',startPage:'/',showAll:false,params:{}},
|
||||
{name:'✨星梦',server:'https://pan.bashroot.top',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🌊小江',server:'https://dyj.me',startPage:'/',showAll:false,params:{}},
|
||||
{name:'💫触光',server:'https://pan.ichuguang.com',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🕵好汉吧',server:'https://8023.haohanba.cn',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🥗AUNEY',server:'http://121.227.25.116:8008',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🎡资源小站',server:'https://960303.xyz/',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🏝fenwe',server:'http://www.fenwe.tk:5244',startPage:'/',showAll:false,params:{}},
|
||||
{name:'🎢轻弹浅唱',server:'https://g.xiang.lol',startPage:'/',showAll:false,params:{}}
|
||||
]
|
@ -1,5 +0,0 @@
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'cokemv',
|
||||
host:'https://cokemv.me',
|
||||
class_parse:'.navbar-items li:gt(1):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
});
|
Binary file not shown.
25
Js/ddys.js
25
Js/ddys.js
@ -1,25 +0,0 @@
|
||||
var rule={
|
||||
title:'ddys',
|
||||
host:'https://ddys.tv',
|
||||
// homeUrl:'/',
|
||||
url:'https://ddys.tv/category/fyclass/page/fypage/',
|
||||
searchUrl:'/search.html?wd=**',
|
||||
searchable:2,//是否启用全局搜索,
|
||||
quickSearch:0,//是否启用快速搜索,
|
||||
filterable:0,//是否启用分类筛选,
|
||||
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent':'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_name:'电影&剧集&动画',
|
||||
class_url:'movie&airing&anime',
|
||||
cate_exclude:'解析|动态',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
//推荐:'.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
double:true, // 推荐内容是否双层定位
|
||||
一级:'.post-box-list&&article;a:eq(-1)&&Text;.post-box-image&&style;a:eq(0)&&Text;a:eq(-1)&&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',
|
||||
}
|
171
Js/douban.js
171
Js/douban.js
File diff suppressed because one or more lines are too long
34
Js/drpy.js
34
Js/drpy.js
File diff suppressed because one or more lines are too long
10
Js/l0l.js
10
Js/l0l.js
@ -1,10 +0,0 @@
|
||||
muban.海螺2.二级.content = '.play-m-box&&Text';
|
||||
muban.海螺2.二级.desc = '.play-news&&Text';
|
||||
muban.海螺2.二级.img = '';
|
||||
var rule = Object.assign(muban.海螺2,{
|
||||
title:'l0l',
|
||||
host:'https://www.l0l.tv',
|
||||
class_parse:'.index-tag&&li;a&&.title&&Text;a&&href;.*/(.*?).html',
|
||||
searchUrl:'/index.php/vod/search/page/fypage/wd/**.html',
|
||||
搜索:'.searchlilst&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
|
||||
});
|
210
Js/rules.py
210
Js/rules.py
@ -1,210 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# File : rules.py.py
|
||||
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
|
||||
# Date : 2022/8/25
|
||||
import json
|
||||
import os
|
||||
from time import time
|
||||
import js2py
|
||||
from utils.log import logger
|
||||
# from utils.web import get_interval,UA
|
||||
from utils.ua import UA,get_interval
|
||||
from flask import render_template_string
|
||||
|
||||
def getRuleLists():
|
||||
base_path = os.path.dirname(os.path.abspath(__file__)) # 当前文件所在目录
|
||||
# print(base_path)
|
||||
file_name = os.listdir(base_path)
|
||||
file_name = list(filter(lambda x:str(x).endswith('.js') and str(x).find('模板') < 0,file_name))
|
||||
# print(file_name)
|
||||
rule_list = [file.replace('.js','') for file in file_name]
|
||||
# print(rule_list)
|
||||
return rule_list
|
||||
|
||||
def getCacheCount():
|
||||
base_path = 'cache/' # 当前缓存js所在目录
|
||||
os.makedirs(base_path, exist_ok=True)
|
||||
file_name = os.listdir(base_path)
|
||||
file_name = list(filter(lambda x: str(x).endswith('.js') and str(x).find('模板') < 0, file_name))
|
||||
return len(file_name)
|
||||
|
||||
def getRules(path='cache',js_mode=0):
|
||||
t1 = time()
|
||||
|
||||
base_path = path+'/' # 当前文件所在目录
|
||||
# print(base_path)
|
||||
os.makedirs(base_path,exist_ok=True)
|
||||
file_name = os.listdir(base_path)
|
||||
file_name = list(filter(lambda x: str(x).endswith('.js') and str(x).find('模板') < 0, file_name))
|
||||
# print(file_name)
|
||||
rule_list = [file.replace('.js', '') for file in file_name]
|
||||
js_path = [f'{path}/{rule}.js' for rule in rule_list]
|
||||
with open('js/模板.js', encoding='utf-8') as f:
|
||||
before = f.read().split('export')[0]
|
||||
rule_codes = []
|
||||
# for js in js_path:
|
||||
# with open(js,encoding='utf-8') as f:
|
||||
# code = f.read()
|
||||
# rule_codes.append(js2py.eval_js(before+code))
|
||||
|
||||
ctx = js2py.EvalJs()
|
||||
codes = []
|
||||
for i in range(len(js_path)):
|
||||
js = js_path[i]
|
||||
with open(js,encoding='utf-8') as f:
|
||||
code = f.read()
|
||||
new_code = 'var muban = JSON.parse(JSON.stringify(mubanDict));\n'+code.replace('rule',f'rule{i}',1)
|
||||
# new_code = ''+code.replace('rule',f'rule{i}',1)
|
||||
codes.append(new_code)
|
||||
newCodes = before + '\n'+ '\n'.join(codes)
|
||||
# print(newCodes)
|
||||
try:
|
||||
ctx.execute(newCodes)
|
||||
for i in range(len(js_path)):
|
||||
rule_codes.append(ctx.eval(f'rule{i}'))
|
||||
|
||||
# print(rule_codes)
|
||||
# print(type(rule_codes[0]),rule_codes[0])
|
||||
# print(rule_codes[0].title)
|
||||
# print(rule_codes[0].searchable)
|
||||
# print(rule_codes[0].quickSearch)
|
||||
new_rule_list = []
|
||||
for i in range(len(rule_list)):
|
||||
if js_mode == 1 and rule_list[i] == 'drpy':
|
||||
continue
|
||||
sable = rule_codes[i].searchable or 0
|
||||
tmpObj = {
|
||||
'name':rule_list[i],
|
||||
# 'searchable':1 if (js_mode==1 and sable==2) else sable, # 对js模式1开放软件聚搜(还是算了,服务器遭不住)
|
||||
'searchable':sable,
|
||||
'quickSearch':rule_codes[i].quickSearch or 0,
|
||||
'filterable':rule_codes[i].filterable or 0,
|
||||
}
|
||||
if rule_codes[i].multi:
|
||||
tmpObj['multi'] = 1
|
||||
new_rule_list.append(tmpObj)
|
||||
# print(new_rule_list)
|
||||
rules = {'list': new_rule_list, 'count': len(rule_list)}
|
||||
except Exception as e:
|
||||
logger.info(f'装载js内置源列表失败,置空内置源')
|
||||
rules = []
|
||||
logger.info(f'自动配置装载耗时:{get_interval(t1)}毫秒')
|
||||
return rules
|
||||
|
||||
def jxTxt2Json(text:str,host:str):
|
||||
try:
|
||||
data = render_template_string(text,host=host).strip().split('\n')
|
||||
except Exception as e:
|
||||
logger.info(f'jxTxt2Json发生错误:{e}')
|
||||
data = []
|
||||
jxs = []
|
||||
for i in data:
|
||||
i = i.strip()
|
||||
dt = i.split(',')
|
||||
if not i.startswith('#') and len(i) > 10:
|
||||
try:
|
||||
jxs.append({
|
||||
'name':dt[0],
|
||||
'url':dt[1],
|
||||
'type':dt[2] if len(dt) > 2 and dt[2] else 0,
|
||||
'ua':dt[3] if len(dt) > 3 and dt[3] else UA,
|
||||
})
|
||||
except Exception as e:
|
||||
logger.info(f'解析行有错误:{e}')
|
||||
return jxs
|
||||
|
||||
def getJxs(path='js',host=None):
|
||||
custom_jx = 'base/解析.conf'
|
||||
if not os.path.exists(custom_jx):
|
||||
with open(custom_jx,'w+',encoding='utf-8') as f1:
|
||||
msg = """# 这是用户自定义解析列表,不会被系统升级覆盖
|
||||
# 0123,对应,普通解析,json解析,并发多json解析,聚合解析,参数3不填默认0
|
||||
# flags是线路名称标识,会自动拦截并走以下的解析
|
||||
# 名称,链接,类型,ua (ua不填默认 Mozilla/5.0) 可以手动填 Dart/2.14 (dart:io)
|
||||
虾米,https://dm.xmflv.com:4433/?url=
|
||||
"""
|
||||
f1.write(msg)
|
||||
base_path = 'jiexi' # 自建解析目录
|
||||
os.makedirs(base_path, exist_ok=True)
|
||||
file_name = os.listdir(base_path)
|
||||
file_name = list(filter(lambda x: str(x).endswith('.js') and str(x).find('模板') < 0, file_name))
|
||||
# print(file_name)
|
||||
jx_list = [file.replace('.js', '') for file in file_name]
|
||||
# print(file_name)
|
||||
# print(jx_list)
|
||||
jx_str = '\n'.join([jx+',{{host}}'+f'/parse/api/{jx}.js?url=,1' for jx in jx_list])
|
||||
# print(jx_str)
|
||||
|
||||
with open(f'{path}/解析.conf',encoding='utf-8') as f:
|
||||
text = f.read()
|
||||
text = jx_str + '\n' + text
|
||||
jxs = jxTxt2Json(text,host)
|
||||
with open(custom_jx,encoding='utf-8') as f2:
|
||||
text = f2.read()
|
||||
jxs2 = jxTxt2Json(text,host)
|
||||
jxs.extend(jxs2)
|
||||
print(f'共计{len(jxs)}条解析')
|
||||
return jxs
|
||||
|
||||
def getPys(path='txt/py'):
|
||||
t1 = time()
|
||||
base_path = os.path.dirname(os.path.abspath(os.path.dirname(__file__))) # 上级目录
|
||||
py_path = os.path.join(base_path, path)
|
||||
os.makedirs(py_path, exist_ok=True)
|
||||
file_name = os.listdir(py_path)
|
||||
file_name = list(filter(lambda x: str(x).endswith('.py'), file_name))
|
||||
# print(file_name)
|
||||
rule_list = [file.replace('.py', '') for file in file_name]
|
||||
py_path = [f'{path}/{rule}.py' for rule in rule_list]
|
||||
new_rule_list = []
|
||||
for i in range(len(rule_list)):
|
||||
new_rule_list.append({
|
||||
'name': rule_list[i],
|
||||
'searchable': 1,
|
||||
'quickSearch': 1,
|
||||
'filterable': 0,
|
||||
})
|
||||
logger.info(f'自动加载Pyramid耗时:{get_interval(t1)}毫秒')
|
||||
return new_rule_list
|
||||
|
||||
def gen_cache(path='txt/js/tg'):
|
||||
t1 = time()
|
||||
base_path = os.path.dirname(os.path.abspath(os.path.dirname(__file__))) # 上级目录
|
||||
py_path = os.path.join(base_path, path)
|
||||
os.makedirs(py_path, exist_ok=True)
|
||||
file_name = os.listdir(py_path)
|
||||
file_name = list(filter(lambda x: str(x).endswith('.js'), file_name))
|
||||
# print(file_name)
|
||||
rule_list = [file.replace('.js', '') for file in file_name]
|
||||
js_path = [f'{path}/{rule}.js' for rule in rule_list]
|
||||
new_rule_list = []
|
||||
for i in range(len(rule_list)):
|
||||
# print(js_path[i])
|
||||
rname = rule_list[i]
|
||||
new_rule_list.append(
|
||||
{
|
||||
"key": f"dr_{rname}",
|
||||
"name": f"{rname}(道长)",
|
||||
"type": 1,
|
||||
# "api": "{{host}}"+f"/vod?rule={rname}&ext="+"{{host}}/"+js_path[i],
|
||||
"api": "{{host}}"+f"/vod?rule={rname}&ext="+js_path[i],
|
||||
"searchable": 2,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0
|
||||
})
|
||||
logger.info(f'自动加载{len(new_rule_list)}个缓存JS耗时:{get_interval(t1)}毫秒')
|
||||
new_rules_texts = [json.dumps(new_rule,ensure_ascii=False) for new_rule in new_rule_list]
|
||||
# new_rules_text = json.dumps(new_rule_list,ensure_ascii=False)
|
||||
new_rules_text = ',\n'.join(new_rules_texts)+','
|
||||
return new_rules_text
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(getRuleLists())
|
||||
# print(gen_cache())
|
||||
# print(gen_cache('txt/js/18'))
|
||||
|
||||
custom_file = gen_cache() + '\n'+gen_cache('txt/js/18')
|
||||
print(custom_file)
|
||||
with open('custom.conf','w+',encoding='utf-8') as f:
|
||||
f.write(custom_file)
|
@ -1 +0,0 @@
|
||||
3.8.3beta2
|
@ -1,6 +0,0 @@
|
||||
var rule = Object.assign(muban.vfed,{
|
||||
title:'VIP影院',
|
||||
host:'http://360yy.cn',
|
||||
url:'/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl:'/index.php/vod/search/page/fypage/wd/**.html',
|
||||
});
|
@ -1,4 +0,0 @@
|
||||
var rule = Object.assign(muban.首图,{
|
||||
title:'万能影视',
|
||||
host:'https://wnvod.net',
|
||||
});
|
11
Js/人人影视.js
11
Js/人人影视.js
@ -1,11 +0,0 @@
|
||||
muban.首图2.二级.tabs = '.stui-pannel__head h3';
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'人人影视',
|
||||
host:'https://www.rttks.com',
|
||||
url:'/rrtop/fyclass/page/fypage.html',
|
||||
searchUrl:'/rrso**/page/fypage.html',
|
||||
class_parse:'.stui-header__menu li;a&&Text;a&&href;.*/(.*?).html',
|
||||
// cate_exclude:'解说',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
});
|
26
Js/兔小贝.js
26
Js/兔小贝.js
@ -1,26 +0,0 @@
|
||||
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',
|
||||
}
|
21
Js/凌云影视.js
21
Js/凌云影视.js
@ -1,21 +0,0 @@
|
||||
var rule={
|
||||
title:'凌云影视',
|
||||
host:'https://www.lingyun.in',
|
||||
// searchUrl:'/v_search/**----------fypage---.html',
|
||||
url:'/channel/fyclass-fypage.html',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
class_parse:'.over-auto li;a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude:'解析',
|
||||
limit:40,
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
推荐:'ul.pic-list.pic-list-nth;li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
double:true,
|
||||
一级:'ul.pic-list.clearfix&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
二级:{"title":".content-rt&&h1&&Text;.content-rt&&p:eq(0)&&Text","img":".img&&img&&data-src","desc":".content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text","content":".movie-introduce&&.sqjj_a&&Text","tabs":".py-tabs&&option","lists":"ul.player:eq(#id)&&li"},
|
||||
// 搜索:'.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
searchable:0,//是否启用全局搜索,
|
||||
};
|
@ -1,7 +0,0 @@
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'剧白白',
|
||||
host:'https://jubaibai.cc',
|
||||
url:'/vodshow/id/fyclass/page/fypage.html',
|
||||
searchUrl:'/vodsearch**/page/fypage.html',
|
||||
class_parse:'.stui-header__menu li:gt(0):lt(6);a&&Text;a&&href;/(.*?).html',
|
||||
});
|
22
Js/喵喵.js
22
Js/喵喵.js
@ -1,22 +0,0 @@
|
||||
var rule = {
|
||||
title:'喵喵',
|
||||
host:'https://www.2345ka.com',
|
||||
// homeUrl:'/',
|
||||
url:'/t/fyclass/fypage.html',
|
||||
searchUrl:'/s/**/fypage.html',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'UC_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
class_parse:'.bm-item-list a:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:5,
|
||||
推荐:'.movie-list-body;.movie-list-item;.movie-title&&Text;.movie-post-lazyload&&data-original;.movie-rating&&Text;a&&href',
|
||||
double:true, // 推荐内容是否双层定位
|
||||
一级:'.movie-list-body .movie-list-item;.movie-title&&Text;.Lazy&&data-original;.movie-rating&&Text;a&&href',
|
||||
二级:{"title":"h1.movie-title&&Text;.data:eq(1)&&Text","img":".poster img&&src","desc":".cr3.starLink&&Text","content":".detailsTxt&&Text","tabs":".play_source_tab a","lists":".content_playlist:eq(#id) a"},
|
||||
搜索:'.vod-search-list;.movie-title&&Text;.Lazy&&data-original;.getop&&Text;a&&href;.getop:eq(-1)&&Text',
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'在线之家',
|
||||
host:'https://zxzj.vip',
|
||||
});
|
7
Js/夜空.js
7
Js/夜空.js
@ -1,7 +0,0 @@
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'夜空',
|
||||
host:'https://www.yekong.cc',
|
||||
url:'/pianku-fyclass--------fypage---/',
|
||||
searchUrl:'/search-**----------fypage---/',
|
||||
class_parse:'.navbar-items li:gt(1):lt(7);a&&Text;a&&href;.*v/(.*?)/',
|
||||
});
|
22
Js/夜空.js.old
22
Js/夜空.js.old
@ -1,22 +0,0 @@
|
||||
var rule = {
|
||||
title:'夜空',
|
||||
host:'https://www.yekong.cc',
|
||||
// homeUrl:'/',
|
||||
url:'/pianku-fyclass--------fypage---/',
|
||||
searchUrl:'/search-**----------fypage---/',
|
||||
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent':'MOBILE_UA',
|
||||
"Cookie": "searchneed=ok"
|
||||
},
|
||||
// class_name:'电影&连续剧&福利&动漫&综艺',
|
||||
// class_url:'1&2&124&4&3',
|
||||
class_parse:'.navbar-items li:gt(1):lt(7);a&&Text;a&&href;.*v/(.*?)/',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:10,
|
||||
推荐:'.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',
|
||||
}
|
10
Js/大米星球.js
10
Js/大米星球.js
@ -1,10 +0,0 @@
|
||||
muban.mxpro.二级.img = '.lazyload&&src';
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'大米星球',
|
||||
host:'https://www.dmxq.fun',
|
||||
url:'/vodshow/fyclass--------fypage---/pjax/YES.html',
|
||||
searchUrl:'/vodsearch/**----------fypage---/pjax/NO.html',
|
||||
class_parse:'li.swiper-slide.navbar-item;span&&Text;a&&href;/(\\d+).html',
|
||||
一级:'a.module-poster-item.module-item;a&&title;.lazyload&&src;.module-item-note&&Text;a&&href',
|
||||
推荐:'.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&src;.module-item-note&&Text;a&&href',
|
||||
});
|
14
Js/奇优影院.js
14
Js/奇优影院.js
@ -1,14 +0,0 @@
|
||||
muban.首图2.二级.title = '.stui-content__detail&&h1&&Text;.stui-content__detail&&p:eq(0)&&Text';
|
||||
muban.首图2.二级.tabs = '.stui-pannel__head a';
|
||||
muban.首图2.二级.lists = '.stui-content__playlist:eq(#id) li';
|
||||
muban.首图2.二级.desc = '.stui-content__detail&&p:eq(1)&&Text;.stui-content__detail&&p:eq(2)&&Text;.stui-content__detail&&p:eq(3)&&Text';
|
||||
muban.首图2.二级.content = '.stui-pannel_bd:eq(1)&&Text';
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'奇优影院',
|
||||
host:'http://1e6e.com',
|
||||
// host:'https://www.gdjilong.com/',
|
||||
url:'/list/fyclass_fypage.html',
|
||||
searchUrl:'/search.php;**',
|
||||
搜索:'js:let url=input.split(";")[0];let d=[];let body={searchword:input.split(";")[1]};fetch_params.body=body;let html=post(url,fetch_params);let pdfa=jsp.pdfa;let pdfh=jsp.pdfh;let pd=jsp.pd;let lists=pdfa(html,"ul.stui-vodlist__media&&li");lists.forEach(function(it){d.push({title:pdfh(it,".title&&Text"),url:pd(it,"a&&href"),desc:pdfh(html,".pic-text&&Text"),pic_url:pd(html,".lazyload&&data-original")})});setResult(d);',
|
||||
//搜索:'li.stui-vodlist__item;a&&title;a&&data-original;.pic-text&&Text;a&&href'
|
||||
});
|
39
Js/奇珍异兽.js
39
Js/奇珍异兽.js
File diff suppressed because one or more lines are too long
12
Js/小强迷.js
12
Js/小强迷.js
@ -1,12 +0,0 @@
|
||||
muban.首图2.二级.content = '.stui-content__desc&&Text';
|
||||
muban.首图2.二级.title = '.stui-content__detail&&h3&&Text;.stui-content__detail&&p:eq(1)&&Text;';
|
||||
muban.首图2.二级.重定向='js:let url = jsp.pd(html,".playbtn&&a&&href");log(url);html = request(url)';
|
||||
muban.首图2.二级.tabs='.t-ul&&li';
|
||||
muban.首图2.二级.lists='.stui-content__playlist:eq(#id)&&li';
|
||||
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'小强迷',
|
||||
host:'http://xqmi.top',
|
||||
url:'/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl:'/index.php/vod/search/page/fypage/wd/**.html',
|
||||
});
|
@ -1,5 +0,0 @@
|
||||
muban.海螺3.二级.content = '.hl-infos-content&&Text';
|
||||
var rule = Object.assign(muban.海螺3,{
|
||||
title:'小猫咪',
|
||||
host:'https://xmaomi.net',
|
||||
});
|
27
Js/干饭影视.js
27
Js/干饭影视.js
@ -1,27 +0,0 @@
|
||||
var rule = {
|
||||
title:'干饭影视',
|
||||
host:'https://www.gfysys.com/',
|
||||
// homeUrl:'/',
|
||||
url:'/vodtype/fyclass-fypage.html',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA',
|
||||
"Cookie": "searchneed=ok"
|
||||
},
|
||||
searchUrl:'/vodsearch/**----------fypage---.html',
|
||||
searchable:2,
|
||||
// class_name:'电影&网剧&剧集&动漫&综艺&记录',
|
||||
// class_url:'20&1&2&3&4&23',
|
||||
class_parse:'.stui-header__menu li:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse:true,
|
||||
// lazy:'干饭',
|
||||
// lazy:'@js:cacheUrl = d.getParse(input);print(cacheUrl);input=cacheUrl',
|
||||
// lazy:'js:cacheUrl = d.getParse(input);print(cacheUrl);input=cacheUrl',
|
||||
// lazy:'js:cacheUrl=d.getParse(input);if(cacheUrl){input=cacheUrl}else{try{let html=fetch(input,{headers:d.headers,timeout:d.timeout,encoding:d.encoding});let ret=html.match(/var player_(.*?)=(.*?)</)[2];let url=JSON.parse(ret).url;if(url.length>10){real_url="https://player.buyaotou.xyz/?url="+url;d.saveParse(input,real_url);input=real_url}}catch(e){print("网络请求发生错误:"+e.message)}}',
|
||||
lazy:'js:cacheUrl=getParse(input);if(cacheUrl){input=cacheUrl}else{try{let html=fetch(input,fetch_params);let ret=html.match(/var player_(.*?)=(.*?)</)[2];let url=JSON.parse(ret).url;if(url.length>10){real_url="https://player.buyaotou.xyz/?url="+url;saveParse(input,real_url);input=real_url}}catch(e){print("网络请求发生错误:"+e.message)}}',
|
||||
limit:5,
|
||||
推荐:'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;;a&&href',
|
||||
double:true, // 推荐内容是否双层定位
|
||||
一级:'body .stui-vodlist__box;a&&title;.lazyload&&data-original;;a&&href',
|
||||
二级:{"title":"h1.title&&Text;.stui-content__detail p:eq(1)&&Text","img":".lazyload&&data-original","desc":".stui-content__detail p:eq(-3)&&Text;.stui-content__detail p:eq(-2)&&Text","content":".stui-content__detail p.detail&&Text","tabs":".stui-pannel__head ul li","lists":".stui-content__playlist:eq(#id) li"},
|
||||
// 搜索:'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'库马伊',
|
||||
host:'http://www.kmy5.com',
|
||||
url:'/tv/fyclass-fypage.html',
|
||||
searchUrl:'/search/**----------fypage---.html',
|
||||
class_parse:'.stui-header__menu li:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
|
||||
搜索:'li.stui-vodlist__item;a&&title;.lazyload&&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":".stui-content__desc&&Text","tabs":".stui-pannel__head h3","lists":".stui-content__playlist:eq(#id) li"},
|
||||
});
|
@ -1,4 +0,0 @@
|
||||
var rule = Object.assign(muban.首图,{
|
||||
title:'影视工厂',
|
||||
host:'https://www.ysgc.cc',
|
||||
});
|
158
Js/模板.js
158
Js/模板.js
@ -1,158 +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;
|
||||
};
|
||||
}
|
||||
|
||||
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',
|
||||
},
|
||||
首图:{
|
||||
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',
|
||||
},
|
||||
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,//是否启用分类筛选,
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
var muban = JSON.parse(JSON.stringify(mubanDict));
|
||||
export default muban;
|
@ -1,9 +0,0 @@
|
||||
muban.首图2.二级.tabs = '.stui-pannel__head h3';
|
||||
muban.首图2.二级.content = '.stui-content__desc&&Text';
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'牛马TV',
|
||||
host:'https://www.niumatv.cc',
|
||||
url:'/type/fyclass-fypage.html',
|
||||
searchUrl:'/vodsearch**/page/fypage.html',
|
||||
class_parse:'.stui-header__menu&&li;a&&Text;a&&href;.*/(.*?).html',
|
||||
});
|
25
Js/猫了个咪.js
25
Js/猫了个咪.js
@ -1,25 +0,0 @@
|
||||
var rule = {
|
||||
title:'猫了个咪',
|
||||
host:'http://119.28.59.69:8089',
|
||||
homeUrl:'/latest/',
|
||||
url:'/api/video/index#class=fyclass&page=fypage',
|
||||
searchUrl:'/api/special/video?params=#keyword=**&page=fypage',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
// searchable:2,
|
||||
quickSearch:0,
|
||||
timeout:5000,
|
||||
class_name:'全部&国产专区&欧美精品&动漫&中文字幕&人气女忧&不雅视频&韩三级&热剧大人版&抖音妹合集&猫咪自拍',
|
||||
class_url:'0&32&16&31&34&35&37&39&40&41&42',
|
||||
limit:5,
|
||||
play_parse:true,
|
||||
lazy:'js:log(input);',
|
||||
lazy:'js:let VID=input.split(";")[1];let VURL=input.split(";")[0];var fn=rc("maomi_aes.js");let url=VURL+"?params="+fn.En(\'{"id":"\'+VID+\'"}\');input=JSON.parse(fn.De(request(url))).data.video_item[0].file;',
|
||||
一级:'',
|
||||
一级:'js:let d=[];let bodys={access_token:"",cate_id:MY_CATE,identifier:"ffffffff-c67a-899b-ffff-ffffef05ac4a",page:MY_PAGE,region:0,type_id:0,vip:0,year:""};var fn=rc("maomi_aes.js");bodys=fn.En(stringify(bodys));let obj={headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"POST",body:"params="+bodys+"&version=26&sign="+md5("QEBBQADSwrXIXaNqBmMofjfRY/8Sxaxgparams"+bodys+"version26QEBBQADSwrXIXaNqBmMofjfRY/8Sxaxg")};let api=input.split("#")[0];let html=JSON.parse(fn.De(request(api,obj)));html.data.data.forEach(function(it){d.push({title:it.name,img:it.image,desc:it.rate,url:api.replace("index","detail")+";"+it.id})});setResult(d);',
|
||||
二级:'*',
|
||||
搜索:'',
|
||||
// 搜索:'js:let bodys={keyword:KEY,page:MY_PAGE};var fn=rc("maomi_aes.js");bodys=fn.En(stringify(bodys));let url=input.split("#")[0];print(url);var html=JSON.parse(fn.De(request(url+bodys)));let d=html.data.data.map(function(data){return{title:data.video_name,img:data.image,desc:data.rate,url:"http://119.28.59.69:8089/api/video/detail?params=;"+fn.En(\'{"id":"\'+data.video_id+\'"}\')}});setResult(d);',
|
||||
|
||||
}
|
9
Js/玄天.js
9
Js/玄天.js
@ -1,9 +0,0 @@
|
||||
muban.首图2.二级.tabs = '.dropdown-menu li';
|
||||
muban.首图2.二级.重定向='js:let url = jsp.pd(html,"a.btn-primary&&href");log(url);html = request(url)';
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'玄天',
|
||||
host:'https://m.7caa.com',
|
||||
url:'/list/fyclass-fypage.html',
|
||||
searchUrl:'/search/**----------fypage---.html',
|
||||
lazy:'通用免嗅'
|
||||
});
|
@ -1,5 +0,0 @@
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'瓜皮TV',
|
||||
host:'https://guapitv.xyz',
|
||||
class_parse:'.navbar-items li:gt(1):lt(8);a&&Text;a&&href;.*-(.*?).html',
|
||||
});
|
@ -1,6 +0,0 @@
|
||||
var rule = Object.assign(muban.海螺3,{
|
||||
title:'番茄影视',
|
||||
host:'https://www.tjomet.com',
|
||||
url:'/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl:'/vodsearch/**----------fypage---.html',
|
||||
});
|
34
Js/百忙无果.js
34
Js/百忙无果.js
File diff suppressed because one or more lines are too long
@ -1,4 +0,0 @@
|
||||
var rule = Object.assign(muban.mxone5,{
|
||||
title:'看视界',
|
||||
host:'https://www.1080kan.cc',
|
||||
});
|
@ -1,8 +0,0 @@
|
||||
muban.首图2.二级.tabs = '.stui-pannel__head.bottom-line.active.clearfix h3';
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'真不卡',
|
||||
host:'https://www.zbkk.net',
|
||||
url:'/vodshow/fyclass--------fypage---.html',
|
||||
class_parse:'.stui-header__menu .dropdown li:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
|
||||
// searchUrl:'/vodsearch/**----------fypage---.html',
|
||||
});
|
10
Js/秋霞.js
10
Js/秋霞.js
@ -1,10 +0,0 @@
|
||||
muban.首图2.二级.tabs = '.stui-pannel__head.bottom-line.active.clearfix h3';
|
||||
muban.首图2.二级.content = '.stui-content__desc&&Text';
|
||||
var rule = Object.assign(muban.首图2,{
|
||||
title:'秋霞',
|
||||
host:'https://www.7xiady.cc',
|
||||
url:'/type/fyclass-fypage/',
|
||||
class_parse:'.stui-header__menu li;a&&Text;a&&href;/type/(.*?)/',
|
||||
searchUrl:'/search/**----------fypage---.html',
|
||||
搜索:'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
});
|
34
Js/腾云驾雾.js
34
Js/腾云驾雾.js
@ -1,34 +0,0 @@
|
||||
var rule = {
|
||||
title:'腾云驾雾',
|
||||
host:'https://v.%71%71.com',
|
||||
// homeUrl:'/channel/choice?listpage=1&channel=choice&sort=18&_all=1',
|
||||
homeUrl:'/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
|
||||
detailUrl:'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
|
||||
searchUrl:'https://node.video.%71%71.com/x/api/msearch?keyWord=**',
|
||||
searchable:2,
|
||||
filterable:1,
|
||||
multi:1,
|
||||
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
|
||||
url:'/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
|
||||
filter_url:'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
|
||||
filter:{'choice': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'tv': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'movie': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'variety': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'cartoon': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'child': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'doco': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}]},
|
||||
headers:{
|
||||
'User-Agent':'PC_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
|
||||
cate_exclude:'会员|游戏|全部',
|
||||
class_name:'精选&电视剧&电影&综艺&动漫&少儿&纪录片',
|
||||
class_url:'choice&tv&movie&variety&cartoon&child&doco',
|
||||
limit:20,
|
||||
// play_parse:true,
|
||||
// 手动调用解析请求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',
|
||||
推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
// 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"},
|
||||
// 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites","lists":"data.playlinksdetail.#idv.default_url"},
|
||||
二级:'',
|
||||
二级:'js:VOD={};let d=[];let video_list=[];let video_lists=[];let list=[];let QZOutputJson;let html=fetch(input,fetch_params);let sourceId=/get_playsource/.test(input)?input.match(/id=(\\d*?)&/)[1]:input.split("cid=")[1];let cid=sourceId;let detailUrl="https://v.%71%71.com/detail/m/"+cid+".html";log("详情页:"+detailUrl);var pdfh=jsp.pdfh;var pd=jsp.pd;try{let json=JSON.parse(html);VOD={vod_id:json.c.vid,vod_url:input,vod_name:json.c.title,type_name:json.typ.join(","),vod_actor:json.nam.join(","),vod_year:json.c.year,vod_content:json.c.description,vod_remarks:json.rec,vod_pic:urljoin2(input,json.c.pic)}}catch(e){log("解析片名海报等基础信息发生错误:"+e.message)}if(/get_playsource/.test(input)){eval(html);let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+sourceId+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量:"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else{let json=JSON.parse(html);video_lists=json.c.video_ids;let url="https://v.qq.com/x/cover/"+sourceId+".html";if(json.c.type===10){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=2&data_type=3&video_type=8&plname=qq&otype=json";let o_html=fetch(dataUrl,fetch_params);eval(o_html);video_lists=[];let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量:"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else if(video_lists.length===1){d.push({title:"在线播放",url:url})}else if(video_lists.length>1){for(let i=0;i<video_lists.length;i+=30){video_list.push(video_lists.slice(i,i+30))}video_list.forEach(function(it,idex){let o_url="https://union.video.qq.com/fcgi-bin/data?otype=json&tid=682&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist="+it.join(",");let o_html=fetch(o_url,fetch_params);eval(o_html);QZOutputJson.results.forEach(function(it1){it1=it1.fields;let url="https://v.qq.com/x/cover/"+cid+"/"+it1.vid+".html";d.push({title:it1.title,pic_url:it1.pic160x90.replace("/160",""),desc:it1.video_checkup_time,url:url})})})}}VOD.vod_play_from="qq";VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");',
|
||||
搜索:'json:uiData;data[0].title;data[0].posterPic;.titleMarkLabelList[1].primeText;data[0].id;data[0].publishDate',
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'莫扎兔',
|
||||
host:'https://www.mozhatu.com',
|
||||
url:'/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl:'/index.php/vod/search/page/fypage/wd/**.html',
|
||||
class_parse:'.navbar-items li:gt(2):lt(8);a&&Text;a&&href;.*/(.*?).html',
|
||||
});
|
@ -1,7 +0,0 @@
|
||||
var rule = Object.assign(muban.mxpro,{
|
||||
title:'蓝光影院',
|
||||
host:'https://lgyy.cc',
|
||||
url:'/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl:'/vodsearch/**-------------.html',
|
||||
class_parse:'.navbar-items li:gt(1):lt(6);a&&Text;a&&href;.*/(.*?).html',
|
||||
});
|
12
Js/蓝莓影视.js
12
Js/蓝莓影视.js
File diff suppressed because one or more lines are too long
51
Js/解析.conf
51
Js/解析.conf
@ -1,51 +0,0 @@
|
||||
# 0123,对应,普通解析,json解析,并发多json解析,聚合解析,参数3不填默认0
|
||||
# flags是线路名称标识,会自动拦截并走以下的解析
|
||||
# 名称,链接,类型,ua (ua不填默认 Mozilla/5.0) 可以手动填 Dart/2.14 (dart:io)
|
||||
# 轮询,Sequence,2
|
||||
# 并发,Parallel,2
|
||||
# 聚合,Demo,3
|
||||
|
||||
# 快看,http://api.8a5.cn/parse/kuaikan/de.php?url=,1
|
||||
# 钢铁侠,https://json.freejx.in/?url=,1
|
||||
# 绿叶,https://hc.izny.cn/json.php?url=,1
|
||||
# 无名1,http://api.ckflv.cn/?url=,1
|
||||
# 无名1,{{host}}/parse/api/无名.js?url=,1
|
||||
91,http://91fanli.top/m3u8/?url=
|
||||
BT5V,https://rx.bt5v.com/json/jsonindex.php/?url=,1
|
||||
# 查询,https://chaxun.truechat365.com/?url= # 这个解析真的牛逼,只能电脑看
|
||||
# llq,https://hc.izny.cn/json.php?url=,1
|
||||
# 江湖,{{host}}/parse/api/江湖.js?url=,1
|
||||
左岸,https://jx.bozrc.com:4433/player/?url=
|
||||
GGTV搜集,https://play.fuqizhishi.com/juhe/API.php?appkey=caijijuhe220902&url=,1,
|
||||
CY,https://vip.cyu0.cn/home/api?type=ys&uid=1353484&key=efopqwABCLOTVYZ278&url=,1
|
||||
# ggtv,https://play.fuqizhishi.com/jx/API.php?appkey=xiaobai888&url=,1
|
||||
# 爱酷,https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url=,1
|
||||
ok解析,https://okjx.cc/?url=
|
||||
全民1,http://api.wpsseo.cn/?v=
|
||||
m3u8tv,https://jx.m3u8.tv/jiexi/?url=
|
||||
Fosi,https://play.fositv.com/?url=
|
||||
诺讯,https://www.nxflv.com/?url=
|
||||
傻逼聊,https://svip.spchat.top/api/?key=O9HGeIVUqU3REsnmQP&url=,1
|
||||
208,https://v.2080kk.com/home/api?type=ys&uid=1308653&key=behnpstwxBCHJMQ029&url=,1
|
||||
8090,https://www.8090.la/8090/?url=
|
||||
365,https://chaxun.truechat365.com/?url=
|
||||
# 爱酷,https://jx.zhanlangbu.com/API.php?appkey=53df3aa2fdb66bcbc4d05730b6fbfc71&url=,1
|
||||
插萝莉,http://chaloli.cn/home/api?type=ys&uid=1&key=dklsuzIKNPRVW14568&url=,1
|
||||
无名2,https://h5.freejson.xyz/player/?url=
|
||||
无名3,https://freejx.rx88.top:1234/?url=
|
||||
无名4,https://play.fositv.com/?url=
|
||||
真聊,https://chaxun.truechat365.com/?url=
|
||||
猪蹄,https://jx.iztyy.com/svip/?url=
|
||||
m2090,https://m2090.com/?url=
|
||||
# b = a.map(it=>it.name+','+it.url+','+it.type).join('\n');console.log(b);
|
||||
# 思古解析,https://jsap.attakids.com/?url=
|
||||
# 云解析,https://jx.ppflv.com/?url=
|
||||
# 云解析2,https://jx.aidouer.net/?url=
|
||||
# BL解析,https://vip.bljiex.cc/?v=
|
||||
# 虾米解析,https://jx.xmflv.com/?url=
|
||||
# 飞飞智能,https://y.9dan.cc/?v=
|
||||
# 左岸解析,https://jx.bozrc.com:4433/player/?url=
|
||||
# 8090解析,https://www.8090g.cn/?url=
|
||||
# ckplayer无广,https://www.ckplayer.vip/jiexi/?url=
|
||||
# 盘古无广,http://www.pangujiexi.cc/jiexi.php?url=
|
||||
# 江湖,http://jx.vipmv.co/?url=
|
@ -1,6 +0,0 @@
|
||||
// muban.海螺2.二级.content = '.hl-infos-content&&Text';
|
||||
var rule = Object.assign(muban.海螺2,{
|
||||
title:'追剧喵',
|
||||
host:'https://zjmiao.com',
|
||||
搜索:'.search-list;a&&Text;.lazy&&data-original;.deployment&&Text;a&&href',
|
||||
});
|
36
Js/酷云77.js
36
Js/酷云77.js
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user