Delete Js directory

This commit is contained in:
gaotianliuyun 2022-10-13 22:38:36 +08:00 committed by GitHub
parent 12decbab07
commit 3d9e928c25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
56 changed files with 0 additions and 1597 deletions

View File

@ -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',
});

View File

@ -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;.*/(.*?)/',
});

View File

@ -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',
}

View File

@ -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"
},
});

View File

@ -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',
});

View File

@ -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',
});

View File

@ -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

View File

@ -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
}

View File

@ -1,3 +0,0 @@
[
{name:'',server:'https://anime.mqmmw.ga',startPage:'/',showAll: false , params:{ }}
]

View File

@ -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:{}}
]

View File

@ -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.

View File

@ -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',
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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',
});

View File

@ -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)

View File

@ -1 +0,0 @@
3.8.3beta2

View File

@ -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',
});

View File

@ -1,4 +0,0 @@
var rule = Object.assign(muban.首图,{
title:'万能影视',
host:'https://wnvod.net',
});

View File

@ -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:'',
});

File diff suppressed because one or more lines are too long

View File

@ -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',
}

View File

@ -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,//是否启用全局搜索,
};

View File

@ -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',
});

View File

@ -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',
}

View File

@ -1,4 +0,0 @@
var rule = Object.assign(muban.首图2,{
title:'在线之家',
host:'https://zxzj.vip',
});

View File

@ -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/(.*?)/',
});

View File

@ -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',
}

View File

@ -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',
});

View File

@ -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'
});

File diff suppressed because one or more lines are too long

View File

@ -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',
});

View File

@ -1,5 +0,0 @@
muban.海螺3.二级.content = '.hl-infos-content&&Text';
var rule = Object.assign(muban.海螺3,{
title:'小猫咪',
host:'https://xmaomi.net',
});

View File

@ -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',
}

View File

@ -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"},
});

View File

@ -1,4 +0,0 @@
var rule = Object.assign(muban.首图,{
title:'影视工厂',
host:'https://www.ysgc.cc',
});

View File

@ -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;

View File

@ -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',
});

View File

@ -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);',
}

View File

@ -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:'通用免嗅'
});

View File

@ -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',
});

View File

@ -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',
});

File diff suppressed because one or more lines are too long

View File

@ -1,4 +0,0 @@
var rule = Object.assign(muban.mxone5,{
title:'看视界',
host:'https://www.1080kan.cc',
});

View File

@ -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',
});

View File

@ -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',
});

View File

@ -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',
}

View File

@ -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',
});

File diff suppressed because one or more lines are too long

View File

@ -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',
});

File diff suppressed because one or more lines are too long

View File

@ -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=

View File

@ -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',
});

File diff suppressed because one or more lines are too long

View File

@ -1,6 +0,0 @@
var rule = Object.assign(muban.mxpro,{
title:'鸭奈飞',
host:'https://yanetflix.com',
url:'/vodshow/fyclass--------fypage---.html',
class_parse:'.navbar-items li:gt(1):lt(6);a&&Text;a&&href;.*/(.*?).html',
});