mirror of
				https://github.com/qist/tvbox.git
				synced 2025-10-30 03:32:19 +00:00 
			
		
		
		
	Add files via upload
This commit is contained in:
		
							
								
								
									
										7
									
								
								Js/007影视.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Js/007影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										7
									
								
								Js/1080P.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Js/1080P.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Js/360影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| 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', | ||||
| } | ||||
							
								
								
									
										9
									
								
								Js/555影视.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Js/555影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| 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" | ||||
| }, | ||||
| }); | ||||
							
								
								
									
										8
									
								
								Js/AnFuns.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Js/AnFuns.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										8
									
								
								Js/LIBVIO.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Js/LIBVIO.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										26
									
								
								Js/alist.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Js/alist.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| # 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										270
									
								
								Js/alist.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,270 @@ | ||||
| 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 | ||||
| } | ||||
|  | ||||
							
								
								
									
										3
									
								
								Js/alist_js.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Js/alist_js.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| [ | ||||
| {name:'米奇妙妙屋',server:'https://anime.mqmmw.ga',startPage:'/',showAll: false , params:{ }} | ||||
| ]  | ||||
							
								
								
									
										5
									
								
								Js/cokemv.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Js/cokemv.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										
											BIN
										
									
								
								Js/custom_spider.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Js/custom_spider.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										171
									
								
								Js/douban.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								Js/douban.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										34
									
								
								Js/drpy.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								Js/drpy.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										10
									
								
								Js/l0l.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Js/l0l.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								Js/rules.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,210 @@ | ||||
| #!/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
									
								
								Js/version.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Js/version.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| 3.8.0 | ||||
							
								
								
									
										6
									
								
								Js/vip影院.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Js/vip影院.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										4
									
								
								Js/万能影视.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Js/万能影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| var rule = Object.assign(muban.首图,{ | ||||
| title:'万能影视', | ||||
| host:'https://wnvod.net', | ||||
| }); | ||||
							
								
								
									
										11
									
								
								Js/人人影视.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Js/人人影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Js/兔小贝.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| var rule = { | ||||
|     title:'兔小贝', | ||||
|     host:'https://www.tuxiaobei.com', | ||||
|     homeUrl:'', | ||||
|     url:'/list/mip-data?typeId=fyclass&page=fypage&callback=', | ||||
|     detailUrl:'/play/fyid', | ||||
|     searchUrl:'/search/index?key=**', | ||||
|     searchable:2, | ||||
|     headers:{ | ||||
|         'User-Agent':'MOBILE_UA' | ||||
|     }, | ||||
|     timeout:5000, | ||||
|     class_url:'2&3&4&25', | ||||
|     class_name:'儿歌&故事&国学&启蒙', | ||||
|     //class_name:'#page-viewport&&ul&&li;.text&&Text;a&&href;/(.*)', | ||||
|     cate_exclude:'应用', | ||||
|     推荐:'.pic-list.list-box;.items;.text&&Text;mip-img&&src;.all&&Text;a&&href', | ||||
|     double:true, | ||||
|     limit:5, | ||||
|     play_parse:true, | ||||
|     lazy:'js:fetch_params.headers["user-agent"] = IOS_UA;let html=fetch(input,fetch_params);let src = jsp.pdfh(html,"body&&#videoWrap&&video-src");input=src;', | ||||
|     // 一级:'json:data.items;name;image;collect_num;category_id+video_id', | ||||
|     一级:'json:data.items;name;image;duration_string;video_id', | ||||
|     二级:'*', | ||||
|     搜索:'.list-con&&.items;.text&&Text;mip-img&&src;.time&&Text;a&&href', | ||||
| } | ||||
							
								
								
									
										21
									
								
								Js/凌云影视.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Js/凌云影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| 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,//是否启用全局搜索, | ||||
| }; | ||||
							
								
								
									
										7
									
								
								Js/剧白白.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Js/剧白白.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Js/喵喵.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| 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', | ||||
| } | ||||
							
								
								
									
										4
									
								
								Js/在线之家.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Js/在线之家.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| var rule = Object.assign(muban.首图2,{ | ||||
| title:'在线之家', | ||||
| host:'https://zxzj.vip', | ||||
| }); | ||||
							
								
								
									
										7
									
								
								Js/夜空.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Js/夜空.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Js/夜空.js.old
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Js/大米星球.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										13
									
								
								Js/奇优影院.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Js/奇优影院.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| 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', | ||||
|     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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								Js/奇珍异兽.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										12
									
								
								Js/小强迷.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Js/小强迷.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										5
									
								
								Js/小猫咪.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Js/小猫咪.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| muban.海螺3.二级.content = '.hl-infos-content&&Text'; | ||||
| var rule = Object.assign(muban.海螺3,{ | ||||
|     title:'小猫咪', | ||||
|     host:'https://xmaomi.net', | ||||
| }); | ||||
							
								
								
									
										27
									
								
								Js/干饭影视.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								Js/干饭影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| 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', | ||||
| } | ||||
							
								
								
									
										9
									
								
								Js/库马伊.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Js/库马伊.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| 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"}, | ||||
| }); | ||||
							
								
								
									
										4
									
								
								Js/影视工厂.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Js/影视工厂.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| var rule = Object.assign(muban.首图,{ | ||||
| title:'影视工厂', | ||||
| host:'https://www.ysgc.cc', | ||||
| }); | ||||
							
								
								
									
										158
									
								
								Js/模板.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								Js/模板.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,158 @@ | ||||
| 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; | ||||
							
								
								
									
										9
									
								
								Js/牛马TV.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Js/牛马TV.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Js/猫了个咪.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Js/玄天.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| 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:'通用免嗅' | ||||
| }); | ||||
							
								
								
									
										5
									
								
								Js/瓜皮TV.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Js/瓜皮TV.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										6
									
								
								Js/番茄影视.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Js/番茄影视.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| var rule = Object.assign(muban.海螺3,{ | ||||
| title:'番茄影视', | ||||
| host:'https://www.tjomet.com', | ||||
| url:'/vodshow/fyclass--------fypage---.html', | ||||
| searchUrl:'/vodsearch/**----------fypage---.html', | ||||
| }); | ||||
							
								
								
									
										34
									
								
								Js/百忙无果.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								Js/百忙无果.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8
									
								
								Js/看视界.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Js/看视界.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| var rule = Object.assign(muban.mxpro,{ | ||||
| title:'看视界', | ||||
| host:'https://www.1080kan.cc', | ||||
| url:'/show/fyclass--------fypage---.html', | ||||
| searchUrl:'/search/**----------fypage---.html', | ||||
| searchable:2, | ||||
| class_parse:'.navbar-items li:gt(1):lt(6);a&&Text;a&&href;.*/(.*?).html', | ||||
| }); | ||||
							
								
								
									
										8
									
								
								Js/真不卡.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Js/真不卡.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										34
									
								
								Js/腾云驾雾.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								Js/腾云驾雾.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| 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', | ||||
| } | ||||
							
								
								
									
										7
									
								
								Js/莫扎兔.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Js/莫扎兔.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 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', | ||||
| }); | ||||
							
								
								
									
										7
									
								
								Js/蓝光影院.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Js/蓝光影院.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Js/蓝莓影视.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										51
									
								
								Js/解析.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								Js/解析.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| # 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= | ||||
							
								
								
									
										6
									
								
								Js/追剧喵.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Js/追剧喵.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| // 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
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Js/酷云77.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user