up
This commit is contained in:
Liu 2025-04-22 01:17:20 +08:00
parent 06f5178167
commit 4686d1a9dc
103 changed files with 19488 additions and 118152 deletions

View File

@ -44,10 +44,6 @@
"url": "https://gh-proxy.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
"name": "戏曲音乐"
},
{
"url": "https://gh-proxy.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
"name": "天天开心"
},
{
"url": "https://gh-proxy.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
"name": "少儿频道"

View File

@ -44,10 +44,6 @@
"url": "https://gh-proxy.net/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
"name": "戏曲音乐"
},
{
"url": "https://gh-proxy.net/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
"name": "天天开心"
},
{
"url": "https://gh-proxy.net/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
"name": "少儿频道"

View File

@ -44,10 +44,6 @@
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
"name": "戏曲音乐"
},
{
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
"name": "天天开心"
},
{
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
"name": "少儿频道"

View File

@ -44,10 +44,6 @@
"url": "https://github.moeyy.xyz/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
"name": "戏曲音乐"
},
{
"url": "https://github.moeyy.xyz/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
"name": "天天开心"
},
{
"url": "https://github.moeyy.xyz/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
"name": "少儿频道"

View File

@ -44,10 +44,6 @@
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
"name": "戏曲音乐"
},
{
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
"name": "天天开心"
},
{
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
"name": "少儿频道"

View File

@ -13,12 +13,12 @@
{"key":"csp_Wwys","name":"👩‍🌾农民","type":3,"api":"csp_Wwys","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://wwgz.cn"},
{"key":"csp_Lkdy","name":"🏔️来看","type":3,"api":"csp_Lkdy","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_SaoHuo","name":"🔥骚火","type":3,"api":"csp_SaoHuo","playerType":2,"searchable":1,"quickSearch":1,"filterable":1,"ext":"https://shdy5.us"},
{"key":"csp_Tvyb","name":"☁TVB云播","type":3,"api":"csp_Tvyb","playerType":2,"searchable":1,"quickSearch":1,"filterable":1,"ext":"http://www.tvyun01.com/"},
{"key":"csp_Qiyou","name":"🦌奇优","type":3,"api":"csp_Qiyou","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_Wetv","name":"🚗尘落","type":3,"api":"csp_Wetv","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_Jiaozi","name":"🥣饺子","type":3,"api":"csp_Jiaozi","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_Fantuan","name":"🍙饭团","type":3,"api":"csp_Fantuan","searchable":1,"quickSearch":1,"filterable":1,"click":"document.querySelector(\"#playleft iframe\").contentWindow.document.querySelector(\"#start\").click();","ext":"https://www.fantuan.vip"},
{"key":"可可","name":"☕️可可","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/可可影视.json"},
{"key":"剧圈圈","name":"⭕剧圈圈","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/剧圈圈.json","click":"document.getElementById('playleft').children[0].contentWindow.document.getElementById('start').click()"},
{"key":"csp_Ddys","name":"📺低端","type":3,"api":"csp_Ddys","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_Kuaikan","name":"👀快看","type":3,"api":"csp_Kuaikan","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_Ikanbot","name":"👾Ikanbot","type":3,"api":"csp_Ikanbot","searchable":1,"quickSearch":1,"filterable":1},
@ -36,7 +36,6 @@
{"key":"csp_Ysj","name":"📮异世界","type":3,"api":"csp_Ysj","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_Dm84","name":"🚌动漫巴士","type":3,"playerType":"2","api":"csp_Dm84","searchable":1,"quickSearch":1,"filterable":1},
{"key":"樱花","name":"💮樱花","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/樱花动漫.json"},
{"key":"短剧屋","name":"🎬短剧屋","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/短剧屋.json"},
{"key":"豆瓣","name":"🚀豆瓣预告","type":3,"api":"csp_YGP","playerType":2,"searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_AppXY","name":"🎀️星牙短剧","type":3,"api":"csp_AppXY","searchable":1,"quickSearch":1,"filterable":1},
{"key":"csp_Kanqiu","name":"⚾看球","type":3,"api":"csp_Kanqiu","searchable":1,"quickSearch":1,"changeable":0,"gridview":3,"style":{"type":"list"}},

View File

@ -0,0 +1,82 @@
{
"规则名": "剧圈圈",
"规则作者": "香雅情",
"OCR_API":"https://api.nn.ci/ocr/b64/text",
"请求头参数": "MOBILE_UA",
"网页编码格式": "UTF-8",
"图片是否需要代理": "否",
"是否开启获取首页数据": "1",
"首页推荐链接": "https://www.jqqzx.me",
"首页列表数组规则": "body&&.module-main.tab-list.active",
"首页片单列表数组规则": ".module-item",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
"分类链接": "https://www.jqqzx.me/vodshow/id/{cateId}/page/{catePg}.html",
"分类名称": "电影&电视剧&综艺&动漫&纪录片&爽剧",
"分类名称替换词": "dianying&juji&zongyi&dongman&jilupian&shuangju",
"筛选数据": {},
//"筛选数据": "ext",
//{cateId}
"筛选子分类名称": "",
"筛选子分类替换词": "",
//{class}
"筛选类型名称": "",
"筛选类型替换词": "*",
//{area}
"筛选地区名称": "",
"筛选地区替换词": "*",
//{year}
"筛选年份名称": "",
"筛选年份替换词": "*",
//{lang}
"筛选语言名称": "",
"筛选语言替换词": "*",
//{by}
"筛选排序名称": "时间&人气&评分",
"筛选排序替换词": "time&hits&score",
"分类截取模式": "1",
"分类列表数组规则": ".module-items&&.module-item",
"分类片单是否Jsoup写法": "是",
"分类片单标题": ".module-poster-item-title&&Text",
"分类片单链接": "a&&href",
"分类片单图片": ".lazyload&&data-original",
"分类片单副标题": ".module-item-note&&Text",
"分类片单链接加前缀": "https://www.jqqzx.me",
"分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$MOBILE_UA",
"搜索链接": "https://www.jqqzx.me/vodsearch{wd}/page/{SearchPg}.html",
"POST请求数据": "",
"搜索截取模式": "1",
"搜索列表数组规则": ".module-items&&.module-item",
"搜索片单是否Jsoup写法": "是",
"搜索片单图片": ".lazyload&&data-original",
"搜索片单标题": ".module-card-item-title&&Text",
"搜索片单链接": "a&&href",
"搜索片单副标题": ".module-item-note&&Text",
"搜索片单链接加前缀": "https://www.jqqzx.me",
"搜索片单链接加后缀": "",
"链接是否直接播放": "否",
"直接播放链接加前缀": "",
"直接播放链接加后缀": "",
"直接播放直链视频请求头": "",
"详情是否Jsoup写法": "是",
"类型详情": "",
"年代详情": ".module-info-content&&.module-info-item,3&&Text",
"地区详情": "",
"演员详情": ".module-info-content&&.module-info-item,2&&Text",
"简介详情": ".module-info-content&&.module-info-item&&Text",
"线路列表数组规则": ".module-tab-items-box&&.module-tab-item",
"线路标题": "Text",
"播放列表数组规则": "body&&.module-play-list-content",
"选集列表数组规则": "a",
"选集标题链接是否Jsoup写法": "是",
"选集标题": "a&&Text",
"选集链接": "a&&href",
"是否反转选集序列": "否",
"选集链接加前缀": "https://www.jqqzx.me",
"选集链接加后缀": "",
"分析MacPlayer": "否",
"是否开启手动嗅探": "否",
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
"手动嗅探视频链接过滤词": ".html#=http"
}

View File

@ -39,7 +39,7 @@
"分类片单是否Jsoup写法": "是",
"分类片单标题": ".v-item-title,1&&Text",
"分类片单链接": "a&&href",
"分类片单图片": "'https://vres.wbadl.cn'+.lazyload,-1&&data-original",
"分类片单图片": "'https://vres.xenlz.com'+.lazyload,-1&&data-original",
"分类片单副标题": ".v-item-bottom&&Text",
"分类片单链接加前缀": "https://www.keke1.app",
"分类片单链接加后缀": "",
@ -49,7 +49,7 @@
"搜索截取模式": "1",
"搜索列表数组规则": ".search-result-list&&.search-result-item",
"搜索片单是否Jsoup写法": "是",
"搜索片单图片": "'https://vres.wbadl.cn'+.lazyload&&data-original",
"搜索片单图片": "'https://vres.xenlz.com'+.lazyload&&data-original",
"搜索片单标题": ".title&&Text",
"搜索片单链接": "a&&href",
"搜索片单副标题": "",

File diff suppressed because it is too large Load Diff

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,577 +0,0 @@
/*!
* Jinja Templating for JavaScript v0.1.8
* https://github.com/sstur/jinja-js
*
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
*
* In the interest of simplicity, it deviates from Jinja2 as follows:
* - Line statements, cycle, super, macro tags and block nesting are not implemented
* - auto escapes html by default (the filter is "html" not "e")
* - Only "html" and "safe" filters are built in
* - Filters are not valid in expressions; `foo|length > 1` is not valid
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
*
* Notes:
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
* - `.2` is not a valid number literal; use `0.2`
*
*/
/*global require, exports, module, define */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
})(this, (function (jinja) {
"use strict";
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
//non-primitive literals (array and object literals)
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
//bare identifiers such as variables and in object literals: {foo: 'value'}
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
var ACCESSOR = /(\.i|\[[@#i]\])/g;
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
//extended (english) operators
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
var LEADING_SPACE = /^\s+/;
var TRAILING_SPACE = /\s+$/;
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
var TAGS = {
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
};
var delimeters = {
'{%': 'directive',
'{{': 'output',
'{#': 'comment'
};
var operators = {
and: '&&',
or: '||',
not: '!',
is: '==',
isnot: '!='
};
var constants = {
'true': true,
'false': false,
'null': null
};
function Parser() {
this.nest = [];
this.compiled = [];
this.childBlocks = 0;
this.parentBlocks = 0;
this.isSilent = false;
}
Parser.prototype.push = function (line) {
if (!this.isSilent) {
this.compiled.push(line);
}
};
Parser.prototype.parse = function (src) {
this.tokenize(src);
return this.compiled;
};
Parser.prototype.tokenize = function (src) {
var lastEnd = 0, parser = this, trimLeading = false;
matchAll(src, START_TOKEN, function (open, index, src) {
//here we match the rest of the src against a regex for this tag
var match = src.slice(index + open.length).match(TAGS[open]);
match = (match ? match[0] : '');
//here we sub out strings so we don't get false matches
var simplified = match.replace(STRINGS, '@');
//if we don't have a close tag or there is a nested open tag
if (!match || ~simplified.indexOf(open)) {
return index + 1;
}
var inner = match.slice(0, 0 - open.length);
//check for white-space collapse syntax
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
if (inner.slice(-1) === '-') var wsCollapseRight = true;
inner = inner.replace(/^-|-$/g, '').trim();
//if we're in raw mode and we are not looking at an "endraw" tag, move along
if (parser.rawMode && (open + inner) !== '{%endraw') {
return index + 1;
}
var text = src.slice(lastEnd, index);
lastEnd = index + open.length + match.length;
if (trimLeading) text = trimLeft(text);
if (wsCollapseLeft) text = trimRight(text);
if (wsCollapseRight) trimLeading = true;
if (open === '{{{') {
//liquid-style: make {{{x}}} => {{x|safe}}
open = '{{';
inner += '|safe';
}
parser.textHandler(text);
parser.tokenHandler(open, inner);
});
var text = src.slice(lastEnd);
if (trimLeading) text = trimLeft(text);
this.textHandler(text);
};
Parser.prototype.textHandler = function (text) {
this.push('write(' + JSON.stringify(text) + ');');
};
Parser.prototype.tokenHandler = function (open, inner) {
var type = delimeters[open];
if (type === 'directive') {
this.compileTag(inner);
} else if (type === 'output') {
var extracted = this.extractEnt(inner, STRINGS, '@');
//replace || operators with ~
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
//put back || operators
extracted.src = extracted.src.map(function (part) {
return part.split('~').join('||');
});
var parts = this.injectEnt(extracted, '@');
if (parts.length > 1) {
var filters = parts.slice(1).map(this.parseFilter.bind(this));
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
} else {
this.push('filter(' + this.parseExpr(parts[0]) + ');');
}
}
};
Parser.prototype.compileTag = function (str) {
var directive = str.split(' ')[0];
var handler = tagHandlers[directive];
if (!handler) {
throw new Error('Invalid tag: ' + str);
}
handler.call(this, str.slice(directive.length).trim());
};
Parser.prototype.parseFilter = function (src) {
src = src.trim();
var match = src.match(/[:(]/);
var i = match ? match.index : -1;
if (i < 0) return JSON.stringify([src]);
var name = src.slice(0, i);
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
args = this.parseExpr(args, {terms: true});
return '[' + JSON.stringify(name) + ',' + args + ']';
};
Parser.prototype.extractEnt = function (src, regex, placeholder) {
var subs = [], isFunc = typeof placeholder == 'function';
src = src.replace(regex, function (str) {
var replacement = isFunc ? placeholder(str) : placeholder;
if (replacement) {
subs.push(str);
return replacement;
}
return str;
});
return {src: src, subs: subs};
};
Parser.prototype.injectEnt = function (extracted, placeholder) {
var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src);
var arr = (isArr) ? src : [src];
var re = new RegExp('[' + placeholder + ']', 'g'), i = 0;
arr.forEach(function (src, index) {
arr[index] = src.replace(re, function () {
return subs[i++];
});
});
return isArr ? arr : arr[0];
};
//replace complex literals without mistaking subscript notation with array literals
Parser.prototype.replaceComplex = function (s) {
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
return this.injectEnt(parsed, 'v');
};
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
Parser.prototype.parseExpr = function (src, opts) {
opts = opts || {};
//extract string literals -> @
var parsed1 = this.extractEnt(src, STRINGS, '@');
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
return (op in operators) ? before + operators[op] + after : s;
});
//sub out non-string literals (numbers/true/false/null) -> #
// the distinction is necessary because @ can be object identifiers, # cannot
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
return (s in constants || NUMBER.test(s)) ? '#' : null;
});
//sub out object/variable identifiers -> i
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
//remove white-space
parsed3.src = parsed3.src.replace(/\s+/g, '');
//the rest of this is simply to boil the expression down and check validity
var simplified = parsed3.src;
//sub out complex literals (objects/arrays) -> ~
// the distinction is necessary because @ and # can be subscripts but ~ cannot
while (simplified !== (simplified = this.replaceComplex(simplified))) ;
//now @ represents strings, # represents other primitives and ~ represents non-primitives
//replace complex variables (those with dot/subscript accessors) -> v
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
//empty subscript or complex variables in subscript, are not permitted
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
simplified = simplified.replace(/[@#~v]/g, 'i');
//sub out operators
simplified = simplified.replace(OPERATORS, '%');
//allow 'not' unary operator
simplified = simplified.replace(/!+[i]/g, 'i');
var terms = opts.terms ? simplified.split(',') : [simplified];
terms.forEach(function (term) {
//simplify logical grouping
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i'))) ;
if (!term.match(/^i(%i)*/)) {
throw new Error('Invalid expression: ' + src + " " + term);
}
});
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
parsed2.src = this.injectEnt(parsed3, 'i');
parsed1.src = this.injectEnt(parsed2, '#');
return this.injectEnt(parsed1, '@');
};
Parser.prototype.parseVar = function (src) {
var args = Array.prototype.slice.call(arguments);
var str = args.pop(), index = args.pop();
//quote bare object identifiers (might be a reserved word like {while: 1})
if (src === 'i' && str.charAt(index + 1) === ':') {
return '"i"';
}
var parts = ['"i"'];
src.replace(ACCESSOR, function (part) {
if (part === '.i') {
parts.push('"i"');
} else if (part === '[i]') {
parts.push('get("i")');
} else {
parts.push(part.slice(1, -1));
}
});
return 'get(' + parts.join(',') + ')';
};
//escapes a name to be used as a javascript identifier
Parser.prototype.escName = function (str) {
return str.replace(/\W/g, function (s) {
return '$' + s.charCodeAt(0).toString(16);
});
};
Parser.prototype.parseQuoted = function (str) {
if (str.charAt(0) === "'") {
str = str.slice(1, -1).replace(/\\.|"/, function (s) {
if (s === "\\'") return "'";
return s.charAt(0) === '\\' ? s : ('\\' + s);
});
str = '"' + str + '"';
}
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
return JSON.parse(str);
};
//the context 'this' inside tagHandlers is the parser instance
var tagHandlers = {
'if': function (expr) {
this.push('if (' + this.parseExpr(expr) + ') {');
this.nest.unshift('if');
},
'else': function () {
if (this.nest[0] === 'for') {
this.push('}, function() {');
} else {
this.push('} else {');
}
},
'elseif': function (expr) {
this.push('} else if (' + this.parseExpr(expr) + ') {');
},
'endif': function () {
this.nest.shift();
this.push('}');
},
'for': function (str) {
var i = str.indexOf(' in ');
var name = str.slice(0, i).trim();
var expr = str.slice(i + 4).trim();
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
this.nest.unshift('for');
},
'endfor': function () {
this.nest.shift();
this.push('});');
},
'raw': function () {
this.rawMode = true;
},
'endraw': function () {
this.rawMode = false;
},
'set': function (stmt) {
var i = stmt.indexOf('=');
var name = stmt.slice(0, i).trim();
var expr = stmt.slice(i + 1).trim();
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
},
'block': function (name) {
if (this.isParent) {
++this.parentBlocks;
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
} else if (this.hasParent) {
this.isSilent = false;
++this.childBlocks;
blockName = 'block_' + (this.escName(name) || this.childBlocks);
this.push('function ' + blockName + '() {');
}
this.nest.unshift('block');
},
'endblock': function () {
this.nest.shift();
if (this.isParent) {
this.push('});');
} else if (this.hasParent) {
this.push('}');
this.isSilent = true;
}
},
'extends': function (name) {
name = this.parseQuoted(name);
var parentSrc = this.readTemplateFile(name);
this.isParent = true;
this.tokenize(parentSrc);
this.isParent = false;
this.hasParent = true;
//silence output until we enter a child block
this.isSilent = true;
},
'include': function (name) {
name = this.parseQuoted(name);
var incSrc = this.readTemplateFile(name);
this.isInclude = true;
this.tokenize(incSrc);
this.isInclude = false;
}
};
//liquid style
tagHandlers.assign = tagHandlers.set;
//python/django style
tagHandlers.elif = tagHandlers.elseif;
var getRuntime = function runtime(data, opts) {
var defaults = {autoEscape: 'toJson'};
var _toString = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty;
var getKeys = Object.keys || function (obj) {
var keys = [];
for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n);
return keys;
};
var isArray = Array.isArray || function (obj) {
return _toString.call(obj) === '[object Array]';
};
var create = Object.create || function (obj) {
function F() {
}
F.prototype = obj;
return new F();
};
var toString = function (val) {
if (val == null) return '';
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
};
var extend = function (dest, src) {
var keys = getKeys(src);
for (var i = 0, len = keys.length; i < len; i++) {
var key = keys[i];
dest[key] = src[key];
}
return dest;
};
//get a value, lexically, starting in current context; a.b -> get("a","b")
var get = function () {
var val, n = arguments[0], c = stack.length;
while (c--) {
val = stack[c][n];
if (typeof val != 'undefined') break;
}
for (var i = 1, len = arguments.length; i < len; i++) {
if (val == null) continue;
n = arguments[i];
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
}
return (val == null) ? '' : val;
};
var set = function (n, val) {
stack[stack.length - 1][n] = val;
};
var push = function (ctx) {
stack.push(ctx || {});
};
var pop = function () {
stack.pop();
};
var write = function (str) {
output.push(str);
};
var filter = function (val) {
for (var i = 1, len = arguments.length; i < len; i++) {
var arr = arguments[i], name = arr[0], filter = filters[name];
if (filter) {
arr[0] = val;
//now arr looks like [val, arg1, arg2]
val = filter.apply(data, arr);
} else {
throw new Error('Invalid filter: ' + name);
}
}
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
//auto escape if not explicitly safe or already escaped
val = filters[opts.autoEscape].call(data, val);
}
output.push(val);
};
var each = function (obj, loopvar, fn1, fn2) {
if (obj == null) return;
var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length;
var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}};
push(ctx);
for (var i = 0; i < len; i++) {
extend(ctx.loop, {index: i + 1, index0: i});
fn1(ctx[loopvar] = arr[i]);
}
if (len === 0 && fn2) fn2();
pop();
};
var block = function (fn) {
push();
fn();
pop();
};
var render = function () {
return output.join('');
};
data = data || {};
opts = extend(defaults, opts || {});
var filters = extend({
html: function (val) {
return toString(val)
.split('&').join('&amp;')
.split('<').join('&lt;')
.split('>').join('&gt;')
.split('"').join('&quot;');
},
safe: function (val) {
return val;
},
toJson: function (val) {
if (typeof val === 'object') {
return JSON.stringify(val);
}
return toString(val);
}
}, opts.filters || {});
var stack = [create(data || {})], output = [];
return {
get: get,
set: set,
push: push,
pop: pop,
write: write,
filter: filter,
each: each,
block: block,
render: render
};
};
var runtime;
jinja.compile = function (markup, opts) {
opts = opts || {};
var parser = new Parser();
parser.readTemplateFile = this.readTemplateFile;
var code = [];
code.push('function render($) {');
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
code.push.apply(code, parser.parse(markup));
code.push('return $.render();');
code.push('}');
code = code.join('\n');
if (opts.runtime === false) {
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
} else {
runtime = runtime || (runtime = getRuntime.toString());
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
}
return {render: fn};
};
jinja.render = function (markup, data, opts) {
var tmpl = jinja.compile(markup);
return tmpl.render(data, opts);
};
jinja.templateFiles = [];
jinja.readTemplateFile = function (name) {
var templateFiles = this.templateFiles || [];
var templateFile = templateFiles[name];
if (templateFile == null) {
throw new Error('Template file not found: ' + name);
}
return templateFile;
};
/*!
* Helpers
*/
function trimLeft(str) {
return str.replace(LEADING_SPACE, '');
}
function trimRight(str) {
return str.replace(TRAILING_SPACE, '');
}
function matchAll(str, reg, fn) {
//copy as global
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
var match;
while ((match = reg.exec(str))) {
var result = fn(match[0], match.index, str);
if (typeof result == 'number') {
reg.lastIndex = result;
}
}
}
}));

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,138 +0,0 @@
const peq = new Uint32Array(0x10000);
const myers_32 = (a, b) => {
const n = a.length;
const m = b.length;
const lst = 1 << (n - 1);
let pv = -1;
let mv = 0;
let sc = n;
let i = n;
while (i--) {
peq[a.charCodeAt(i)] |= 1 << i;
}
for (i = 0; i < m; i++) {
let eq = peq[b.charCodeAt(i)];
const xv = eq | mv;
eq |= ((eq & pv) + pv) ^ pv;
mv |= ~(eq | pv);
pv &= eq;
if (mv & lst) {
sc++;
}
if (pv & lst) {
sc--;
}
mv = (mv << 1) | 1;
pv = (pv << 1) | ~(xv | mv);
mv &= xv;
}
i = n;
while (i--) {
peq[a.charCodeAt(i)] = 0;
}
return sc;
};
const myers_x = (b, a) => {
const n = a.length;
const m = b.length;
const mhc = [];
const phc = [];
const hsize = Math.ceil(n / 32);
const vsize = Math.ceil(m / 32);
for (let i = 0; i < hsize; i++) {
phc[i] = -1;
mhc[i] = 0;
}
let j = 0;
for (; j < vsize - 1; j++) {
let mv = 0;
let pv = -1;
const start = j * 32;
const vlen = Math.min(32, m) + start;
for (let k = start; k < vlen; k++) {
peq[b.charCodeAt(k)] |= 1 << k;
}
for (let i = 0; i < n; i++) {
const eq = peq[a.charCodeAt(i)];
const pb = (phc[(i / 32) | 0] >>> i) & 1;
const mb = (mhc[(i / 32) | 0] >>> i) & 1;
const xv = eq | mv;
const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;
let ph = mv | ~(xh | pv);
let mh = pv & xh;
if ((ph >>> 31) ^ pb) {
phc[(i / 32) | 0] ^= 1 << i;
}
if ((mh >>> 31) ^ mb) {
mhc[(i / 32) | 0] ^= 1 << i;
}
ph = (ph << 1) | pb;
mh = (mh << 1) | mb;
pv = mh | ~(xv | ph);
mv = ph & xv;
}
for (let k = start; k < vlen; k++) {
peq[b.charCodeAt(k)] = 0;
}
}
let mv = 0;
let pv = -1;
const start = j * 32;
const vlen = Math.min(32, m - start) + start;
for (let k = start; k < vlen; k++) {
peq[b.charCodeAt(k)] |= 1 << k;
}
let score = m;
for (let i = 0; i < n; i++) {
const eq = peq[a.charCodeAt(i)];
const pb = (phc[(i / 32) | 0] >>> i) & 1;
const mb = (mhc[(i / 32) | 0] >>> i) & 1;
const xv = eq | mv;
const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;
let ph = mv | ~(xh | pv);
let mh = pv & xh;
score += (ph >>> (m - 1)) & 1;
score -= (mh >>> (m - 1)) & 1;
if ((ph >>> 31) ^ pb) {
phc[(i / 32) | 0] ^= 1 << i;
}
if ((mh >>> 31) ^ mb) {
mhc[(i / 32) | 0] ^= 1 << i;
}
ph = (ph << 1) | pb;
mh = (mh << 1) | mb;
pv = mh | ~(xv | ph);
mv = ph & xv;
}
for (let k = start; k < vlen; k++) {
peq[b.charCodeAt(k)] = 0;
}
return score;
};
const distance = (a, b) => {
if (a.length < b.length) {
const tmp = b;
b = a;
a = tmp;
}
if (b.length === 0) {
return a.length;
}
if (a.length <= 32) {
return myers_32(a, b);
}
return myers_x(a, b);
};
const closest = (str, arr) => {
let min_distance = Infinity;
let min_index = 0;
for (let i = 0; i < arr.length; i++) {
const dist = distance(str, arr[i]);
if (dist < min_distance) {
min_distance = dist;
min_index = i;
}
}
return arr[min_index];
};
export { closest, distance };

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,61 +0,0 @@
var rule = {
title:'88看球',
// host:'http://www.88kanqiu.cc',
host:'http://www.88kanqiu.bar/',
url: "/match/fyclass/live",
searchUrl: "",
searchable: 0,
quickSearch: 0,
class_parse: ".nav-pills li;a&&Text;a&&href;/match/(\\d+)/live",
headers: {
"User-Agent": "PC_UA",
},
timeout: 5000,
play_parse: true,
pagecount:{"1":1,"2":1,"4":1,"22":1,"8":1,"9":1,"10":1,"14":1,"15":1,"12":1,"13":1,"16":1,"28":1,"7":1,"11":1,"33":1,"27":1,"23":1,"26":1,"3":1,"21":1,"18":1},
lazy: `js:
if(/embed=/.test(input)) {
let url = input.match(/embed=(.*?)&/)[1];
url = base64Decode(url);
input = {
jx:0,
url: url.split('#')[0],
parse: 0
}
} else if (/\?url=/.test(input)){
input = {
jx:0,
url: input.split('?url=')[1].split('#')[0],
parse: 0
}
} else {
input
}
`,
limit: 6,
double: false,
推荐: "*",
一级: ".list-group .group-game-item;.d-none&&Text;img&&src;.btn&&Text;a&&href",
二级: {
title: ".game-info-container&&Text;.customer-navbar-nav li&&Text",
img: "img&&src",
desc: ";;;div.team-name:eq(0)&&Text;div.team-name:eq(1)&&Text",
content: "div.game-time&&Text",
tabs: "js:TABS=['实时直播']",
lists: `js:
LISTS = [];
let html = request(input.replace('play', 'play-url'));
let pdata = JSON.parse(html).data;
pdata = pdata.slice(6);
pdata = pdata.slice(0, -2);
pdata = base64Decode(pdata);
// log(pdata);
let jo = JSON.parse(pdata).links;
let d = jo.map(function (it) {
return it.name + '$' + urlencode(it.url)
});
LISTS.push(d)
`,
},
搜索: "",
};

View File

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

View File

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

View File

@ -1,178 +0,0 @@
var rule = {
title:'MP4电影[磁]',
host:'https://www.mp4us.com',
homeUrl: '/',
url: '/list/fyclass-fypage.html?',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '/search/**-1.html',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': 'PC_UA',
'Cookie':''
},
timeout:5000,
class_name: '动作片&科幻片&爱情片&喜剧片&恐怖片&战争片&剧情片&纪录片&动画片&电视剧',
class_url: '1&2&3&4&5&6&7&8&9&10',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'div.index_update ul li;a&&Text;;b&&Text;a&&href',
一级:'div#list_all ul li;img.lazy&&alt;img.lazy&&data-original;span.update_time&&Text;a&&href',
二级:{
title:"div.article-header h1&&Text",
img:"div.article-header div.pic img&&src",
desc:'div.article-header div.text&&Text',
content:'div.article-related.info p&&Text',
tabs:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
TABS=[]
let d = pdfa(html, 'ul.down-list&&li a');
let tabsa = [];
let tabsq = [];
let tabsm = false;
let tabse = false;
d.forEach(function(it) {
let burl = pdfh(it, 'a&&href');
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
tabsa.push("阿里雲盤");
}else if (burl.startsWith("https://pan.quark.cn/s/")){
tabsq.push("夸克網盤");
}else if (burl.startsWith("magnet")){
tabsm = true;
}else if (burl.startsWith("ed2k")){
tabse = true;
}
});
if (tabsm === true){
TABS.push("磁力");
}
if (tabse === true){
TABS.push("電驢");
}
if (false && tabsa.length + tabsq.length > 1){
TABS.push("選擇右側綫路");
}
let tmpIndex;
tmpIndex=1;
tabsa.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
tmpIndex=1;
tabsq.forEach(function(it){
TABS.push(it + tmpIndex);
tmpIndex = tmpIndex + 1;
});
log('mp4us TABS >>>>>>>>>>>>>>>>>>' + TABS);
`,
lists:`js:
log(TABS);
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
LISTS = [];
let d = pdfa(html, 'ul.down-list&&li a');
let lista = [];
let listq = [];
let listm = [];
let liste = [];
d.forEach(function(it){
let burl = pdfh(it, 'a&&href');
let title = pdfh(it, 'a&&Text');
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
let loopresult = title + '$' + burl;
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = "push://" + burl;
}
loopresult = title + '$' + burl;
lista.push(loopresult);
}else if (burl.startsWith("https://pan.quark.cn/s/")){
if (true){
if (TABS.length==1){
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
}else{
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
}
}else{
burl = "push://" + burl;
}
loopresult = title + '$' + burl;
listq.push(loopresult);
}else if (burl.startsWith("magnet")){
listm.push(loopresult);
}else if (burl.startsWith("ed2k")){
liste.push(loopresult);
}
});
if (listm.length>0){
LISTS.push(listm.reverse());
}
if (liste.length>0){
LISTS.push(liste.reverse());
}
if (false && lista.length + listq.length > 1){
LISTS.push(["選擇右側綫路或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
}
lista.forEach(function(it){
LISTS.push([it]);
});
listq.forEach(function(it){
LISTS.push([it]);
});
`,
},
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
if (rule_fetch_params.headers.Cookie.startsWith("http")){
rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);
let cookie = rule_fetch_params.headers.Cookie;
setItem(RULE_CK, cookie);
};
log('mp4us seach cookie>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie);
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
//log("mp4us search params>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
let search_html = request( HOST + '/search/' + encodeURIComponent(KEY) + '-1.html', _fetch_params)
//log("mp4us search result>>>>>>>>>>>>>>>" + search_html);
let d=[];
//'div#list_all li;img.lazy&&alt;img.lazy&&src;div.text_info h2&&Text;a&&href;p.info&&Text',
let dlist = pdfa(search_html, 'div#list_all li');
dlist.forEach(function(it){
let title = pdfh(it, 'img.lazy&&alt');
if (title.includes(KEY)){
if (searchObj.quick === true){
title = KEY;
}
let img = pd(it, 'img.lazy&&src', HOST);
let content = pdfh(it, 'div.text_info h2&&Text');
let desc = pdfh(it, 'p.info&&Text');
let url = pd(it, 'a&&href', HOST);
d.push({
title:title,
img:img,
content:content,
desc:desc,
url:url
})
}
});
setResult(d);
`,
}

View File

@ -1,102 +0,0 @@
var rule = {
title:'人人影视[搜]',
host:'https://yyets.click',
homeUrl:'/',
url:'*',
filter_url:'{{fl.class}}',
filter:{
},
searchUrl: '*',
searchable:2,
quickSearch:0,
filterable:0,
headers:{
'User-Agent': PC_UA,
'Accept': '*/*',
'Referer': 'https://yyets.click/',
'Cookie':'http://127.0.0.1:9978/file:///tvbox/JS/lib/yyets.txt',
},
timeout:5000,
class_name:'',
class_url:'',
play_parse:true,
play_json:[{
re:'*',
json:{
parse:0,
jx:0
}
}],
lazy:'',
limit:6,
推荐:'',
一级:'',
二级:`js:
VOD.vod_play_from = "雲盤";
VOD.vod_remarks = detailUrl;
VOD.vod_actor = "沒有二級,只有一級鏈接直接推送播放";
VOD.vod_content = MY_URL;
VOD.vod_play_url = "雲盤$" + detailUrl;
`,
搜索:`js:
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
if (rule_fetch_params.headers.Cookie.startsWith("http")){
rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);
let cookie = rule_fetch_params.headers.Cookie;
setItem(RULE_CK, cookie);
};
log('yyets search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie);
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
_fetch_params.headers.Referer = 'http://yyets.click/search?keyword=' + encodeURIComponent(KEY) + '&type=default';
log('yyets search params>>>>>>>>>>>>>>>' + JSON.stringify(_fetch_params));
let new_html=request(rule.homeUrl + 'api/resource?keyword=' + encodeURIComponent(KEY) + '&type=default', _fetch_params);
//log("yyets search result>>>>>>>>>>>>>>>" + new_html);
let json=JSON.parse(new_html);
let d=[];
for(const it in json.comment){
if (json.comment.hasOwnProperty(it)){
log("yyets search it>>>>>>>>>>>>>>>" + JSON.stringify(json.comment[it]));
if (/(www.aliyundrive.com|pan.quark.cn|www.alipan.com)/.test(json.comment[it].comment)){
let its = json.comment[it].comment.split("\\n");
let i=0;
while(i<its.length){
let title=its[i].trim().replaceAll(/\\s+/g," ");
if (title.length==0){
i++;
continue;
}
let urls=[];
log("yyets search title>>>>>>>>>>>>>>>" + title);
while(++i<its.length){
log("yyets search url>>>>>>>>>>>>>>>" + its[i]);
let burl = its[i].trim().split(" ")[0];
if (burl.length==0){
continue;
}
if (burl.includes("https://")){
urls.push("https:"+burl.split("https:")[1]);
}else{
break;
}
}
if (urls.length>0){
log("yyets search title,urls>>>>>>>>>>>>>>>" + title + ",[" + JSON.stringify(urls) + "]");
if (title.includes(KEY)){
urls.forEach(function (url) {
d.push({
title:title,
img:'',
content:json.comment[it].comment,
desc:json.comment[it].date,
url:'push://'+url
});
});
}
}
}
}
}
}
setResult(d);
`,
}

File diff suppressed because it is too large Load Diff

View File

@ -1,773 +0,0 @@
{
"author": "takagen99",
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"homeUrl": "https://www.duboku.tv/",
"dcVipFlag": "true",
"dcPlayUrl": "true",
"cateNode": "//ul[contains(@class,'nav-menu')]/li/a[contains(@href, 'vodtype')]",
"cateName": "/text()",
"cateId": "/@href",
"cateIdR": "/vodtype/(\\w+).html",
"cateManual": {
"陆剧": "13",
"日韩剧": "15",
"短剧": "21",
"英美剧": "16",
"台泰剧": "14",
"港剧": "20",
"综艺": "3",
"动漫": "4"
},
"homeVodNode": "//ul[contains(@class,'myui-vodlist')]/li/div/a",
"homeVodName": "/@title",
"homeVodId": "/@href",
"homeVodIdR": "/voddetail/(\\w+).html",
"homeVodImg": "/@data-original",
"homeVodImgR": "\\S+(http\\S+)",
"homeVodMark": "//span[contains(@class,'pic-text')]/text()",
"cateUrl": "https://www.duboku.tv/vodshow/{cateId}-{area}-{by}------{catePg}---{year}.html",
"cateVodNode": "//ul[contains(@class,'myui-vodlist')]/li/div/a",
"cateVodName": "/@title",
"cateVodId": "/@href",
"cateVodIdR": "/voddetail/(\\w+).html",
"cateVodImg": "/@data-original",
"cateVodImgR": "\\S+(http\\S+)",
"cateVodMark": "//span[contains(@class,'pic-text')]/text()",
"dtUrl": "https://w.duboku.io/voddetail/{vid}.html",
"dtNode": "//body",
"dtName": "//div[contains(@class,'myui-content__thumb')]/a/@title",
"dtNameR": "",
"dtImg": "//div[contains(@class,'myui-content__thumb')]/a/img/@data-original",
"dtImgR": "",
"dtCate": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '分类')]/following-sibling::a/text()",
"dtYear": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '年份')]/following-sibling::a/text()",
"dtArea": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '地区')]/following-sibling::a/text()",
"dtMark": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '更新')]/following-sibling::a/text()",
"dtDirector": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '导演')]/following-sibling::a/text()",
"dtActor": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '主演')]/following-sibling::a/text()",
"dtDesc": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '简介')]/following-sibling::a/text()",
"dtFromNode": "//ul[contains(@class,'nav-tabs')]/li/a",
"dtFromName": "/text()",
"dtFromNameR": "",
"dtUrlNode": "//ul[contains(@class,'myui-content__list')]",
"dtUrlSubNode": "/li/a",
"dtUrlId": "/@href",
"dtUrlIdR": "/vodplay/(\\S+).html",
"dtUrlName": "/text()",
"dtUrlNameR": "",
"playUrl": "https://w.duboku.io/vodplay/{playUrl}.html",
"playUa": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"playReferer": "https://w.duboku.io/",
"searchUrl": "https://w.duboku.io/index.php/ajax/suggest?mid=1&wd={wd}&limit=10",
"scVodNode": "json:list",
"scVodName": "name",
"scVodId": "id",
"scVodIdR": "",
"scVodImg": "pic",
"scVodMark": "",
"filter": {
"13": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"14": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"16": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"15": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"2": [
{
"key": "cateId",
"name": "类型",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "陆剧",
"v": "13"
},
{
"n": "日韩剧",
"v": "15"
},
{
"n": "英美剧",
"v": "16"
},
{
"n": "台泰剧",
"v": "14"
},
{
"n": "港剧",
"v": "20"
}
]
},
{
"key": "area",
"name": "地区",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "内地",
"v": "内地"
},
{
"n": "韩国",
"v": "韩国"
},
{
"n": "香港",
"v": "香港"
},
{
"n": "台湾",
"v": "台湾"
},
{
"n": "美国",
"v": "美国"
},
{
"n": "英国",
"v": "英国"
},
{
"n": "巴西",
"v": "巴西"
},
{
"n": "西班牙",
"v": "西班牙"
},
{
"n": "泰国",
"v": "泰国"
},
{
"n": "德国",
"v": "德国"
},
{
"n": "法国",
"v": "法国"
},
{
"n": "日本",
"v": "日本"
},
{
"n": "荷兰",
"v": "荷兰"
}
]
},
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"3": [
{
"key": "area",
"name": "地区",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "内地",
"v": "内地"
},
{
"n": "香港",
"v": "香港"
},
{
"n": "台湾",
"v": "台湾"
},
{
"n": "韩国",
"v": "韩国"
},
{
"n": "美国",
"v": "美国"
}
]
},
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"4": [
{
"key": "area",
"name": "地区",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "国产",
"v": "国产"
},
{
"n": "日本",
"v": "日本"
},
{
"n": "美国",
"v": "美国"
},
{
"n": "法国",
"v": "法国"
},
{
"n": "其他",
"v": "其他"
}
]
},
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"20": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
],
"21": [
{
"key": "year",
"name": "年份",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "2023",
"v": "2023"
},
{
"n": "2022",
"v": "2022"
},
{
"n": "2021",
"v": "2021"
},
{
"n": "2020",
"v": "2020"
},
{
"n": "2019",
"v": "2019"
},
{
"n": "2018",
"v": "2018"
},
{
"n": "2017",
"v": "2017"
}
]
},
{
"key": "by",
"name": "排序",
"value": [
{
"n": "排序",
"v": ""
},
{
"n": "时间",
"v": "time"
},
{
"n": "人气",
"v": "hits"
},
{
"n": "评分",
"v": "score"
}
]
}
]
}
}

View File

@ -1,16 +0,0 @@
[
{"name":"范明明IPV6","url":"http://127.0.0.1:10079/c/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u"},
{"name":"最强国内直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/tv.m3u"},
{"name":"肥羊咪咕直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/migu.m3u"},
{"name":"肥羊B站直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bililive.m3u"},
{"name":"肥羊虎牙一起看","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/huyayqk.m3u"},
{"name":"肥羊斗鱼一起看","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/douyuyqk.m3u"},
{"name":"肥羊YY轮播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/yylunbo.m3u"},
{"name":"Gather.电视直播","url":"https://tv.iill.top/m3u/Gather"},
{"name":"Gather.网络直播","url":"https://tv.iill.top/m3u/Live"},
{"name":"Gather.MyTV","url":"http://127.0.0.1:10079/c/60/proxy/https://tv.iill.top/m3u/MyTV"},
{"name":"范明明OfficalSite","url":"http://127.0.0.1:10079/p/0/proxy/https://live.fanmingming.com/tv/m3u/global.m3u"},
{"name":"范明明GitHub","url":"http://127.0.0.1:10079/c/3600/proxy/https://mirror.ghproxy.com/raw.githubusercontent.com/fanmingming/live/main/tv/m3u/global.m3u"},
{"name":"范明明IPV6","url":"http://127.0.0.1:10079/c/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u"}
]

View File

@ -1,80 +0,0 @@
[
{"type_id":"https://mypikpak.com/s/self", "type_name":"我的PikPak網盤", "version":"20240301"},
{"type_id":"https://mypikpak.com/s/VNRT8Wr8BGyw1kt1HkijKR4Qo1","type_name":"高清劇集合集一二"},
{"type_id":"https://mypikpak.com/s/VNThL9vJ7kj57e2Kr_dlOzc0o1","type_name":"每日更新" },
{"type_id":"https://mypikpak.com/s/VNBG3CPruacfHy3KVrVR1Qbko1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧1"},
{"type_id":"https://mypikpak.com/s/VNBXQHEBywwEP48SYNoLGhg-o1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧10"},
{"type_id":"https://mypikpak.com/s/VNCKGMKeL4KQWxNSeNl-aNK8o1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧11"},
{"type_id":"https://mypikpak.com/s/VNCKIgIdXbeMUnS27Hc7ifoho1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧12"},
{"type_id":"https://mypikpak.com/s/VNCKK_lIL4KQWxNSeNl-b-Avo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧13"},
{"type_id":"https://mypikpak.com/s/VNCPyF1ibAmUFsTwcgPpV2RPo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧14"},
{"type_id":"https://mypikpak.com/s/VNCPyIV4bsikE1REQUzU3HAKo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧15"},
{"type_id":"https://mypikpak.com/s/VNCPyLg-XbeMUnS27Hc8e-evo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧16"},
{"type_id":"https://mypikpak.com/s/VNCPyOHZfY9FgjheL_s6tE0Eo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧17"},
{"type_id":"https://mypikpak.com/s/VNCdGBWsTsU_1xrcd7arNGkyo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧18"},
{"type_id":"https://mypikpak.com/s/VNCdGaN8bsik85HcYchTzGwpo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧19"},
{"type_id":"https://mypikpak.com/s/VNCdGlQdbAmU3kIGsTh-INYQo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧20"},
{"type_id":"https://mypikpak.com/s/VNCdGvg1QqH-jGYGfgcDoqWho1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧21"},
{"type_id":"https://mypikpak.com/s/VNCdHOhJTsU_1xrcd7arNWAuo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧22"},
{"type_id":"https://mypikpak.com/s/VNCdHU8Xbsik85HcYchTzRlwo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧23"},
{"type_id":"https://mypikpak.com/s/VNDJ--9QP3sxqczyGV8n35pUo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧24"},
{"type_id":"https://mypikpak.com/s/VNDJ-2f3xeTB-N74vaHopsB8o1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧25"},
{"type_id":"https://mypikpak.com/s/VNDJ-6m_P3sxqczyGV8n37Lso1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧26"},
{"type_id":"https://mypikpak.com/s/VNDJ-AxdxeTB-N74vaHoptVeo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧27"},
{"type_id":"https://mypikpak.com/s/VNDJ-F3_OLXqy_gd7t0qYPsTo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧28"},
{"type_id":"https://mypikpak.com/s/VNJ-KE7EDnDGgthutL8stFDco1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧29"},
{"type_id":"https://mypikpak.com/s/VNBGhK25s795X1GmZKtAzarxo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧3"},
{"type_id":"https://mypikpak.com/s/VNJ-KU-PpnUdNyThzczFHNY0o1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧30"},
{"type_id":"https://mypikpak.com/s/VNKX8Tmvg-_M2ALfxiCXcfbOo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧31"},
{"type_id":"https://mypikpak.com/s/VNKX8k1cDAay6DoGUEtaSmGjo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧32"},
{"type_id":"https://mypikpak.com/s/VNLt5PTTTImas0d3tF0BaJ7Zo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧33"},
{"type_id":"https://mypikpak.com/s/VNLt5dq-vYqkqbIuRJRjLoiso1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧34"},
{"type_id":"https://mypikpak.com/s/VNLuwIBrvYqkY2pqZt625qhyo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧35"},
{"type_id":"https://mypikpak.com/s/VNLuwKtrvYqkY2pqZt625r-eo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧36"},
{"type_id":"https://mypikpak.com/s/VNLyAGr0Qwh14Yz40bSwR67do1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧37"},
{"type_id":"https://mypikpak.com/s/VNLyAJDMZAcORH2HWUMhsvGWo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧38"},
{"type_id":"https://mypikpak.com/s/VNLySlyJpr1J-y7W15G4N6xXo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧39"},
{"type_id":"https://mypikpak.com/s/VNBGjxzm-8JG74imIZI6qg8Do1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧4"},
{"type_id":"https://mypikpak.com/s/VNLySocLsRCm72XnqKv7pueto1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧40"},
{"type_id":"https://mypikpak.com/s/VNLyXhUKwRiUO2berP7_qFoao1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧41"},
{"type_id":"https://mypikpak.com/s/VNBH3M6lJXuc4t0v-pqB0dFQo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧5"},
{"type_id":"https://mypikpak.com/s/VNBHRToB_DHT_nmBnwoud8QJo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧6"},
{"type_id":"https://mypikpak.com/s/VNBHSrWiCjrm4NxyIs_56cHpo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧7"},
{"type_id":"https://mypikpak.com/s/VNBXPhSLJktjoBJJe8ptXNbco1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧8"},
{"type_id":"https://mypikpak.com/s/VNBXPwl3bA6kG0eqiyJI3ulOo1","type_name":"/🕸我的PikPak分享/电视剧140T/电视剧9"},
{"type_id":"https://mypikpak.com/s/VNDb64cFhcn-yqNU5EWDgRZno1","type_name":"/🕸我的PikPak分享/电影75T/电影1"},
{"type_id":"https://mypikpak.com/s/VNM8-8Xlpr1JhKCjzr3hvs2Vo1","type_name":"/🕸我的PikPak分享/电影75T/电影10"},
{"type_id":"https://mypikpak.com/s/VNDb67b3hcn-yqNU5EWDgUDWo1","type_name":"/🕸我的PikPak分享/电影75T/电影2"},
{"type_id":"https://mypikpak.com/s/VNDca2W6hcn-yqNU5EWE-PLOo1","type_name":"/🕸我的PikPak分享/电影75T/电影3"},
{"type_id":"https://mypikpak.com/s/VNE5x-MGTKDwgZ2rSxM1xhrNo1","type_name":"/🕸我的PikPak分享/电影75T/电影4"},
{"type_id":"https://mypikpak.com/s/VNEdL2CecnVliWDE0AMdROMzo1","type_name":"/🕸我的PikPak分享/电影75T/电影5"},
{"type_id":"https://mypikpak.com/s/VNF8bBfoU5Warn8hY_LZYs3Xo1","type_name":"/🕸我的PikPak分享/电影75T/电影6"},
{"type_id":"https://mypikpak.com/s/VNGGxkU4AYqxeOi-Ts-R_4koo1","type_name":"/🕸我的PikPak分享/电影75T/电影7"},
{"type_id":"https://mypikpak.com/s/VNGHC0J31cRSfFQDubOJoLCAo1","type_name":"/🕸我的PikPak分享/电影75T/电影8"},
{"type_id":"https://mypikpak.com/s/VNM7V9gdpr1JgySnCF-P07aJo1","type_name":"/🕸我的PikPak分享/电影75T/电影9"},
{"type_id":"https://mypikpak.com/s/VNRnagBUCfOipBFoWCX8EGSdo1","type_name":"/🕸我的PikPak分享/高清电影/合集10"},
{"type_id":"https://mypikpak.com/s/VNRR1cc0LmyyGDe21AoK6Ulho1","type_name":"/🕸我的PikPak分享/高清电影/合集11"},
{"type_id":"https://mypikpak.com/s/VNRlVwQYQgqv395kxGBhPmDoo1","type_name":"/🕸我的PikPak分享/高清电影/合集2"},
{"type_id":"https://mypikpak.com/s/VNRm3yZtBGywKa118vzvgAg6o1","type_name":"/🕸我的PikPak分享/高清电影/合集3"},
{"type_id":"https://mypikpak.com/s/VNRmWOmQBGywKa118vzvlRiZo1","type_name":"/🕸我的PikPak分享/高清电影/合集4"},
{"type_id":"https://mypikpak.com/s/VNRmoFmoroRROhEkho_8kY_1o1","type_name":"/🕸我的PikPak分享/高清电影/合集5"},
{"type_id":"https://mypikpak.com/s/VNRn6HqiBGywKa118vzvuqFqo1","type_name":"/🕸我的PikPak分享/高清电影/合集6"},
{"type_id":"https://mypikpak.com/s/VNRnJASUroRROhEkho_8tpGfo1","type_name":"/🕸我的PikPak分享/高清电影/合集7"},
{"type_id":"https://mypikpak.com/s/VNRlg0pS7aWN3HWJGVGp2pZTo1","type_name":"/🕸我的PikPak分享/高清电影/合集8"},
{"type_id":"https://mypikpak.com/s/VNRnQbMN7aWN3HWJGVGpSkxFo1","type_name":"/🕸我的PikPak分享/高清电影/合集9"},
{"type_id":"https://mypikpak.com/s/VNRTAMNvBGyw1kt1HkijL-n0o1","type_name":"/🕸我的PikPak分享/高清剧集A/合集11"},
{"type_id":"https://mypikpak.com/s/VNRTAhOZLmyyX7yiCb6t1jTuo1","type_name":"/🕸我的PikPak分享/高清剧集A/合集14"},
{"type_id":"https://mypikpak.com/s/VNRTBCKPLmyyX7yiCb6t1qEKo1","type_name":"/🕸我的PikPak分享/高清剧集A/合集18"},
{"type_id":"https://mypikpak.com/s/VNRT8zZXg3b_VYsn0bCwlVh5o1","type_name":"/🕸我的PikPak分享/高清剧集A/合集3"},
{"type_id":"https://mypikpak.com/s/VNRT9eYeBGyw1kt1HkijKmL_o1","type_name":"/🕸我的PikPak分享/高清剧集A/合集5"},
{"type_id":"https://mypikpak.com/s/VNRTA2HOg3b_VYsn0bCwlhKyo1","type_name":"/🕸我的PikPak分享/高清剧集A/合集8"},
{"type_id":"https://mypikpak.com/s/VNRTCK4Lg3b_VYsn0bCwmeWXo1","type_name":"/🕸我的PikPak分享/高清剧集B/合集24"},
{"type_id":"https://mypikpak.com/s/VNRTCmbnCfOi1Zl2Ft25Sjw8o1","type_name":"/🕸我的PikPak分享/高清剧集B/合集30"},
{"type_id":"https://mypikpak.com/s/VNRTD2ceyM2NQYlKo78MEzY0o1","type_name":"/🕸我的PikPak分享/高清剧集B/合集32"},
{"type_id":"https://mypikpak.com/s/VNRTDH_KBGyw1kt1HkijMHG5o1","type_name":"/🕸我的PikPak分享/高清剧集B/合集34"},
{"type_id":"https://mypikpak.com/s/VNRTDh9fQgqv_6lSY5Z75Z5Yo1","type_name":"/🕸我的PikPak分享/高清剧集B/合集35"},
{"type_id":"https://mypikpak.com/s/VNRTDyshQgqv_6lSY5Z75a42o1","type_name":"/🕸我的PikPak分享/高清剧集B/合集37"},
{"type_id":"https://mypikpak.com/s/VNRTEG11roRROhEkho_4qFPYo1","type_name":"/🕸我的PikPak分享/高清剧集B/合集39"},
{"type_id":"https://mypikpak.com/s/VNRTFVbPBGyw1kt1HkijMoBko1","type_name":"/🕸我的PikPak分享/高清剧集B/合集41"}
]

View File

@ -1,59 +0,0 @@
{
"recommend":"名称",
"class":[
{
"type_id":"名称",
"type_name":"名称"
},
{
"type_id":"片名",
"type_name":"片名"
},
{
"type_id":"LIST:iso,原盘",
"type_name":"ISO,原盘"
},
{
"type_id":"ali",
"type_name":"阿里"
},
{
"type_id":"quark",
"type_name":"夸克"
},
{
"type_id":"uc.cn",
"type_name":"UC"
},
{
"type_id":"123",
"type_name":"123"
},
{
"type_id":"189",
"type_name":"189"
},
{
"type_id":"LIST:115,anxia",
"type_name":"115"
},
{
"type_id":"pikpak",
"type_name":"PikPak"
},
{
"type_id":"xunlei",
"type_name":"迅雷"
},
{
"type_id":"mp4",
"type_name":"MP4"
},
{
"type_id":"LIST:测试1,测试2",
"type_name":"测试"
}
],
"jx":0,
"parse":0
}

File diff suppressed because it is too large Load Diff

View File

@ -1,167 +0,0 @@
#EXTM3U
#EXTINF:-1,28 AI 智慧賽馬
http://aktv-stream.m16tv.cfd/stream/aktv/28ai/AKTV.m3u8
#EXTINF:-1,Channel 5 HD
http://aktv-stream.m16tv.cfd/stream/aktv/channel5hd/AKTV.m3u8
#EXTINF:-1,Channel 8 HD
http://aktv-stream.m16tv.cfd/stream/aktv/channel8hd/AKTV.m3u8
#EXTINF:-1,Channel U HD
http://aktv-stream.m16tv.cfd/stream/aktv/channeluhd/AKTV.m3u8
#EXTINF:-1,myTV SUPER 18台
http://aktv-stream.m16tv.cfd/stream/aktv/mytvsuper18/AKTV.m3u8
#EXTINF:-1,PopC
http://aktv-stream.m16tv.cfd/stream/aktv/popc/AKTV.m3u8
#EXTINF:-1,ROCK Action
http://aktv-stream.m16tv.cfd/stream/aktv/rockaction/AKTV.m3u8
#EXTINF:-1,TVB Plus
http://aktv-stream.m16tv.cfd/stream/aktv/tvbplus/AKTV.m3u8
#EXTINF:-1,tvN
http://aktv-stream.m16tv.cfd/stream/aktv/tvn/AKTV.m3u8
#EXTINF:-1,中天新聞台
http://aktv-stream.m16tv.cfd/stream/aktv/null-6/AKTV.m3u8
#EXTINF:-1,千禧經典台(HK)
http://aktv-stream.m16tv.cfd/stream/aktv/null-15/AKTV.m3u8
#EXTINF:-1,娛樂新聞台(HK)
http://aktv-stream.m16tv.cfd/stream/aktv/hk/AKTV.m3u8
#EXTINF:-1,寰宇新聞台
http://aktv-stream.m16tv.cfd/stream/aktv/null-7/AKTV.m3u8
#EXTINF:-1,明珠剧集台(北美)
http://aktv-stream.m16tv.cfd/stream/aktv/null-19/AKTV.m3u8
#EXTINF:-1,明珠台
http://aktv-stream.m16tv.cfd/stream/aktv/null-2/AKTV.m3u8
#EXTINF:-1,無線新聞台
http://aktv-stream.m16tv.cfd/stream/aktv/null-1/AKTV.m3u8
#EXTINF:-1,美亞電影台(HK)
http://aktv-stream.m16tv.cfd/stream/aktv/hk-1/AKTV.m3u8
#EXTINF:-1,翡翠剧集台(北美)
http://aktv-stream.m16tv.cfd/stream/aktv/null-18/AKTV.m3u8
#EXTINF:-1,翡翠台
http://aktv-stream.m16tv.cfd/stream/aktv/null/AKTV.m3u8
#EXTINF:-1,翡翠台 4K
http://aktv-stream.m16tv.cfd/stream/aktv/4k/AKTV.m3u8
#EXTINF:-1,翡翠综合台(北美)
http://aktv-stream.m16tv.cfd/stream/aktv/null-17/AKTV.m3u8
#EXTINF:-1,鳳凰中文
http://aktv-stream.m16tv.cfd/stream/aktv/null-3/AKTV.m3u8
#EXTINF:-1,鳳凰資訊
http://aktv-stream.m16tv.cfd/stream/aktv/null-4/AKTV.m3u8
#EXTINF:-1,鳳凰香港
http://aktv-stream.m16tv.cfd/stream/aktv/null-5/AKTV.m3u8
#EXTINF:-1,黃金翡翠台
http://aktv-stream.m16tv.cfd/stream/aktv/null-21/AKTV.m3u8
#EXTINF:-1,AXN
http://aktv-stream.m16tv.cfd/stream/aktv2/axn/AKTV.m3u8
#EXTINF:-1,Love Nature HD
http://aktv-stream.m16tv.cfd/stream/aktv2/lovenaturehd/AKTV.m3u8
#EXTINF:-1,无线新闻台(北美)
http://aktv-stream.m16tv.cfd/stream/aktv2/null-1/AKTV.m3u8
#EXTINF:-1,東森新聞
http://aktv-stream.m16tv.cfd/stream/aktv2/null/AKTV.m3u8
#EXTINF:-1,Animax(HK)
http://aktv-stream.m16tv.cfd/stream/aktv3/animaxhk/AKTV.m3u8
#EXTINF:-1,DW
http://aktv-stream.m16tv.cfd/stream/aktv3/dw/AKTV.m3u8
#EXTINF:-1,France 24
http://aktv-stream.m16tv.cfd/stream/aktv3/france24/AKTV.m3u8
#EXTINF:-1,KIX
http://aktv-stream.m16tv.cfd/stream/aktv3/kix/AKTV.m3u8
#EXTINF:-1,NHK World-Japan
http://aktv-stream.m16tv.cfd/stream/aktv3/nhkworldjapan/AKTV.m3u8
#EXTINF:-1,Nick Jr
http://aktv-stream.m16tv.cfd/stream/aktv3/nickjr/AKTV.m3u8
#EXTINF:-1,Nickelodeon
http://aktv-stream.m16tv.cfd/stream/aktv3/nickelodeon/AKTV.m3u8
#EXTINF:-1,Thrill
http://aktv-stream.m16tv.cfd/stream/aktv3/thrill/AKTV.m3u8
#EXTINF:-1,Xite Hits
http://aktv-stream.m16tv.cfd/stream/aktv3/xitehits/AKTV.m3u8
#EXTINF:-1,Xite Rock
http://aktv-stream.m16tv.cfd/stream/aktv3/xiterock/AKTV.m3u8
#EXTINF:-1,ZooMoo
http://aktv-stream.m16tv.cfd/stream/aktv3/zoomoo/AKTV.m3u8
#EXTINF:-1,亞洲新聞台
http://aktv-stream.m16tv.cfd/stream/aktv3/null-3/AKTV.m3u8
#EXTINF:-1,東方衛視國際頻道
http://aktv-stream.m16tv.cfd/stream/aktv3/null/AKTV.m3u8
#EXTINF:-1,無線衛星新聞台
http://aktv-stream.m16tv.cfd/stream/aktv3/null-2/AKTV.m3u8
#EXTINF:-1,Celestial Movies
http://aktv-stream.m16tv.cfd/stream/astro_a1/celestialmovies/AKTV.m3u8
#EXTINF:-1,CINEMAWORLD
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch31/AKTV.m3u8
#EXTINF:-1,FIGHT SPORTS
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch85/AKTV.m3u8
#EXTINF:-1,Mediacorp Entertainment Chinese
http://aktv-stream.m16tv.cfd/stream/astro_a1/mediacorpentertainmentchinese/AKTV.m3u8
#EXTINF:-1,NBA TV
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch84/AKTV.m3u8
#EXTINF:-1,Sukan
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch89/AKTV.m3u8
#EXTINF:-1,TV9
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch18/AKTV.m3u8
#EXTINF:-1,TVB Jade
http://aktv-stream.m16tv.cfd/stream/astro_a1/tvbjade/AKTV.m3u8
#EXTINF:-1,TVB Xing He
http://aktv-stream.m16tv.cfd/stream/astro_a1/tvbxinghe/AKTV.m3u8
#EXTINF:-1,Unifi Sport
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch88/AKTV.m3u8
#EXTINF:-1,曼聯電視頻道
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch87/AKTV.m3u8
#EXTINF:-1,朝鮮恩情台
http://aktv-stream.m16tv.cfd/stream/nknews/null/AKTV.m3u8
#EXTINF:-1,ELTV生活英語台
http://aktv-stream.m16tv.cfd/stream/taiwan/eltv/AKTV.m3u8
#EXTINF:-1,三立新聞iNEWS
http://aktv-stream.m16tv.cfd/stream/taiwan/inews/AKTV.m3u8
#EXTINF:-1,中視
http://aktv-stream.m16tv.cfd/stream/taiwan/null-4/AKTV.m3u8
#EXTINF:-1,中視新聞
http://aktv-stream.m16tv.cfd/stream/taiwan/null-13/AKTV.m3u8
#EXTINF:-1,台視
http://aktv-stream.m16tv.cfd/stream/taiwan/null-3/AKTV.m3u8
#EXTINF:-1,台視新聞
http://aktv-stream.m16tv.cfd/stream/taiwan/null-15/AKTV.m3u8
#EXTINF:-1,華視
http://aktv-stream.m16tv.cfd/stream/taiwan/null-5/AKTV.m3u8
#EXTINF:-1,龍華偶像台
http://aktv-stream.m16tv.cfd/stream/taiwan/null-9/AKTV.m3u8
#EXTINF:-1,龍華日韓台
http://aktv-stream.m16tv.cfd/stream/taiwan/null-7/AKTV.m3u8
#EXTINF:-1,龍華經典台
http://aktv-stream.m16tv.cfd/stream/taiwan/null/AKTV.m3u8
#EXTINF:-1,龍華電影台
http://aktv-stream.m16tv.cfd/stream/taiwan/null-8/AKTV.m3u8
#EXTINF:-1,beIN SPORTS XTRA
http://aktv-stream.m16tv.cfd/stream/test/beinsportsxtra/AKTV.m3u8
#EXTINF:-1,PAC12
http://aktv-stream.m16tv.cfd/stream/test/pac12/AKTV.m3u8
#EXTINF:-1,Tennis Channel DE
http://aktv-stream.m16tv.cfd/stream/test/tennischannel/AKTV.m3u8
#EXTINF:-1,緯來體育
http://aktv-stream.m16tv.cfd/stream/test/null/AKTV.m3u8
#EXTINF:-1,Astro Football
http://aktv-stream.m16tv.cfd/stream/tuntun/astrofootball/AKTV.m3u8
#EXTINF:-1,Astro IQIYI
http://aktv-stream.m16tv.cfd/stream/tuntun/fashiontv4k/AKTV.m3u8
#EXTINF:-1,Astro QJ
http://aktv-stream.m16tv.cfd/stream/tuntun/astroqj/AKTV.m3u8
#EXTINF:-1,Astro 欢喜台
http://aktv-stream.m16tv.cfd/stream/tuntun/astro/AKTV.m3u8
#EXTINF:-1,Red Bull Sports
http://aktv-stream.m16tv.cfd/stream/tuntun/redbullsports/AKTV.m3u8
#EXTINF:-1,YES network
http://aktv-stream.m16tv.cfd/stream/tuntun/foxsports1us/AKTV.m3u8
#EXTINF:-1,CBS SPORTS NETWORK
http://aktv-stream.m16tv.cfd/stream/useradd1/cbssportsnetwork/AKTV.m3u8
#EXTINF:-1,ESPN
http://aktv-stream.m16tv.cfd/stream/useradd1/espn/AKTV.m3u8
#EXTINF:-1,ESPN NEWS
http://aktv-stream.m16tv.cfd/stream/useradd1/espnnews/AKTV.m3u8
#EXTINF:-1,Tennis Channel 2 US
http://aktv-stream.m16tv.cfd/stream/useradd1/tennischannel2us/AKTV.m3u8
#EXTINF:-1,Tennis Channel US
http://aktv-stream.m16tv.cfd/stream/useradd1/tennischannelus/AKTV.m3u8
#EXTINF:-1,US MTV LIVE
http://aktv-stream.m16tv.cfd/stream/useradd1/usmtvlive/AKTV.m3u8
#EXTINF:-1,viuTV
http://aktv-stream.m16tv.cfd/stream/useradd1/viutv/AKTV.m3u8

View File

@ -1,87 +0,0 @@
CCTV1,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226895/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EI0Rkc6neBYgfpoJ1yud8Fw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPpqgHe3PQ5GNQoO-yUgA8C%2CEND
CCTV1,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226895/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EI0Rkc6neBYgfpoJ1yud8Fw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV2,http://otttv.bj.chinamobile.com/PLTV/88888888/224/3221226893/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EcnoJZd_sZxCC6bZYZh4R6g%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV3,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226456/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E_6GNVcVOz9Xub8CclyMRUg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOIR_8g_qYRqpV5wTQqRILi%2CEND
CCTV4,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226470/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0wP1dRMt9qCzHdvA65wh1w%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMcuN2HH7RLPyPHWOUWhSMk%2CEND
CCTV4,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226335/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EBFJ5gRpm8ntK8JEFPZOhLQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV5,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226454/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ErKwB8Qqtvssoy-K7GEgesQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOIR_8g_qYRqpV5wTQqRILi%2CEND
CCTV5+,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226458/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Em70vyfVI_MkrcLYjHWnqOA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNlS0O1LA8iGydXPYujpRue%2CEND
CCTV5+,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226894/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EevWZ0zmguDsOY_Mf3SM5TA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV6,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226453/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ex56LEwufYqPdJkUNYhbNCw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOH2PzEhAK60LI_FWtVxfVS%2CEND
CCTV7,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EutDC7HLJc_gC0YdIDr7oig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPOHuulzlCcw92vP3vgYa4n%2CEND
CCTV7,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226946/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E2bEV_zkW1hRnWmsZq6rlbw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV8,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226451/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EO_1NY-UghfdG_S28Bf_FPw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO1anuaDcpMt0_BMig72trX%2CEND
CCTV9,http://otttv.bj.chinamobile.com/PLTV/88888888/224/3221226944/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EgdZMBjOTdDWVEgovFkZoew%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV10,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226449/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EzhRgoBfyoaW0eC2lnTJYAQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOxqyo6ss4VuHKCaIhF4e3B%2CEND
CCTV10,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226937/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Egbbk6OxyTS2utbJWm7Qw1w%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV11,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226334/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0RcQQbNseiHvFO8XWf466A%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV11,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226448/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eqfhzy1ZrFZrYrATDOB991A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOu522yjh6D1Z_dApuOt9eE%2CEND
CCTV12,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E2knJCFLHz_HqfBZXNGeA1A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMIlZ5z7o_ym15iMooogSvj%2CEND
CCTV12,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226942/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E9nVa4WyKpuJgFy6Zh4TplQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV13,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226316/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EqHPe9pEEWJ00hz1ArnRZVA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV13,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226446/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EU-IJJyzlYeEElWsacI4JKw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMT7DWkynQtRPzNDJCOY_C_%2CEND
CCTV14,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226229/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ey_UgKg-_uoDiTW1MNHptPg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNLabf3bHEXv4444iiOs_Px%2CEND
CCTV14,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226947/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EgtTqPYLE5COifF-qvYi2Ig%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV15,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226333/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EWyklhmFh7oMx-lG1tNUcSQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV15,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226444/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EFQ8BWVFffGkwLTLNv7CwFQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM7I2coCeiP5K0pSIMZqcUB%2CEND
CCTV16,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227002/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EX9goLRw26BM_r54des2PAw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPt5W7-RovMDpE-7B-0PhHw%2CEND
CCTV16,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227002/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EX9goLRw26BM_r54des2PAw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CCTV17,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226442/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EtihRNVe_x2y1Lgi_XWYeNw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOl8OnsD1vPD0mhNmo98J3J%2CEND
CCTV17,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226318/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EEkwQnoHNXRDb-IayWakK1A%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
CGTN,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226443/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ebu8iDniP_aAtg-APxKXKAA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOeLGc8fhipDF_paLm6VUd-%2CEND
北京卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226900/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EcYPi33WFyhvd6SjmqUKhJg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
北京卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226436/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ElMQ3ov45VmhzipweN5VstQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPg_yZ8DZHTaSU92MIl_o3b%2CEND
深圳卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226245/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EFvxuZ6Kfg6J67sArVd0LuA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO9YxM-C8gPFvQRk47-h2ok%2CEND
湖北卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226240/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ExfU_RR0RQok0w_xd7h22CQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPVnDV2fEBphgm3TP7hAHBx%2CEND
东方卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226237/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EuOKqNaOUqqiJjXIfPoRPMQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNeqgYr1eA9ESriCOsl_DTz%2CEND
浙江卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226247/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eo6BokfP3WkB3SIXSrgvRBA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNP3w4GkbU9L7iRQ8H2vgzhF%2CEND
吉林卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226533/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EicY_6znuOTlmMeE15TFEig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNNUZpDp9cPVsM_M_ftJRVM%2CEND
江苏卫视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226242/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EJT6eqtJpcKnNhyUS90EOgw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNN1SxXwCt0S69Lq27ZMJpfR%2CEND
山东卫视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226244/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EycMz-PML_dQW8iLcNBkw7g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMYCYLC04QAM6EBli1wTuET%2CEND
黑龙江卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226239/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EEHwpSHKc5p-bHJfhpIWFig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM5Y8rTELLykZJHp-bmY2YW%2CEND
东南卫视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226496/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkZUfG47p98m2PZiCsgkhyQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM5EcQIH6BiwZavlhPLb4oJ%2CEND
江西卫视,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226243/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EfPpe3gkzCutYMoqOQQZNzA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMVuW7agCgULnvgy9rhLyCH%2CEND
云南卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226543/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EzQy9f4DIExLCs810r0Q6Kw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO_hnHaWpTsMQwR98VJGduo%2CEND
辽宁卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226488/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0dsu8dOBmGQQO7fSrvySew%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNN4l9PIxeExdzsncIMJiPZb%2CEND
重庆卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226518/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ey-ITbF7am-eD_R60rK2QcQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMWkDi37K3eowQvLymiiLyV%2CEND
山西卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226531/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EokFa56wMKUpB1vaIjEe92A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPoj5DNJHruOghC7vAQxinJ%2CEND
海南卫视,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226574/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EZOP0PLu1-XG8_Ae0lTe9HQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNODcjESMU4f6yMuMuOuQbie%2CEND
安徽卫视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226490/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EcN5s_AlHugvAv9Pda6f9fA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOtRTFrO5eKiKNV40gMGHaS%2CEND
甘肃卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226545/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EPxObabIs3mLyPmSf2HHtqQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNBE3K16ZfzYGIqbP6z6cGJ%2CEND
青海卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226529/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ege4qzvU2ax15UdL3NFQ7AQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNdiWnhjH1amCOGECUhABr9%2CEND
山东教育卫视[785*576],http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226526/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EEtk94qghXphElKOQlUC-Yw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOpyxkKQ6N6FjQz-LrJwo0o%2CEND
宁夏卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226528/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E9-jWxE6tfiz7aO7MvbCY7Q%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMi3qn27U9rBeXpVrJ8eLy7%2CEND
内蒙古卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226530/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EHHMwHAFmEx4xxtZRlWhCrg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMZe-zTYLW-Yz0RcFLVr37n%2CEND
陕西卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226532/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E6sNSqmLCqLFl_AJPBXp1qA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO6b4uKEI14SNy0LDiw52LH%2CEND
广西卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226534/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EpjsBggKPaCw3f-xlBWZWaQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMJYhPE64lykNkIsypBRZqO%2CEND
厦门卫视[785*576],http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226542/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0HuqirkTe1cAUljwazjNGw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMvSOYesmmWPPy5i3xS4Rsb%2CEND
三沙卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226544/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eb2dn60YQRxhB5rAyOnrv0g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO_hnHaWpTsMQwR98VJGduo%2CEND
新疆卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226546/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ETtoZKRqwsL9SQjr1A0iH5g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMREPnBLSH3b8pR7cnmo9am%2CEND
西藏卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226527/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EmHuqUIe0F51C4h6xZanhig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMi3qn27U9rBeXpVrJ8eLy7%2CEND
兵团卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226541/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ESv-rH0nF41q6pxKZKeRnNA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNN-56c_rnHTXQA4R-D0Dlau%2CEND
延边卫视[1024*576],http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227045/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eq0D3NdTUN7FuRzr8eJsbQA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNONS2RAhxb5u6NYaMGGM23S%2CEND
康巴卫视[1024*576],http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227027/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkHMvBpWz4rccMxNvSRekpQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPtFfVFX0AVycM8b4Xmbcl4%2CEND
嘉佳卡通,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226539/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EQDRyt1jaDU7f52NwPN526A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOLcRNi6C1PMX5tGrYl_SiR%2CEND
茶频道,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226548/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ec1XXmbKOEhI6pFYCxtVG9A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOD3hCDGl7mDB_HDsnRfhB2%2CEND
快乐垂钓,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226549/1.m3u8?GuardEncType=2&accountinfo=~~V2.0~RHz0NOpqUZZN1Iz6lVLkkg~_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNSiF8rKF1Pn2LepKMJ2cEG%2CEND
超级电影,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226233/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EfPRR4mbRWhkCFuUCVm9THg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM4kysjLk_woYMRnu35KtBV%2CEND
超级综艺,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226231/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ejm-KqHfTZezbm9C-325YiA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNnfpAUC20DSCXUyGpDggnK%2CEND
超级体育,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226232/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eg-EQHTrpbCOxNSgnFRbr4w%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMNhcQPODGVtsSVKlB7CbAh%2CEND
金牌综艺,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227004/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkcfszuSJNo6WZ8h7xrIswA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMWi_zfgUXV5YnB6haFF-C2%2CEND
北京IPTV 4K,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226550/1.m3u8?GuardEncType=2&accountinfo=~~V2.0~e2qS8h6u-xp3gd50vNr1sw~_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPPFD3HVWEytEVyliOxehfe%2CEND
北京国际,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226510/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EIfgL7tTUNqHAIdgvKuwj8A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPr9j5nfyiWS_jEXD6m401A%2CEND
北京新闻,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226437/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EncK5uEAdYwWMsf8WJWI1mQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO_LSIQh_h2P54Cz-MqgJqC%2CEND
北京文艺,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226440/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EWrJcgMpdGPvZavpf4dmmrQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNhmwDsUZnvQgU5E5wiGA2g%2CEND
北京体育休闲,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226438/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EeVAybrHg955d_IRT9e_uHQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMLCKqkSfuGOusJwBMwlCbz%2CEND
北京影视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226433/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EygquRbh9L0wUPRY53fsZWw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO62IynDcU1yYDL1b4Xte8T%2CEND
北京生活,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226514/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Es-PVNcPJsjr_oBdcXGT40g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMWvZ0r6eMXcXJOGrCpJiq1%2CEND
北京财经,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226516/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eh9_SEkmWeMdS1TMnIILZgg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPIiicEW7OIvk1s-X-PXHqO%2CEND
北京纪实科教,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226434/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ejj3PtVjzl6ZzFdM-Vi1dmQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPJa61jREJv4ZfZigyrxX0U%2CEND
北京IPTV 淘电影,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226552/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EXOsrWMA-UCdUl1hQSR9EKw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNg3bzRax0E9tLmO9xgXVx8%2CEND
北京IPTV 淘剧场,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226553/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EQaJ92NID2SpQlY6_VJVogg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOuQYJeiYEeFWTkFfE86Vq-%2CEND
北京IPTV 淘娱乐,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226551/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ex0efg9fpenP8E8lWJUb5Lg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNg3bzRax0E9tLmO9xgXVx8%2CEND
北京IPTV 淘BABY,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226554/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EN0sbBMpQv4sLsW5foy3YfA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNg3bzRax0E9tLmO9xgXVx8%2CEND
北京IPTV 萌宠TV,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226555/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E_PpxWPtvSZRFtu_Ged_-vQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO0istnBuoA2R9ODSCqyIyS%2CEND
中国教育1台,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226494/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EB8MrpAzJ_Bw12HHVBcZO6g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNONWWecbSKZXNjh_5hExtTC%2CEND
中国教育2台[785*576],http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226537/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E7AxXs4eTU2oiWrhopr9sHw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNxsM0Bor098BJglrhfEQTl%2CEND
中国教育4台[785*576],http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226557/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EBzZToIaOOoaa_jAUfhUQHQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOD9BEmVSNbqSQpqXZxnxbk%2CEND

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,42 +0,0 @@
鳳凰資訊,http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=http://www.youtube.com/watch?v=if6yQq_JJyY
凤凰卫视,http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=http://www.youtube.com/watch?v=dmDg7NfUoSw
寰宇新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=B7Zp3d6xXWw
鏡新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=5n0y6b0Q25o
東森Live, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=R2iMq5LKXco
中天新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=oIgbl7t0S_w
中天新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/live/oIgbl7t0S_w?feature=share
中天新聞2, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=WPfPjbOLNfE
三立live, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=FoBfXvlOR6I
三立inews, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=CKjSm5ZeehE
三立NEWS+, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=oZdzzvxTfUY
TVBS新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=2mCSYvcfhtc
TVBS NEWS LIVE, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=m_dhMSvUCIc
民視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=ylYJSBUgaMA
華視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=wM0g8EoUZ_E
中視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=TCnaIE_SAtM
台視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=xL0ch83RAK8
EBC東森財經, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=WHEPzbFA3hw
三立財經, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=CKjSm5ZeehE
NHK WORLD, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=f0lYkdA-Gtw
NHK WORLD,https://nhkwlive-xjp.akamaized.net/hls/live/2003458/nhkwlive-xjp-en/index_1M.m3u8?zshijd
Sky News, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=9Auq9mYxFEE
FRANCE 24, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=h3MuIUNCCzI
ABC News, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=w_Ma8oQLmSM
Euronews English, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=pykpO5kQJ98
DW, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=pqabxBKzZ6M
ANN News, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=coYw-eVU0Ks
KBS KOREA, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=HnfpTMtfFk8
NBC NEW, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=0IUbD_4ytuo
鳳凰資訊, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=sUISafvOieY
凤凰卫视, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=dmDg7NfUoSw
CCTV中文国际, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=9sE12tg3CmA
东森财经股市, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=LbS-xQ67fos
公視直播, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=4Uc00FPs27M
KOMPASTV, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=4rmf-lk3ito
东京新宿, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=DjdUEyjx8GM
台灣地震監視, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=Owke6Quk7T0

Binary file not shown.

View File

@ -1,673 +0,0 @@
self 我的115网盘 1
sw6pw793wfp?password=w816 小雅|4KRemux
sw68fuu3nnw?password=pb57 小雅|电影1080P
swzew4m3nc6?password=i0d7 小雅|电影|原盘
swhid5x3wfa?password=xdf9 小雅|电影|韩国原盘
swh3rih3wfa?password=g512 小雅|电影|台湾原盘
swhbfy33wfa?password=a372 小雅|电影|香港原盘
swhbs4r3zh9?password=ec38 小雅|电影|UHD原盘
sw68wz93ncb?password=6666 小雅|欧美电影
sw6plt23ncb?password=6666 小雅|美剧
swznm373w1p?password=pe35 小雅|欧美剧
swzg8dd3wye?password=m5b3 小雅|日韩电影
swzjxcp3wfa?password=of89 小雅|日韩剧
sw68e813nnw?password=n9e0 小雅|电视剧
swzyiww3wn9?password=w1e0 小雅|合集1
swzyiwq3wn9?password=x716 小雅|合集2
swzyiwb3wn9?password=qfe8 小雅|合集3
swz6gml3fwo?password=8888 小雅|动画电影
swzqh673h4y?password=5296 小雅|千部抖音短剧合集
swzx76f3wfa?password=n724 小雅|抖音短剧合集1.77T
swzmqcr3fs6?password=xd67 小雅|音乐22万首
sw658uq36x2?password=md98 小雅|音乐22万首|DDS+HiRes
sw658uq36x2?password=md98 小雅|音乐22万首|母带系列
sw658uq36x2?password=md98 小雅|音乐22万首|索尼精选
sw658uq36x2?password=md98 小雅|音乐22万首|各类风格
sw658ub36x2?password=q7e0 小雅|音乐22万首|华语27000首无损
swz93883nhj?password=sa53 豆瓣|TOP250电影_1.67TB 1
swz8h1h33xj?password=0000 豆瓣|TOP250电影_12.65Tb 1
swz18wn3zh9?password=yf61 演唱会|演唱会原盘_820T 1
sw6udf93wcx?password=na63 演唱会|演唱会_蓝光原盘22TB
swzg9pt3wye?password=c899 演唱会|演唱会_重编码6TB
swz6sow3fwo?password=8888 演唱会|1080P港台演唱会【2.55T】
swz6si63fwo?password=8888 演唱会|演唱会【13T】
swz9yva3hi8?password=m332 REMUX|2267部2160p_remux_FGT_101.32TB 1
sw6e6ij3flt?password=t055 REMUX|4K_REMUX_774部_41.16T
swz6gd93fwo?password=8888 REMUX|4K_REMUX电影2257部 1
swzn5913wzq?password=nbc5 REMUX|969部部欧美4K原盘电影_45.03T
swzzmu33hi8?password=i5e0 REMUX|无损REMUX电影_101.32TB 1
swh9ej13zmi?password=50io 原盘|BD-ISO_3.29PB 1
swzc37p3zh9?password=f534 原盘|1080P蓝光电影_220T 1
sw68b0u3hhq?password=gd41 原盘|蓝光原盘_666.3T 1
swz6gp53fwo?password=8888 原盘|蓝光原盘_646T_合集 1
sw620dv3wzn?password=e536 原盘|sGNB特效字幕原盘_313部_21.18T
sw6u87633jp?password=u527 原盘|sGNB特效字幕原盘_315部_21.52T 1
swhbs4r3zh9?password=ec38 原盘|UHD原盘iso_145.3TB 1
sw6e6i13flt?password=f794 原盘|4K原盘_16.94T
sw3uax136w4?password=eea6 原盘|CMCT迷你蓝光原盘_2.81T
sw69nao3h3b?password=a548 原盘|港片蓝光原盘669部_16.3T
swnmisp3wxf?password=i1c6 原盘|剧集原盘_23.3T
swznmd03nc7?password=p897 原盘|动漫原盘_40.49T
sw313rp3zx1?password=w146 原盘|SGNB特效字幕蓝光原盘563部_26.52TB
swzg3ja33xj?password=f3h5 原盘|FRDS站396部_8.87TB
sw6ug2k3nom?password=t7d0 原盘|香港电影_香港蓝光高清粤语电影合集1242部_(16T)
sw62cfo3z23?password=ze90 原盘|3D电影_68.26T
swzm4z63697?password=6688 大包|FRDS电视剧大包 1
swzew4m3nc6?password=i0d7 大包|2.24pb大包 1
swzawra3zx1?password=scf1 大包|1.6pb大合集 1
swz3ys93wzv?password=rc12 电影|电影频道3300部_16.33T
swnrb3b3nat?password=pd76 电影|亚洲1080P_9.33T
swz8hp033xj?password=0000 电影|多部曲电影系列_21TB
swzj12t3znw?password=tff8 电影|未分类电影_4.65TB
sw6uh9x3z2b?password=6666 电影|未分类电影_1620TB
swzgep23wye?password=c106 电影|大陆电影_6TB
swzg8dd3wye?password=m5b3 电影|日韩电影_6TB
sw60fyp33eb?password=lcd6 排行|豆瓣2022影视排行榜_1.51T
sw6tco83hbe?password=v517 排行|2021豆瓣年度影视榜单_832.64G
sw6tcot3hbe?password=e9d7 排行|2022必看最热门影视剧十部_620.84G
swzplko3wye?password=k596 欧美电影|合集_22TB
swzj2cx3h4y?password=g180 欧美电影|漫威宇宙系列_1.87TB
swz936a3znw?password=a0d3 欧美电影|指环王系列_300GB
swz93n63z57?password=dda3 欧美电影|变形金刚_500GB
sw629ie3nli?password=d5c7 NetFlix_6.17T
sw6tco93hbe?password=ka54 剧集|TVB电视剧合集650部_74.3T
swznm373w1p?password=pe35 剧集|欧美剧_60.9T 1
swnsdrk3h2m?password=p783 剧集|海贼王_553.61G
swntmxc3wp6?password=a3f5 剧集|皇家师姐系列
swnsdrm3h2m?password=fea2 剧集|火影忍者全集_455.42G
swzn9y13zwh?password=crow 剧集|老友记全十季_594.26G
sw6q9w833o2?password=a956 剧集|柯南_766.64G
sw6p2t63h2m?password=oea1 剧集|迷失1-6季_203.3G
swz826g3nc0?password=ff47 剧集|甜蜜家园_Season_3
swztlnh33xj?password=f3h5 剧集|行尸走肉全季杜比
swz6fb3369v?password=9999 香港|GOTV_10.46TB
swzsehq3ncb?password=5566 香港|合集8.23TB
swz9lr83w8f?password=oc53 香港|杜琪峰(银河映像系列)
swzdtjc3nb4?password=ef97 香港|成龙
sw30v4b3zu2?password=a429 香港|林正英电影合集46部_209.13G
swz8cd233xj?password=0000 香港|满清十大酷刑第一部
sw6gqo43flt?password=qc62 香港|周星驰系列_854.96G
swzdtj93nb4?password=d6c3 香港|周星驰
swzv6533697?password=2618 日韩剧|合集18.12TB
swzah0d3wvk?password=c142 国产剧|合集_51.41TB
swz8t9x3h5k?password=n3f4 国产剧|【繁花_翡翠台源_100GB】
swz93y53zp0?password=ef25 国产剧|【唐朝诡事录_全2季】
sw6u7zc3fwo?password=8888 国产剧|【陈情令】_(2019)_50集全_4K中字【86G】
sw6u7ep3fwo?password=8888 国产剧|【隐秘的角落】(2020)_12集全_4K中字【69G】
sw6u78w3fwo?password=8888 国产剧|【庆余年】(2019)_46集全_4K中字【62G】
sw6u79l3fwo?password=8888 国产剧|【沉默的真相】(2020)_12集全_4K中字【17G】
sw6u79p3fwo?password=8888 国产剧|【斗罗大陆】(2021)_40集全_1080P中字【46G】
sw6u72q3fwo?password=8888 国产剧|【开端】(2022)_15集全_4K中字【58G】
sw6u72m3fwo?password=8888 国产剧|【狂飙】(2023)_39集全_4K中字【77G】
sw6u7u33fwo?password=8888 国产剧|【漫长的季节】(2023)_12集全_4K中字【36G】
sw6ukxa3fwo?password=8888 国产剧|【梦华录】(2022)_40集全_4K中字【148G】
sw6uil53fwo?password=8888 国产剧|【琅琊榜】(2015)_54集全_4K中字【80G】
sw6u42s3fwo?password=8888 国产剧|【苍兰诀】(2022)_36集全_4K中字【42G】
sw6u42b3fwo?password=8888 国产剧|【后宫·甄嬛传】(2011)_76集全_4K中字【490G】
sw6ugfa3fwo?password=8888 国产剧|【山河令】36集全_4K中字【87G】
sw6ugfj3fwo?password=8888 国产剧|【沉香如屑·沉香重华】_(2022)_59集全_4K中字【125G】
sw6ugl73fwo?password=8888 国产剧|【星汉灿烂·月升沧海】56集全_4K画质【71G】
sw6ugoj3fwo?password=8888 国产剧|【武林外传】(2006)_81集全_4K中字【104GB】
sw6ugkc3fwo?password=8888 国产剧|【白夜追凶】(2017)_32集全_4K中字【257G】
sw6utz93fwo?password=8888 国产剧|【知否知否应是绿肥红瘦】(2018)_73集全_4K中字【119G】
sw6utfi3fwo?password=8888 国产剧|【莲花楼】(2023)_40集全_4K中字【52G】
sw6utft3fwo?password=8888 国产剧|【香蜜沉沉烬如霜】(2018)_60集全_4K中字【119G】
sw6utts3fwo?password=8888 国产剧|【觉醒年代】(2021)_43集全_4K中字【86G】
sw6ut8p3fwo?password=8888 国产剧|【长安十二时辰】(2019)_48集全_4K中字【46G】
sw6ut8j3fwo?password=8888 国产剧|【你是我的荣耀】(2021)_32集全_4K中字【41G】
sw6ujon3fwo?password=8888 国产剧|【亲爱的,热爱的】(2019)_41集全_4K中字【59G】
sw6u0rm3fwo?password=8888 国产剧|【人民的名义】(2017)_55集全_4K中字【118G】
sw6u0px3fwo?password=8888 国产剧|【三体】(2023)_4K中字【21G】
sw6u0tb3fwo?password=8888 国产剧|【我的人间烟火】(2023)_40集全_1080P中字【45G】
sw6u01o3fwo?password=8888 国产剧|【山海情】(2021)_4K中字【33G】
sw6u01x3fwo?password=8888 国产剧|【你微笑时很美】(2021)_31集全_4K中字【54G】
sw6uupp3fwo?password=8888 国产剧|【延禧攻略】(2018)_70集全_4K中字【123G】
sw6uujx3fwo?password=8888 国产剧|【有翡】_(2020)_51集全_1080P中字【72G】
sw6uu063fwo?password=8888 国产剧|【最好的我们】(2016)_24集全_4K中字【24G】
swz36yf3fwo?password=8888 国产剧|【风吹半夏】(2022)_36集全_4K中字【77G】
swz36ye3fwo?password=8888 国产剧|【余生,请多指教】(2022)_29集全_1080P种子【15G】
swz36yt3fwo?password=8888 国产剧|【传闻中的陈芊芊】(2020)_24集全_4K中字【29G】
swz36ka3fwo?password=8888 国产剧|【扫黑风暴】(2021)_28集全_1080P中字【31G】
swz36dx3fwo?password=8888 国产剧|【狼殿下】(2020)_49集全_4K中字【88G】
swz36m63fwo?password=8888 国产剧|【仙剑奇侠传三】(2009)_37集全_4K中字【137G】
swz36me3fwo?password=8888 国产剧|【长相思】(2023)_39集全_4K中字【38G】
swz36m03fwo?password=8888 国产剧|【锦衣之下】(2019)_55集全_4K中字【80G】
swz365l3fwo?password=8888 国产剧|【琉璃】(2020)_59集全_4K中字【194G】
swz36543fwo?password=8888 国产剧|【长月烬明】(2023)_40集全_4K中字【95G】
swz365x3fwo?password=8888 国产剧|【都挺好】(2019)_46集全_4K中字【84G】
swz36v63fwo?password=8888 国产剧|【龙岭迷窟】(2020)_18集全_4K中字【21G】
swz3hop3fwo?password=8888 国产剧|【父母爱情】(2014)_44集全_4K中字【61G】
swz3hks3fwo?password=8888 国产剧|【御赐小仵作】(2021)_20集36集双版本_1080P【101G】
swz3hk73fwo?password=8888 国产剧|【仙剑奇侠传】34集全_1080P中字【24G】
swz3hkj3fwo?password=8888 国产剧|【三生三世枕上书】(2020)_56集全_4K中字【82G】
swz3h5j3fwo?password=8888 国产剧|【三生三世十里桃花】(2017)_58集全_4K中字【146G】
swz3sf73fwo?password=8888 国产剧|【伪装者】(2015)_41集全_4K中字【43G】
swz3sf43fwo?password=8888 国产剧|【4K修复】【西游记+续集】【218G】
swz3sfv3fwo?password=8888 国产剧|【猎罪图鉴】2022全20集_4K中字
swz3slh3fwo?password=8888 国产剧|【长歌行】(2021)_49集全_1080P中字【66G】
swz3s4x3fwo?password=8888 国产剧|【爱情公寓】1-5季_全集+番外篇+大电影_4K中字【203G】
swz3s403fwo?password=8888 国产剧|【小欢喜】(2019)_49集全_4K中字【75G】
swz3skd3fwo?password=8888 国产剧|【重启之极海听雷】第一季_(2020)_4K中字【172G】
swz3skm3fwo?password=8888 国产剧|【重启之极海听雷】第二季_(2020)_4K中字【42G】
swz3sdn3fwo?password=8888 国产剧|【摩天大楼】(2020)_16集全_4K中字【62G】
swz3sde3fwo?password=8888 国产剧|【无证之罪】(2017)_12集全_4K中字【17G】
swz3smy3fwo?password=8888 国产剧|【如懿传】(2018)_87集全_1080P中字【194G】
swz3sai3fwo?password=8888 国产剧|【步步惊心】(2011)_35集全_4K中字【101G】
swz3sag3fwo?password=8888 国产剧|【我是余欢水】(2020)_12集全_4K中字【77G】
swz3spn3fwo?password=8888 国产剧|【去有风的地方】(2023)_40集全_4K中字【101G】
swz3lbp3fwo?password=8888 国产剧|【梦中的那片海】(2023)_38集全_4K中字【24G】
swz3lob3fwo?password=8888 国产剧|【欢乐颂】1-4季_1080P中字【156G】
swz3lok3fwo?password=8888 国产剧|【棋魂】(2020)_36集全_4K中字【210G】
swz3qos3fwo?password=8888 国产剧|【叛逆者】(2021)_43集全_4K中字【49G】
swz3qas3fwo?password=8888 国产剧|【以家人之名】(2020)_40集全_1080P中字【47G】
swz3bge3fwo?password=8888 国产剧|【唐人街探案】(2020)_12集全_4K中字【18G】
swz6syq3fwo?password=8888 国产剧|【警察荣誉】38集全_4K中字【57G】
swz6sk93fwo?password=8888 国产剧|【三十而已】(2020)_43集全_1080P中字【41G】
swz6sdq3fwo?password=8888 国产剧|【玉骨遥】40集全_4K中字【60G】
swz6sd73fwo?password=8888 国产剧|【爱很美味】(2021)_20集全_4K中字【8.6G】
swz6smb3fwo?password=8888 国产剧|【司藤】30集全_4K中字【74G】
swz6smv3fwo?password=8888 国产剧|【赘婿】36集全_4K中字【54G】
swz6s5n3fwo?password=8888 国产剧|【终极笔记】(2020)_36集全_4K中字【178G】
swz6s5l3fwo?password=8888 国产剧|【人世间】(2022)_58集全_4K中字【63G】
swz6s5e3fwo?password=8888 国产剧|【周生如故】(2021)_24集全_1080P中字【15G】
swz6s2r3fwo?password=8888 国产剧|【战长沙】(2014)_32集全_1080P中字【111G】
swz6lz23fwo?password=8888 国产剧|【你好,旧时光】(2017)_30集全_4K中字【80G】
swz6lhb3fwo?password=8888 国产剧|【风起洛阳】(2021)_39集全_4K中字【43G】
swz6lfp3fwo?password=8888 国产剧|【潜伏】(2008)_30集全_4K中字【41G】
swz6ls73fwo?password=8888 国产剧|【东宫】(2019)_52集全_4K中字【119G】
swz6lsc3fwo?password=8888 国产剧|【幸福到万家】(2022)_40集全_4K中字【64G】
swz6lql3fwo?password=8888 国产剧|【红楼梦】(1987)_36集全_4K中字【42G】
swz6lqe3fwo?password=8888 国产剧|【还珠格格】1-3季全_1080P中字【141G】
swz6l753fwo?password=8888 国产剧|【鬼吹灯之精绝古城】(2016)_21集全_1080P中字【16G】
swz6liq3fwo?password=8888 国产剧|【亮剑】(2005)_30集全_4K中字【35G】
swz6lic3fwo?password=8888 国产剧|【大宋少年志】1-2季全_4K中字【139G】
swz6l453fwo?password=8888 国产剧|【唐朝诡事录】(2022)_36集全_4K中字【51G】
swz6l483fwo?password=8888 国产剧|【卿卿日常】(2022)_40集全_4K中字【79G】
swz6lkf3fwo?password=8888 国产剧|【微微一笑很倾城】(2016)_30集全_1080P中字【22G】
swz6lmu3fwo?password=8888 国产剧|【爱情公寓】1-5季+番外1-3季_4K中字【200G】
swz6l5a3fwo?password=8888 国产剧|【宸汐缘】(2019)_60集全_4K中字【96G】
swz6lve3fwo?password=8888 国产剧|【大明王朝1566】(2007)_46集全_1080P中字【30G】
swz6lew3fwo?password=8888 国产剧|【河神】1-2季全_4K中字【51G】
swz6lar3fwo?password=8888 国产剧|【大江大河】(2018)_47集全_4K中字【52G】
swz6lpo3fwo?password=8888 国产剧|【女心理师】(2021)_40集全_4K中字【68G】
swz6lus3fwo?password=8888 国产剧|【大明王朝1566】(2007)_46集全_4K中字【250G】
swz6b2y3fwo?password=8888 国产剧|【我在他乡挺好的】(2021)_12集全_1080P中字【30G】
swz6o6q3fwo?password=8888 国产剧|【余罪】1-2季全_1080P中字【19.5G】
swz6ooq3fwo?password=8888 国产剧|【士兵突击】(2006)_30集全_4K中字【45G】
swz6oyp3fwo?password=8888 国产剧|【天盛长歌】(2018)_70集全_4K中字【132G】
swz6k9q3fwo?password=8888 国产剧|【与君初相识·恰似故人归】(2022)_42集全_4K中字【101G】
swz6doo3fwo?password=8888 国产剧|【谁是凶手】(2021)_16集全_4K中字【18G】
swz3qvq3fwo?password=8888 美剧|_冰与火之歌权力的游戏【1-8季全1.31TB】
sw6uoem3fwo?password=8888 美剧|【冰与火之歌权力的游戏】1-8季全_4K中字杜比视界【1.85T】
sw6u7iy3fwo?password=8888 美剧|【神探夏洛克】1-4季全_1080P中字【78G】
sw6uotq3fwo?password=8888 美剧|【绝命毒师】1-5季全_4K中字【209G】
sw6u7n93fwo?password=8888 美剧|【怪奇物语】1-4季_4K中字【255G】
sw6u7y83fwo?password=8888 美剧|【老友记】1-10季全_1080P中字【209G】
sw6u75u3fwo?password=8888 美剧|【生活大爆炸】1-12季全_1080P中字【258G】
sw6u7es3fwo?password=8888 美剧|【行尸走肉】1-11季全_1080P中字【585G】
swztlnh33xj?password=f3h5 美剧|【行尸走肉】1-11季全_REMUX【1.27TB】
sw6u7tp3fwo?password=8888 美剧|【切尔诺贝利】5集全_1080P中字【13G】
sw6u78c3fwo?password=8888 美剧|【黑镜】1-6季全_4K中字【144G】
sw6u79h3fwo?password=8888 美剧|【后翼弃兵】(2020)_7集全_4K中字【57G】
sw6uify3fwo?password=8888 美剧|【越狱】1-5季全+特别篇_1080P中字【182G】
sw6u4vy3fwo?password=8888 美剧|【真探】1-3季全_1080P中字【29G】
sw6u4j73fwo?password=8888 美剧|【嗜血法医】1-9季全_1080P中字【246G】
sw6u4963fwo?password=8888 美剧|【黑袍纠察队】1-3季_4K中字【182G】
sw6u41k3fwo?password=8888 美剧|【风骚律师】1-6季全_4K中字【275G】
sw6u4c93fwo?password=8888 美剧|【纸牌屋】1-6季全_4K中字【284G】
sw6u42n3fwo?password=8888 美剧|【浴血黑帮】1-6季全_4K中字【162G】
sw6u42v3fwo?password=8888 美剧|【曼达洛人】1-3集全_4K中字【136G】
swzjpfq3wrb?password=s8f0 美剧|【迷失】1-6季全_1080P中字【108G】
sw6uakw3fwo?password=8888 美剧|【猎魔人】1-3季_4K中字【139G】
sw6uakm3fwo?password=8888 美剧|【性爱自修室】1-4季_4K中字【193G】
sw6uadf3fwo?password=8888 美剧|【最后生还者】第一季_4K中字【67G】
sw6uadk3fwo?password=8888 美剧|_【致命女人】1-2季_1080P中字【29G】
sw6uaji3fwo?password=8888 美剧|【西部世界】1-4季_4K中字【445G】
sw6ua2t3fwo?password=8888 美剧|【办公室】1-9季全_1080P中字【200G】
sw6ug3k3fwo?password=8888 美剧|【老爸老妈的浪漫史】1-9季全_1080P中字【273G】
swzj8g33wrb?password=z6d8 美剧|【兄弟连】10集全_1080P中字【177.6G】
swzj8au3wrb?password=i050 美剧|【太平洋战争】10集全_1080P中字【122G】
sw6ugsb3fwo?password=8888 美剧|【维京传奇】1-6季全_1080P中字【137G】
sw6ugln3fwo?password=8888 美剧|【旺达幻视】9集全_4K中字【46G】
sw6ug5r3fwo?password=8888 美剧|【摩登家庭】1-11季_1080P中字【298G】
sw6up8u3fwo?password=8888 美剧|【纸钞屋】1-5季全_1080P中字【46G】
sw6upun3fwo?password=8888 美剧|【毒枭】1-3季全_4K中字【180G】
sw6utzo3fwo?password=8888 美剧|【去他的世界】1-2季_4K中字【35G】
sw6uty43fwo?password=8888 美剧|【暗黑】1-3季全_4K中字【69G】
sw6uttz3fwo?password=8888 美剧|【夜魔侠】1-3季全_4K中字【204G】
sw6ujls3fwo?password=8888 美剧|【洛基】第一季_4K中字【22G】
sw6ujoa3fwo?password=8888 美剧|【星期三】第一季_4K中字【33G】
sw6uxg53fwo?password=8888 美剧|【豪斯医生】1-8季全_1080P中字【222G】
sw6u0df3fwo?password=8888 美剧|【迷离时空(原版)】1-5季全_1080P中字【308G】
sw6u0m73fwo?password=8888 美剧|【邪恶力量】1-15季全_1080P中字【1006G】
sw6u0mu3fwo?password=8888 美剧|【冰血暴】1-4季全_1080P中字【65G】
sw6u0v73fwo?password=8888 美剧|【龙之家族】第一季_4K中字【25G】
sw6u0gx3fwo?password=8888 美剧|【美国恐怖故事】1-11季_1080P中字【306G】
sw6u0tv3fwo?password=8888 美剧|【黑客军团】1-4季全_1080P中字【32G】
sw6u0xb3fwo?password=8888 美剧|【国土安全】1-8季全_1080P中字【132G】
sw6uup63fwo?password=8888 美剧|【唐顿庄园】1-6季全_1080P中字【82G】
sw6uup03fwo?password=8888 美剧|【指环王:力量之戒】第一季[全8集]4K中字【74G】
sw6uu1g3fwo?password=8888 美剧|【心灵猎人】1-2季_4K中字【119G】
sw6uuc23fwo?password=8888 美剧|【伦敦生活】1-2季全_4K中字【28G】
swz36ki3fwo?password=8888 美剧|【破产姐妹】1-6季全_1080P中字【87G】
swz36mo3fwo?password=8888 美剧|【月光骑士】6集全_4K中字【32G】
swz36vd3fwo?password=8888 美剧|【路西法】1-6季全_1080P中字【112G】
swz36e73fwo?password=8888 美剧|【使女的故事】1-5季全_1080P中字【62G】
swz36ah3fwo?password=8888 美剧|【黑钱胜地】1-4季_4K中字【200G】
swz3h4i3fwo?password=8888 美剧|【十三个原因】1-4季全_4K中字【523G】
swz3hyk3fwo?password=8888 美剧|【大小谎言】1-2季全_1080P中字【21G】
swz3hmf3fwo?password=8888 美剧|【汉尼拔】1-3季全_1080P中字【59G】
swz3h543fwo?password=8888 美剧|【宋飞正传】1-9季全_4K中字【488G】
swz3hed3fwo?password=8888 美剧|【亢奋】1-2季_4K中字【205G】
swz3hak3fwo?password=8888 美剧|【无耻之徒】1-11季全_1080P中字【201G】
swz3hg43fwo?password=8888 美剧|【东城梦魇】(2021)_7集全_1080P中字【11G】
swz3swd3fwo?password=8888 美剧|【鬼庄园】(2020)_9集全_4K中字【23G】
swz3sw73fwo?password=8888 美剧|【鬼入侵】(2018)_10集全_4K中字【20G】
swz3sfn3fwo?password=8888 美剧|【足球教练】1-3季_1080P中字【34G】
swz3sbi3fwo?password=8888 美剧|【你】1-4季_1080P中字【118G】
swz3s4m3fwo?password=8888 美剧|【我们这一天】1-6季_1080P中字【101G】
swz3sv73fwo?password=8888 美剧|【混乱之子】1-7季_1080P中字【172G】
swz3svt3fwo?password=8888 美剧|【猎鹰与冬兵】(2021)_6集全_4K中字【21G】
swz3se13fwo?password=8888 美剧|【废柴联盟】1-6季_4K中字【260G】
swz3lbz3fwo?password=8888 美剧|【绯闻女孩】1-6季_1080P中字【109G】
swz3lo83fwo?password=8888 美剧|【疑犯追踪】1-5季_1080P中字【145G】
swz3lia3fwo?password=8888 美剧|【超能英雄】1-4季_1080P中字【115G】
swz3qb83fwo?password=8888 美剧|【犯罪心理】1-16季全_1080P中字【395G】
swz3q5s3fwo?password=8888 美剧|【广告狂人】1-7季全_1080P中字【373G】
swz3qek3fwo?password=8888 美剧|【伞学院】1-3季_4K中字【201G】
swz3qe03fwo?password=8888 美剧|【人生切割术】第一季_(2022)_4K中字【75G】
swz3qgz3fwo?password=8888 美剧|【危机边缘】1-5季_1080P中字【90G】
swz3qgq3fwo?password=8888 美剧|【萤火虫】(2002)_14集全_1080P中字【37G】
swz3ba63fwo?password=8888 美剧|【斯巴达克斯】1-4季_1080P中字【491G】
swz3bxo3fwo?password=8888 美剧|【哥谭】1-5季_1080P蓝光原盘中字【720G】
swz6zsv3fwo?password=8888 美剧|【黑道家族】1-6季全_1080P中字【169G】
swz6zlm3fwo?password=8888 美剧|【闪电侠】1-9季全_1080P中字【180G】
swz6wjj3fwo?password=8888 美剧|【实习医生格蕾】1-19季全_1080P中字【1.03T】
swz6fff3fwo?password=8888 美剧|【女子监狱】1-7季全_1080P中字【188G】
swz6ff83fwo?password=8888 美剧|【杀死伊芙】1-4季_1080P中字【23G】
swz6fs73fwo?password=8888 美剧|【神盾局特工】1-7季_1080P中字【124G】
swz6fld3fwo?password=8888 美剧|【火线】1-5季全_1080P中字【61G】
swz6s4a3fwo?password=8888 美剧|【继承之战】1-4季_4K外挂中字【368G】
swz6sy63fwo?password=8888 美剧|【公园与游憩】1-7季全_1080P中字【255G】
swz6skk3fwo?password=8888 美剧|【真爱如血】1-7季全_1080P中字【142G】
swz6sd63fwo?password=8888 美剧|【超感猎杀】1-2季_4K中字【126G】
swz6sdr3fwo?password=8888 美剧|【白莲花度假村】1-2季_1080P中字【48G】
swz6s553fwo?password=8888 美剧|【千谎百计】1-3季全_1080P中字【125G】
swz6lny3fwo?password=8888 美剧|【神秘博士】1-13季全_1080P中字【324G】
swz6lww3fwo?password=8888 美剧|【X档案】1-11季+电影版两部_1080P中字【143G】
swz6lff3fwo?password=8888 美剧|【鹰眼】(2021)_6集全_4K中字【43G】
swz6lbk3fwo?password=8888 美剧|【IT狂人】1-4季全_标清中字【20G】
swz6lb03fwo?password=8888 美剧|【无人生还】(2015)_3集全_1080P中字【14G】
swz6l7f3fwo?password=8888 美剧|【童话镇】1-7季_720P中字【72G】
swz6lyi3fwo?password=8888 美剧|【欧比旺】(2022)_6集全_4K中字【36G】
swz6lmm3fwo?password=8888 美剧|【黄石】1-5季_4K中字【更新中】
swz6lee3fwo?password=8888 美剧|【双峰】1-3季_1080P中字【106G】
swz6lgx3fwo?password=8888 美剧|【杰西卡·琼斯】1-3季_1080P中字【139G】
swz6lpz3fwo?password=8888 美剧|【怒呛人生】(2023)_10集全_4K中字【30G】
swz6lp23fwo?password=8888 美剧|【绝望主妇】1-8季_720P中字【71G】
swz6ltu3fwo?password=8888 美剧|【绝望主妇】1-8季_1080P中字【300G】
swz6l033fwo?password=8888 美剧|【地球百子】1-7季全_1080P中字【206G】
swz6b1z3fwo?password=8888 美剧|【杰茜驾到】1-7季全_1080P中字【194G】
swz6b1r3fwo?password=8888 美剧|【正常人】(2020)_12集全_1080P中字【9.23G】
swz6bcn3fwo?password=8888 美剧|【大西洋帝国】1-5季_1080P中字【122G】
swz6onx3fwo?password=8888 美剧|【小谢尔顿】1-6季_1080P中字【85G】
swz6o643fwo?password=8888 美剧|【女浩克】(2022)_9集全_4K中字【40G】
swz6oo83fwo?password=8888 美剧|【傲慢与偏见】(1995)_6集全_1080P外挂字幕【78G】
swz6o7w3fwo?password=8888 美剧|【贴身保镖】第一季_1080P中字【7G】
swz6o453fwo?password=8888 美剧|【反恐24小时】1-9季全_1080P中字【399G】
swz6oyi3fwo?password=8888 美剧|【良医】1-6季_1080P中字【64G】
swz6k1k3fwo?password=8888 美剧|【硅谷】1-6季_1080P中字【39G】
swz6kcq3fwo?password=8888 美剧|【副本】1-2季_4K中字【127G】
swz6k0s3fwo?password=8888 美剧|【罪夜之奔】(2016)_8集全_1080P中字【5G】
swz6kuu3fwo?password=8888 美剧|【艾米丽在巴黎】1-3季_1080P中字【105G】
swz6dl23fwo?password=8888 美剧|【罗马】1-2季_1080P中字【60G】
swz6d773fwo?password=8888 美剧|【好兆头】1-2季_4K中字【67G】
swz6ew93fwo?password=8888 美剧|【黑色孤儿】1-5季_1080P中字【95G】
swz6ebs3fwo?password=8888 美剧|【叶卡捷琳娜大帝】1-3季_1080P中字
sw6u7mw3fwo?password=8888 韩剧|【阿拉姆恩之剑:阿斯达年代记】(2023)_1080P韩语中字_李准基_|_张东健_/_申世景
sw62qsa3fwo?password=8888 韩剧|【鱿鱼游戏】第一季(2021)_4K韩语中字_李政宰_/_朴海秀_/_魏嘏隽
sw62qq83fwo?password=8888 韩剧|【请回答1988】(2015)_20集全_4K韩语中字_成东日_/_李一花_/_罗美兰
sw62qbl3fwo?password=8888 韩剧|【黑暗荣耀】第一季_(2022)_4K韩语中字_宋慧乔_/_李到晛_/_林智妍
sw62q7z3fwo?password=8888 韩剧|【黑暗荣耀】第二季_(2023)_1080P韩语中字_宋慧乔_/_李到晛_/_林智妍
sw62q773fwo?password=8888 韩剧|【孤单又灿烂的神:鬼怪】(2016)_16集全_4K韩语中字_孔刘_/_金高银_/_李栋旭
sw62q723fwo?password=8888 韩剧|【来自星星的你】(2013)_21集全_1080P韩语中字_金秀贤_/_全智贤_/_朴海镇
sw62qiy3fwo?password=8888 韩剧|【信号】(2016)_16集全_1080P韩语中字_李帝勋_/_赵震雄_/_金惠秀
sw62qie3fwo?password=8888 韩剧|【太阳的后裔】(2016)_16集全_1080P韩语中字_宋慧乔_/_宋仲基_/_金智媛
sw62qi23fwo?password=8888 韩剧|【爱的迫降】(2019)_16集全_4K韩语中字_玄彬_/_孙艺珍_/_徐智慧
sw62q4j3fwo?password=8888 韩剧|【机智医生生活】第一季_(2020)_1080P韩语中字_曹政奭_/_柳演锡_/_郑敬淏
sw62q4c3fwo?password=8888 韩剧|【机智医生生活】第二季_(2021)_1080P韩语中字_曹政奭_/_柳演锡_/_郑敬淏
sw62qyq3fwo?password=8888 韩剧|【W-两个世界】(2016)_16集全_1080P韩语中字_李钟硕_/_韩孝周_/_郑幼贞
sw62qyg3fwo?password=8888 韩剧|【机智牢房生活】(2017)_16集全_1080P韩剧|中字_朴海秀_/_郑敬淏_/_郑秀晶
sw62qkz3fwo?password=8888 韩剧|【继承者们】(2013)_20集全_1080P韩语中字_李敏镐_/_朴信惠_/_金宇彬
sw62qkg3fwo?password=8888 韩剧|【当你沉睡时】(2017)_32集全_1080P韩语中字_李钟硕_/_裴秀智_/_李相烨
sw62qk93fwo?password=8888 韩剧|【窥探】(2021)_20集全_1080P韩语中字_李昇基_/_李熙俊_/_朴柱炫
sw62qk13fwo?password=8888 韩剧|【举重妖精金福珠】(2016)_16集全_1080P韩语中字_李圣经_/_南柱赫_/_景收真
sw62qdh3fwo?password=8888 韩剧|【甜蜜家园】(2020)_10集全_4K韩语中字_宋江_/_李施吟_/_李到晛
sw62qdv3fwo?password=8888 韩剧|【非常律师禹英禑】(2022)_16集全_1080P韩语中字_朴恩斌_/_姜泰伍_/_姜其永
sw62qmf3fwo?password=8888 韩剧|【那年,我们的夏天】(2021)_16集全_1080P韩语中字_崔宇植_/_金多美_/_金圣喆
sw62qma3fwo?password=8888 韩剧|【欢迎来到王之国】(2023)_16集全_1080P韩语中字_李俊昊_/_林允儿_/_高媛熙
sw62q5z3fwo?password=8888 韩剧|【治愈者】(2014)_20集全_1080P韩语中字_池昌旭_/_朴敏英_/_刘智泰
sw62q5g3fwo?password=8888 韩剧|【今生是第一次】(2017)_16集全_1080P韩语中字_李民基_/_郑素敏_/_朴炳垠
sw62qvl3fwo?password=8888 韩剧|【没关系,是爱情啊】(2014)_16集全_1080P韩语中字_赵寅成_/_孔晓振_/_成东日
sw62qvg3fwo?password=8888 韩剧|【请回答1997】(2012)_16集全_1080P韩语中字_郑恩地_/_徐仁国_/_申素率
sw62qan3fwo?password=8888 韩剧|【蓝色大海的传说】(2016)_20集全_720P韩语中字_全智贤_/_李敏镐_/_文素丽
sw62qa43fwo?password=8888 韩剧|【僵尸校园】(2022)_12集全_4K韩语中字_尹灿荣_/_朴持厚_/_曹怡贤
sw62qax3fwo?password=8888 韩剧|【社内相亲】(2022)_12集全_1080P韩语中字_安孝燮_/_金世正_/_金旻奎
sw62qg93fwo?password=8888 韩剧|【我的解放日志】(2022)_16集全_4K韩语中字_李民基_/_金智媛_/_孙锡久
sw62qpn3fwo?password=8888 韩剧|【365逆转命运的1年】(2020)_24集全_1080P韩语中字_李浚赫_/_南志铉_/_金智秀
sw62qpd3fwo?password=8888 韩剧|【财阀家的小儿子】(2022)_16集全_1080P韩语中字_宋仲基_/_李星民_/_申铉彬
sw62q8x3fwo?password=8888 韩剧|【大力女子都奉顺】(2017)_16集全_1080P韩语中字_朴宝英_/_朴炯植_/_金志洙
sw62bog3fwo?password=8888 韩剧|【城市猎人】(2011)_20集全_720P韩语中字_李敏镐_/_朴敏英_/_李浚赫
sw62big3fwo?password=8888 韩剧|【哦我的鬼神大人】(2015)_16集全_1080P韩语中字_朴宝英_/_曹政奭_/_金瑟祺
sw62bi23fwo?password=8888 韩剧|【二十五,二十一】(2022)_16集全_1080P韩语中字_金泰梨_/_南柱赫_/_金知妍
sw62b4d3fwo?password=8888 韩剧|【超异能族】(2023)_20集全_4K韩语中字_柳承龙_/_韩孝周_/_赵寅成
sw62b4j3fwo?password=8888 韩剧|【海岸村恰恰恰】(2021)_16集全_1080P韩语中字_申敏儿_/_金宣虎_/_李相二
sw62byh3fwo?password=8888 韩剧|【D.P逃兵追缉令】_第一季_(2021)_4K韩语中字_丁海寅_/_具教焕_/_金成畇_
sw62bmt3fwo?password=8888 韩剧|【D.P逃兵追缉令】_第二季_(2023)_4K韩语中字_丁海寅_/_具教焕_/_金成畇
sw62b533fwo?password=8888 韩剧|【仁显王后的男人】(2012)_16集全_1080P韩语中字_刘寅娜_/_池贤宇_/_金镇宇
sw62b5h3fwo?password=8888 韩剧|【少年法庭】(2022)_10集全_4K韩语中字_金惠秀_/_金武烈_/_李星民
sw62bvt3fwo?password=8888 韩剧|【杀了我治愈我】(2015)_20集全_1080P韩语中字_池晟_/_黄正音_/_朴叙俊
sw62beq3fwo?password=8888 韩剧|【未生】(2014)_20集全_1080P韩语中字_任时完_/_李星民_/_姜素拉
sw62bep3fwo?password=8888 韩剧|【内在美】(2018)_16集全_1080P韩语中字_徐玄振_/_李民基_/_李多熙
sw62bai3fwo?password=8888 韩剧|【语义错误】(2022)_8集全_1080P韩语中字_朴栖含_/_朴宰灿_/_宋智午
sw62bgh3fwo?password=8888 韩剧|【我的ID是江南美人】(2018)_16集全_1080P韩语中字_林秀香_/_车银优_/_赵宇丽
sw62bgf3fwo?password=8888 韩剧|【偶然发现的一天】(2019)_32集全_1080P韩语中字_金惠奫_/_金路云_/_李宰旭
sw62bga3fwo?password=8888 韩剧|【国王:永远的君主】(2020)_16集全_1080P韩语中字_李敏镐_/_金高银_/_禹棹焕
sw62bg03fwo?password=8888 韩剧|【请回答1994】(2013)_21集全_1080P韩语中字_高雅拉_/_柳演锡_/_正宇
sw62bpy3fwo?password=8888 韩剧|【Move_to_Heaven我是遗物整理师】(2021)_10集全_4K韩语中字_李帝勋_/_汤峻相_/_洪承熙
sw62owv3fwo?password=8888 韩剧|【夫妻的世界】(2020)_16集全_1080P韩语中字_金喜爱_/_朴解浚_/_韩韶禧
sw62ofn3fwo?password=8888 韩剧|【安娜】(2022)_6集全_1080P韩语中字_裴秀智_/_郑恩彩_/_金俊翰
sw62ofi3fwo?password=8888 韩剧|【火星生活】(2018)_16集全_1080P韩语中字_郑敬淏_/_朴成雄_/_高我星
sw62ofe3fwo?password=8888 韩剧|【春夜】(2019)_16集全_4K韩语中字_韩志旼_/_丁海寅_/_金俊翰
sw62osq3fwo?password=8888 韩剧|【酒鬼都市女人们】(2021)_12集全_1080P韩语中字_李先彬_/_韩善花_/_郑恩地
sw62osg3fwo?password=8888 韩剧|【棒球大联盟】(2019)_16集全_1080P韩语中字_南宫珉_/_朴恩斌_/_吴正世
sw62oq13fwo?password=8888 韩剧|【囚犯医生】(2019)_16集全_1080P韩语中字_南宫珉_/_权娜拉_/_金炳哲
sw62ob33fwo?password=8888 韩剧|【迷雾】(2018)_16集全_1080P韩语中字_金南珠_/_池珍熙_/_高俊
sw62obv3fwo?password=8888 韩剧|【我的名字】(2021)_8集全_4K韩语中字_韩韶禧_/_朴熹洵_/_安普贤
sw62oo33fwo?password=8888 韩剧|【咖啡王子1号店】(2007)_17集全_1080P韩语中字_尹恩惠_/_孔刘_/_李善均
sw62ook3fwo?password=8888 韩剧|【黑话律师】(2022)_16集全_1080P韩语中字_李钟硕_/_林允儿_/_金周宪
sw62oor3fwo?password=8888 韩剧|【耀眼】(2019)_12集全_1080P韩语中字_金惠子_/_韩志旼_/_南柱赫
sw62o7s3fwo?password=8888 韩剧|【地狱公使】(2021)_6集全_4K韩语中字_刘亚仁_/_金贤珠_/_朴正民
sw62o7r3fwo?password=8888 韩剧|【请输入搜索词WWW】(2019)_16集全_1080P韩语中字_林秀晶_/_张基龙_/_李多熙
sw62oid3fwo?password=8888 韩剧|【阿尔罕布拉宫的回忆】(2018)_16集全_1080P韩语中字_玄彬_/_朴信惠_/_朴勋_
sw62oyx3fwo?password=8888 韩剧|【她很漂亮】(2015)_16集全_1080P韩语中字_黄正音_/_朴叙俊_/_高俊熙
sw62oks3fwo?password=8888 韩剧|【我亲爱的朋友们】(2016)_16集全_1080P韩语中字_高贤贞_/_赵寅成_/_金惠子
sw62okn3fwo?password=8888 韩剧|【Live】(2018)_18集全_720P韩语中字_郑有美_/_李光洙_/_裴晟祐
sw62ok43fwo?password=8888 韩剧|【制作人】(2015)_12集全_1080P韩语中字_金秀贤_/_车太贤_/_孔晓振
sw62odw3fwo?password=8888 韩剧|【她的私生活】(2019)_16集全_1080P韩语中字_朴敏英_/_金材昱_/_安普贤
sw62odl3fwo?password=8888 韩剧|【大长今】(2003)_54集全_1080P国语韩语多音轨中字_李英爱_/_池珍熙_/_任豪
sw62odr3fwo?password=8888 韩剧|【无法抗拒的他】(2021)_10集全_1080P韩语中字_宋江_/_韩韶禧_/_蔡钟协
sw62omq3fwo?password=8888 韩剧|【加油吧威基基】(2018)_20集全_1080P韩语中字_金正贤_/_李伊庚_/_孙承源
sw62omv3fwo?password=8888 韩剧|【绅士的品格】(2012)_20集全_1080P韩语中字_张东健_/_金荷娜_/_金民钟
sw62om93fwo?password=8888 韩剧|【九回时间旅行】(2013)_20集全_1080P韩语中字_李阵郁_/_赵胤熙_/_全卢民
sw6uayo3fwo?password=8888 日剧|【非自然死亡】全10集_1080P中字【13G】
swz3hvx3fwo?password=8888 日剧|【胜者即是正义】(2012)_11集全_1080P中字【13G】
swz3hv03fwo?password=8888 日剧|【胜者即是正义2】(2013)_10集全_1080P中字【13G】
swz3l4f3fwo?password=8888 日剧|【弥留之国的爱丽丝】1-2季_4K中字【100G】
swz6syr3fwo?password=8888 日剧|【半泽直树】1-2季全_1080P中字【38G】
swz6sdf3fwo?password=8888 日剧|【我是大哥大】10集全_1080P中字【38G】
swz6s5p3fwo?password=8888 日剧|【重启人生】10集全_1080P中字【11G】
swz6s513fwo?password=8888 日剧|【轮到你了】20集全_1080P中字【20G】
swz6o4e3fwo?password=8888 日剧|【四重奏】(2017)_10集全_1080P中字【16G】
swz6kjm3fwo?password=8888 日剧|【我的恐怖妻子】(2016)_9集全_1080P中字【13G】
swz6dk13fwo?password=8888 日剧|【凪的新生活】(2019)_10集全_1080P中字【9G】
sw6uis63fwo?password=8888 台剧|【想见你】(2019)_13集全_4K中字【36G】
sw6uj4h3fwo?password=8888 台剧|【我们与恶的距离】(2019)_10集全_4K中字【88G】
swz6lk43fwo?password=8888 台剧|【我可能不会爱你】(2011)_23集全_1080P中字【17G】
swz6kcg3fwo?password=8888 台剧|【俗女养成记】1-2季_4K中字【74G】
swnvgvv3z29?password=h6b2 纪录片|中国通史全100集_64.07G
sw682pw3nyo?password=s8c8 纪录片|国外纪录片_1.86T
sw6xm3j3w7v?password=1111 纪录片|百家讲坛全集_2.21T
swz6smc3fwo?password=8888 纪录片|【地球脉动】1-3季_1080P中字【436G】
sw68md23w8m?password=q353 纪录片|盗火纪录片_9.32T
swz6fb03fwo?password=8888 纪录片|一级方程式疾速争胜_(2019)
swz6fbu3fwo?password=8888 纪录片|七个世界一个星球_(2019)
swz6fo33fwo?password=8888 纪录片|72种危险动物拉丁美洲_(2017)
swz6fo43fwo?password=8888 纪录片|72种危险动物亚洲篇_(2018)
swz6foy3fwo?password=8888 纪录片|2022_(2022)
swz6fok3fwo?password=8888 纪录片|阿波罗11号_(2019)
swz6fod3fwo?password=8888 纪录片|阿莱克斯·施瓦泽为真相而跑_(2023)
swz6fov3fwo?password=8888 纪录片|埃及艳后_(2023)
swz6foe3fwo?password=8888 纪录片|艾德·希兰成名之路_(2023)
swz6foa3fwo?password=8888 纪录片|爱犬情深_(2018)
swz6fog3fwo?password=8888 纪录片|摆脱贫困_(2021)
swz6fo83fwo?password=8888 纪录片|北回归线_(2010)
swz6foj3fwo?password=8888 纪录片|北极奇观_(2014)
swz6fo93fwo?password=8888 纪录片|北极熊_(2022)
swz6fo13fwo?password=8888 纪录片|贝尔蒂·格雷戈里与动物零距离_(2023)
swz6fo03fwo?password=8888 纪录片|奔向月球_(2015)
swz6f733fwo?password=8888 纪录片|变态者意识形态指南_(2012)
swz6f7n3fwo?password=8888 纪录片|冰冻星球2_(2022)
swz6f7z3fwo?password=8888 纪录片|冰河时代的巨人_(2013)
swz6f7w3fwo?password=8888 纪录片|冰雪之巅_(2018)
swz6f7s3fwo?password=8888 纪录片|博茨瓦纳惊人的野生动物_(2020)
swz6f7q3fwo?password=8888 纪录片|不破不立_(2021)
swz6f7o3fwo?password=8888 纪录片|不止考古·我与三星堆_(2022)
swz6f7i3fwo?password=8888 纪录片|坂本龙一终曲_(2017)
swz6f743fwo?password=8888 纪录片|BBC_野性都市_(2018)
swz6f7k3fwo?password=8888 纪录片|彩排_(2022)
swz6f7d3fwo?password=8888 纪录片|茶一片树叶的故事_(2013)
swz6f753fwo?password=8888 纪录片|超凡动物奇观_(2022)
swz6f7v3fwo?password=8888 纪录片|超级工程_(2012)
swz6f7r3fwo?password=8888 纪录片|沉船搜索者澳大利亚_(2022)
swz6f7t3fwo?password=8888 纪录片|穿越落基山脉_(2011)
swz6f783fwo?password=8888 纪录片|从太空看地球_(2019)
swz6f7j3fwo?password=8888 纪录片|大白鲨_(2013)
swz6f7x3fwo?password=8888 纪录片|大堡礁探险_(2018)
swz6f7c3fwo?password=8888 纪录片|大陆的崛起_(2013)
swz6f703fwo?password=8888 纪录片|大秦岭_(2010)
swz6f7u3fwo?password=8888 纪录片|大太平洋_(2017)
swz6fi33fwo?password=8888 纪录片|大峡谷探险之河流告急_(2008)
swz6fi63fwo?password=8888 纪录片|大象的秘密_(2023)
swz6fih3fwo?password=8888 纪录片|大象女王_(2019)
swz6fiw3fwo?password=8888 纪录片|大熊猫_(2018)
swz6fif3fwo?password=8888 纪录片|登陆日诺曼底1944_(2014)
swz6fis3fwo?password=8888 纪录片|地球的夜晚_(2020)
swz6fil3fwo?password=8888 纪录片|地球风暴_(2022)
swz6fiq3fwo?password=8888 纪录片|地球脉动_(2006)
swz6fib3fwo?password=8888 纪录片|地球脉动2_(2016)
swz6fi73fwo?password=8888 纪录片|地球神奇的一天_(2017)
swz6fii3fwo?password=8888 纪录片|第四阶段_(2016)
swz6fiy3fwo?password=8888 纪录片|帝国的崛起奥斯曼_(2020)
swz6fik3fwo?password=8888 纪录片|帝企鹅日记2召唤_(2017)
swz6fim3fwo?password=8888 纪录片|帝王蝶的迁徙_(2012)
swz6fiv3fwo?password=8888 纪录片|东瀛大宝荐
swz6fie3fwo?password=8888 纪录片|动物本色_(2021)
swz6fig3fwo?password=8888 纪录片|敦煌生而传奇_(2021)
swz6fi83fwo?password=8888 纪录片|恶海捕蟹记血脉篇_(2020)
swz6fij3fwo?password=8888 纪录片|非洲_(2013)
swz6fic3fwo?password=8888 纪录片|非洲动物乐园_(2017)
swz6fi23fwo?password=8888 纪录片|风味原产地_(2019)
swz6f433fwo?password=8888 纪录片|佛罗伦萨和乌菲兹美术馆_(2015)
swz6f4n3fwo?password=8888 纪录片|功勋_(2021)
swz6f4s3fwo?password=8888 纪录片|孤注一掷阿森纳_(2022)
swz6f4q3fwo?password=8888 纪录片|孤注一掷巴西国家队_(2020)
swz6f4o3fwo?password=8888 纪录片|孤注一掷曼彻斯特城_(2018)
swz6f473fwo?password=8888 纪录片|孤注一掷托特纳姆热刺_(2020)
swz6f4i3fwo?password=8888 纪录片|龟女士的奥德赛_(2018)
swz6f4y3fwo?password=8888 纪录片|国际空间站_(2002)
swz6f4k3fwo?password=8888 纪录片|国家地理大迁徙_(2010)
swz6f4m3fwo?password=8888 纪录片|国家地理远征南极_(2009)
swz6f4r3fwo?password=8888 纪录片|海狼之岛_(2022)
swz6f4a3fwo?password=8888 纪录片|海洋_(2010)
swz6f4p3fwo?password=8888 纪录片|海洋我们的蓝色星球_(2018)
swz6f4t3fwo?password=8888 纪录片|航空母舰七海卫士_(2016)
swz6fyz3fwo?password=8888 纪录片|航拍中国_(2017)
swz6fyw3fwo?password=8888 纪录片|河西走廊_(2015)
swz6fyf3fwo?password=8888 纪录片|黑猩猩帝国_(2023)
swz6fyb3fwo?password=8888 纪录片|黑夜跟踪狂追捕连环杀手_(2021)
swz6fy73fwo?password=8888 纪录片|欢迎来地球_(2021)
swz6fyi3fwo?password=8888 纪录片|环法自行车赛逆风飞驰_(2023)
swz6fyy3fwo?password=8888 纪录片|回到太空_(2022)
swz6fyk3fwo?password=8888 纪录片|急诊先锋纽约_(2023)
swz6fym3fwo?password=8888 纪录片|记忆的力量·抗美援朝_(2020)
swz6fyv3fwo?password=8888 纪录片|家园_(2020)
swz6fye3fwo?password=8888 纪录片|揭秘海军陆战队_(2017)
swz6fyg3fwo?password=8888 纪录片|巨兽_(2023)
swz6fyt3fwo?password=8888 纪录片|觉醒_(2018)
swz6fyj3fwo?password=8888 纪录片|康纳·麦格雷戈拳王万岁_(2023)
swz6fy13fwo?password=8888 纪录片|克里斯·海姆斯沃斯挑战极限_(2022)
swz6fy23fwo?password=8888 纪录片|狂野日本_(2015)
swz6fk33fwo?password=8888 纪录片|狂野之美国家公园探险_(2016)
swz6fkn3fwo?password=8888 纪录片|蓝色星球_(2001)
swz6fks3fwo?password=8888 纪录片|蓝色星球2_(2017)
swz6fkb3fwo?password=8888 纪录片|雷吉_(2023)
swz6fki3fwo?password=8888 纪录片|李小龙传奇_(2008)
swz6fky3fwo?password=8888 纪录片|了解宇宙如何运行_(2010)
swz6fkk3fwo?password=8888 纪录片|绿色星球_(2022)
swz6fkm3fwo?password=8888 纪录片|罗马四大圣殿_(2016)
swz6fk53fwo?password=8888 纪录片|麦道夫华尔街吸金恶霸_(2023)
swz6fkr3fwo?password=8888 纪录片|没有极限_(2015)
swz6fka3fwo?password=8888 纪录片|美国内战_(1990)
swz6fkp3fwo?password=8888 纪录片|美国西海岸之旅_(2014)
swz6fk83fwo?password=8888 纪录片|美丽星球_(2016)
swz6fk93fwo?password=8888 纪录片|美丽中国_(2008)
swz6fk13fwo?password=8888 纪录片|梦想之大构建我们的世界_(2017)
swz6fkc3fwo?password=8888 纪录片|木偶奇遇记_(2022)
swz6fdn3fwo?password=8888 纪录片|喵星人的奇思妙想_(2022)
swz6fdz3fwo?password=8888 纪录片|MH370消失的马航客机_(2023)
swz6fdh3fwo?password=8888 纪录片|纳米比亚-旷野的精神_(2016)
swz6fdw3fwo?password=8888 纪录片|南极3D在边缘_(2014)
swz6fdq3fwo?password=8888 纪录片|南太平洋之旅_(2013)
swz6fd73fwo?password=8888 纪录片|欧洲_(2016)
swz6fdy3fwo?password=8888 纪录片|披头士乐队回归_(2021)
swz6fdm3fwo?password=8888 纪录片|僻壤凶案_(2022)
swz6fd53fwo?password=8888 纪录片|婆罗洲亚洲的魅力_(2017)
swz6fdv3fwo?password=8888 纪录片|破发点大满贯之路_(2023)
swz6fda3fwo?password=8888 纪录片|破浪_(2016)
swz6fdg3fwo?password=8888 纪录片|奇妙酒店大堂之外的生活_(2017)
swz6fdp3fwo?password=8888 纪录片|企鹅群里有特务_(2013)
swz6fd83fwo?password=8888 纪录片|企鹅小镇_(2021)
swz6fdj3fwo?password=8888 纪录片|切尔诺贝利_(2019)
swz6fdx3fwo?password=8888 纪录片|情系斯波克_(2016)
swz6fm33fwo?password=8888 纪录片|求偶游戏_(2021)
swz6fmh3fwo?password=8888 纪录片|全力挥杆高尔夫大满贯之路_(2023)
swz6fmf3fwo?password=8888 纪录片|全美缉凶波士顿马拉松爆炸案_(2023)
swz6fml3fwo?password=8888 纪录片|全球绝美国家公园_(2022)
swz6fmb3fwo?password=8888 纪录片|人间游乐场_(2022)
swz6fmi3fwo?password=8888 纪录片|人生七年1_(1964)
swz6fmy3fwo?password=8888 纪录片|人生七年2_(1970)
swz6fmd3fwo?password=8888 纪录片|人生七年3_(1977)
swz6fm53fwo?password=8888 纪录片|人生七年4_(1984)
swz6fme3fwo?password=8888 纪录片|人生七年5_(1991)
swz6fma3fwo?password=8888 纪录片|人生七年6_(1999)
swz6fmp3fwo?password=8888 纪录片|人生七年7_(2006)
swz6fmt3fwo?password=8888 纪录片|人生七年8_(2012)
swz6fm93fwo?password=8888 纪录片|人生七年9_(2019)
swz6fm13fwo?password=8888 纪录片|人生第一次_(2020)
swz6fmc3fwo?password=8888 纪录片|塞伦盖蒂_(2019)
swz6fm23fwo?password=8888 纪录片|塞伦盖蒂国家公园_(2011)
swz6fmu3fwo?password=8888 纪录片|舌尖上的中国_(2012)
swz6f5n3fwo?password=8888 纪录片|生门_(2017)
swz6f563fwo?password=8888 纪录片|生命_(2009)
swz6f5h3fwo?password=8888 纪录片|盛会_(2022)
swz6f5w3fwo?password=8888 纪录片|时间的风景_(2012)
swz6f5f3fwo?password=8888 纪录片|史前星球_(2022)
swz6f5s3fwo?password=8888 纪录片|水下中国_(2019)
swz6f5q3fwo?password=8888 纪录片|他乡的童年_(2019)
swz6f5b3fwo?password=8888 纪录片|泰勒·斯威夫特美利坚女士_(2020)
swz6f5i3fwo?password=8888 纪录片|太空之旅_(2015)
swz6f543fwo?password=8888 纪录片|徒手攀岩_(2018)
swz6f5k3fwo?password=8888 纪录片|外星世界_(2020)
swz6f5v3fwo?password=8888 纪录片|完美星球_(2021)
swz6f5e3fwo?password=8888 纪录片|万物之生_(2022)
swz6f5g3fwo?password=8888 纪录片|王朝_(2018)
swz6f5p3fwo?password=8888 纪录片|王阳明_(2021)
swz6f5t3fwo?password=8888 纪录片|韦科惨案末日烈火_(2023)
swz6f5j3fwo?password=8888 纪录片|为了全人类_(1989)
swz6f593fwo?password=8888 纪录片|维多利亚的秘密天使与恶魔_(2022)
swz6f5u3fwo?password=8888 纪录片|未来漫游指南_(2022)
swz6fvs3fwo?password=8888 纪录片|我工作故我在_(2023)
swz6fvi3fwo?password=8888 纪录片|我们的父亲_(2022)
swz6fvm3fwo?password=8888 纪录片|我们的浩瀚宇宙_(2022)
swz6fv53fwo?password=8888 纪录片|我们的星球_(2019)
swz6fvr3fwo?password=8888 纪录片|我们的自然_(2018)
swz6fve3fwo?password=8888 纪录片|我们星球上的生命_(2023)
swz6fva3fwo?password=8888 纪录片|我是一名杀手_(2018)
swz6fvp3fwo?password=8888 纪录片|无穷之路_(2021)
swz6fvj3fwo?password=8888 纪录片|武林外传_(2018)
swz6fvx3fwo?password=8888 纪录片|小小世界_(2020)
swz6fv03fwo?password=8888 纪录片|行星_(2019)
swz6fvu3fwo?password=8888 纪录片|血与性400年王室风云_(2022)
swz6fr63fwo?password=8888 纪录片|药剂师_(2020)
swz6frh3fwo?password=8888 纪录片|野性太平洋_(2016)
swz6frf3fwo?password=8888 纪录片|野性英伦_(2023)
swz6frq3fwo?password=8888 纪录片|夜色中的地球_(2020)
swz6fr73fwo?password=8888 纪录片|移民国度_(2020)
swz6frm3fwo?password=8888 纪录片|影响世界的中国植物_(2019)
swz6frp3fwo?password=8888 纪录片|与浪争锋_(2022)
swz6frx3fwo?password=8888 纪录片|宇宙时空之旅_(2014)
swz6fe33fwo?password=8888 纪录片|遇见最极致的中国_(2022)
swz6few3fwo?password=8888 纪录片|原味澳洲_(2013)
swz6fel3fwo?password=8888 纪录片|约翰·威尔逊的十万个怎么做_(2020)
swz6feb3fwo?password=8888 纪录片|找寻_(2021)
swz6fe73fwo?password=8888 纪录片|这货哪来的_(2023)
swz6fek3fwo?password=8888 纪录片|致富攻略_(2023)
swz6fem3fwo?password=8888 纪录片|中国_(2020)
swz6fev3fwo?password=8888 纪录片|中国救护_(2023)
swz6fee3fwo?password=8888 纪录片|中国通史_(2013)
swz6feg3fwo?password=8888 纪录片|中国之谜_(2016)
swz6fep3fwo?password=8888 纪录片|中国最美公路_(2022)
swz6fet3fwo?password=8888 纪录片|众神之地_(2022)
swz6fej3fwo?password=8888 纪录片|追缉汽车大亨卡洛斯·戈恩_(2023)
swz6fe93fwo?password=8888 纪录片|追逐珊瑚_(2017)
swz6fec3fwo?password=8888 纪录片|最后的珊瑚礁海底世界_(2012)
swz6fe23fwo?password=8888 纪录片|最后的舞动_(2020)
swz6feu3fwo?password=8888 纪录片|最美公路_(2018)
swz6fan3fwo?password=8888 纪录片|座头鲸_(2015)
sw6vuxp366e?password=kd83 音乐MV|港台MV_1.14T
sw658uq36x2?password=md98 音乐MV|音乐22万首_8.76T
swzmqcr3fs6?password=xd67 音乐MV|音乐22万首_3.83TB
swzmqca3fs6?password=j9d3 音乐MV|音乐22万首_8.76TB
swzva8w3fs6?password=l381 音乐MV|音乐22万首_1.80TB
swz6ft53fwo?password=8888 精选|各类无损音乐合集9万首(8.8T)
swz6soa3fwo?password=8888 精选|成龙电影合集【447G】
swz6sot3fwo?password=8888 精选|《_成龙65部作品合集@Ourdisc_蓝光原盘_》【1.48T】
swz6so13fwo?password=8888 精选|林正英电影合集46部【209G】
swz6so23fwo?password=8888 精选|李连杰电影合集【210G】
swz6s763fwo?password=8888 精选|邵氏4K【777G】
swz6s7w3fwo?password=8888 精选|周星馳电影合集【183G】
swz6s743fwo?password=8888 精选|动漫_已经刮削整理_394部【13.97T】
swz6s7y3fwo?password=8888 精选|freembook全站15.72万书(kindle格式为主)_1.6t
swz6s7d3fwo?password=8888 精选|港片蓝光原盘1--669部【16T】
swz6s783fwo?password=8888 精选|纪录片合集_蓝光原盘
swz6sin3fwo?password=8888 精选|泰剧【3.15T】
swz6sih3fwo?password=8888 精选|音乐22万首14.39T音乐包2
swz6siw3fwo?password=8888 精选|印度電子圖書館部分書籍(29萬12T左右)
swz6sil3fwo?password=8888 精选|中美百万66万书籍的超大zip压缩版.ca66萬zip【8.7T】
swz6sib3fwo?password=8888 精选|最强爽文短剧合集373部
swz6gd93fwo?password=8888 精选|2267部2160p_remux_FGT【120T】
swz6gml3fwo?password=8888 精选|动画电影1000部【9.7T】
swz6gmc3fwo?password=8888 精选|综艺【4.75T】
swz6ges3fwo?password=8888 精选|动漫原盘【40T】
swz6gp53fwo?password=8888 精选|蓝光原盘_646T_合集
swz692e3fwo?password=8888 精选|高清翡翠台_合集_18.7tb
swz692x3fwo?password=8888 精选|TVB【7T】
swz69un3fwo?password=8888 精选|TVB_ATV最强电视剧合集【650部73T】
swzfv793fwo?password=8888 精选|【_BD-ISO_】】【2224TB】
swzt3w43hc6?password=s922 精选|希腊神话改编影视
swzt3w23hc6?password=z631 精选|尼古拉斯凯奇
swzt3wi3hc6?password=gf96 精选|恐怖片
swzt3fh3hc6?password=ia38 精选|全球丧尸电影百佳合集
swnnsis3zx1?password=g0d1 精选|600t合集
swzlcya3wsp?password=bab4 精选|1600t合集
swz82uz33a3?password=x1e1 精选|踢馆秘籍
swzkpip3ncb?password=5566 精选|【电影系列合集】4K
swzkpij3ncb?password=5566 精选|【电影系列合集】AE制作全特效字幕
swzkpix3ncb?password=5566 精选|【电影系列合集】最佳影片合集
swzkpi23ncb?password=5566 精选|漫威电影合集
swzkpiu3ncb?password=5566 精选|电影系列合集2
swz939j3hz7?password=bcd5 日本动漫|奥特曼系列
swzjuqj33dn?password=7777 日本动漫|火影忍者
sw62c3o3z9p?password=s137 动漫|动画片_3.99T
sw6upku3hqj?password=hc61 动漫|动漫394部_13.97T
swznmd03nc7?password=p897 动漫|动漫原盘_40.49T
sw6x8sj3zzo?password=v321 动漫|皮克斯动画合集4K_REMUX_975.83G
sw3x2pd33zy?password=xzpq 动漫|小猪佩奇_21.95G
swnd82q3zx1?password=ua89 动漫|奥特曼_1.1T
sw3c8o83hgl?password=b5e6 魔戒六部曲_1.18T
swzdt0w3nb4?password=f0a7 诺兰系列原盘访问码d843
swzdt933nb4?password=la51 姜文
swny8y43z12?password=o932 NBA总决赛1991-2020_698.21G
swzg31833xj?password=f3h5 2024欧洲杯
sw6rt783hgh?password=ifd6 PPT素材模板_84.82G

View File

@ -1,19 +0,0 @@
self 我的123网盘 0
Gme4Td-BW0Bd?pwd=evCv iso原盘|豆瓣top25
Kliajv-TAWpd iso原盘|合集
KASbTd-Yjjrv iso原盘|爱在三部曲
IpPUVv-4cCj?pwd=dNQN iso原盘|浪客剑心合集
IpPUVv-2INj?pwd=JMYP REMUX电影|诺兰合集
TcMcTd-7YWJ?pwd=JMYP REMUX剧集|东京爱情故事
IpPUVv-zFNj?pwd=JMYP REMUX剧集|纸牌屋
TcMcTd-bYWJ?pwd=JMYP REMUX剧集|请回答1988
IpPUVv-rJNj?pwd=JMYP REMUX剧集|黑道家族
IpPUVv-5FNj?pwd=JMYP REMUX剧集|国土安全
IpPUVv-jFNj?pwd=JMYP REMUX剧集|兄弟连
IpPUVv-UgNj?pwd=JMYP REMUX剧集|行尸走肉系列官方版
TcMcTd-aPWJ?pwd=JZMM REMUX剧集|重启人生
Xrvgjv-ApMWA REMUX剧集|曼洛达人
x2rdTd-1oSP3 成龙系列电影合集
6Lv8Vv-i6kD3 REMUX电影|中南海保镖
0pQSVv-OgQKd 动画电影合集
0pQSVv-OXEKd 动画剧场版合集

View File

@ -1,135 +0,0 @@
self 我的189网盘 0
uURbMvvmaQJ3 蓝光影剧合集[beAst]兽组十年站庆_3.52TB
YRBrquFFnQr2 海绵电影iso|周星驰蓝光原盘46部
fQBzQrz2m2am 海绵电影iso|成龙65部
mMzuMnMJ3yUr 海绵电影iso|星际旅行1-10
ZziMbij67jui 海绵电影iso|死亡笔记.真人版1-4
MzQzE32Irqei 海绵电影iso|死亡笔记.真人版1-4
MJjimuZzemqi 海绵电影iso|致命弯道1-7
FV7J3a7JvyM3 海绵电影iso|十一罗汉+十二罗汉+十三罗汉
BzieyyuIR7ne 海绵电影iso|白蛇1-3
RZjuYjRZFzAj 海绵电影iso|冰川时代1-5
euaqAreaUb2u 海绵电影iso|虎胆龙威1-5
VFfYryfQzABb 海绵电影iso|电锯惊魂1-9
IRRJRfaAj6be 海绵电影iso|指环王1-3||
INZBFzRVBRzy 海绵电影iso|指环王1-3|2
ZJnmAjNj2ymu 海绵电影iso|指环王1-3|3
AZ3If2MZbiui 海绵电影iso|致命武器1-4|1
jQzuaeqyUjm2 海绵电影iso|致命武器1-4|2
VJVBF3qUria2 海绵电影iso|致命武器1-4|3
eA7NzamQFzEn 海绵电影iso|致命武器1-4|4
J3Qra2qyMF7z 海绵电影iso|机器战警1-3|1
2URjUn2quqY3 海绵电影iso|机器战警1-3|2
VVrAfurUjIZj 海绵电影iso|机器战警1-3|3
MRVnuaqyQFv2 海绵电影iso|死亡飞车1-4
UFF3euEzQNfe 海绵电影iso|王家卫|东邪西毒
eMJv6vim6N32 海绵电影iso|王家卫|2046
fyiMBrm2QfM3 海绵电影iso|王家卫|阿飞正传
Vj63UvjQbYbu 海绵电影iso|王家卫|堕落天使
2qA3IbRR7vmq 海绵电影iso|王家卫|重亲森林
mAJria7Nv2qi 海绵电影iso|王家卫|春光乍泄
ANb6Jb3IJJ7r 海绵电影iso|王家卫|旺角卡门
6jErE3IVjMjm 海绵电影iso|王家卫|花样年华
3INZJreQnMre 海绵电影iso|王家卫|一代宗师
2yQ3qiFZFzAb?pwd=bzp0 4KHDR电影总合集1
RvmY7ruMRNfm?pwd=8y5e 4KHDR电影总合集2
VNFbEfmee26v?pwd=83ir 4KHDR电影总合集3
A3yu2avyyyua?pwd=7c7f 4KHDR电影总合集5
UjqeEziEjqMn?pwd=u26b 4KHDR电影总合集9
Uj6fia2iqq6v?pwd=7ty7 4KHDR电影总合集11
AjuYbiqi2AJr 吉卜力工作室25部动漫合集
uUr2qeqieQ3e 国内各大制片厂电影合集
fuiaAfVfmuUz 四大名著合集
ZJZVz2fu2uEj?pwd=in91 漫威宇宙合集
ZvqQryJ73QJf 加勒比海盗合集
eeUnuuaYb22e 生化危机合集
RJZr6b2e6BV3 海绵演唱会iso|滨崎步|2014巡回演唱会
vei6zaiQjQFf 海绵演唱会iso|滨崎步|出道21周年
VvyYNjRbIJju 海绵演唱会iso|滨崎步|午夜马戏团2015
fuqY3uZZZJJz 海绵演唱会iso|滨崎步|2016
6j2INfQbAfQr 海绵演唱会iso|滨崎步|2012巡回演唱会
qyiYRrjqeAja 海绵演唱会iso|滨崎步|2009巡回演唱会
m6bMb2niMfqu 海绵演唱会iso|滨崎步|2016日本巡回演唱会1
q6NJzejYNBBv 海绵演唱会iso|滨崎步|2016日本巡回演唱会2
RBRn6rvAriMr 海绵演唱会iso|滨崎步|2016日本巡回演唱会3
yuYbai7fuMbe 海绵演唱会iso|滨崎步|AOne2015
3muYfm2u6nye 海绵演唱会iso|滨崎步|CoLOURS2014
EJFnYzmmimyu 海绵演唱会iso|滨崎步|出道15周年
ZrmIvqZ36jEj 海绵演唱会iso|滨崎步|2008-2009信念倒计时演唱会
QVnea2FfaEfm 海绵演唱会iso|滨崎步|2009-2010跨年演唱会
yE7ZZrVB3MZv 海绵演唱会iso|滨崎步|2011迷你专辑
77vEzm7bqUBb 海绵演唱会iso|滨崎步|摇滚马戏团2010
FFj2Uf7za6nu 海绵演唱会iso|许巍|2015此时此刻演唱会LIVE纪录辑
Yveya2UBrE3y 海绵演唱会iso|王菲|2016幻梦一场
YruMnybUFjai 海绵演唱会iso|张震岳|2014破浪演唱会
6JVviyJrYNru 海绵演唱会iso|周杰伦|2010超时代世界巡回演唱会
eUjEF3MRbeum 海绵演唱会iso|周杰伦|2013-3015魔天伦世界巡回演唱会
RNJn6fA7zEje 海绵演唱会iso|周杰伦|2016地表最强巡回演唱会
3AVbIn2UJJR3 海绵演唱会iso|蔡依林|2015play世界巡回演唱会
vMNBJjiYRFrq 海绵演唱会iso|刘德华|2007完美世界香港红馆
fUZNnimA7vmi 海绵演唱会iso|刘德华|2010震撼红馆跨年演唱会
euyuI3AvIZZj 海绵演唱会iso|张学友|2010私人角落迷你音乐会
yM3UvqnQfeqq 海绵演唱会iso|张学友|二分之一
6nyE73zuEvue 海绵演唱会iso|张学友|2018醒着做梦
EVjyIf7byy6v 海绵演唱会iso|张学友|光年世界巡回演唱会07香港站
ZnQFnanuUZBv 海绵演唱会iso|郭富城|2008舞林正传
a6nmaajeaENn 海绵演唱会iso|郭富城|2013世界巡回香港站
2aAnQznm63Iz 海绵演唱会iso|容祖儿|2010演唱会
QjyMvqeEZfIn 海绵演唱会iso|容祖儿|2013演唱会
N7NFJ3EJzIJj 海绵演唱会iso|容祖儿|2017演唱会1
jUZr6rYBrmeq 海绵演唱会iso|容祖儿|2017演唱会2
JJBvU3bEJRjy 海绵演唱会iso|容祖儿|2015演唱会
rYnyIjr2mu2m 海绵演唱会iso|容祖儿|2015演唱会
riUz6jV3E32y 海绵演唱会iso|容祖儿|2009黄金十年
auiEn22Mfa6r 海绵演唱会iso|周慧敏|2018出道30周年演唱会
77r6jmEbEf2u 海绵演唱会iso|周慧敏|2018出道30周年演唱会
IFzMBvAFvEbu 海绵演唱会iso|周慧敏|2011出道25周年演唱会
bMbMRb73qui2 海绵演唱会iso|郑秀文|Gig演唱会
N7J77jNZ7nEv 海绵演唱会iso|郑秀文|2015演唱会
QruEjmvqAzie 海绵演唱会iso|郑秀文|2016演唱会
JvuMRzZRFr6n 海绵演唱会iso|郑秀文|2007演唱会
B7rQfmimuERf 海绵演唱会iso|郑秀文|2009世界巡回香港站
UbI7Znr2MJNj 海绵演唱会iso|郑秀文|2019世界巡回演唱会4k
aQf6raIFNfye 海绵演唱会iso|叶倩文|2012完全是你演唱会
UVnQvq3InMb2 海绵演唱会iso|许志安|2015演唱会
iEJNzaIf6Rfe 海绵演唱会iso|许志安|2011红磡25周年
bYB7BfzAJFz2 海绵演唱会iso|林峯|2016演唱会1
3Qj2uyveEvq2 海绵演唱会iso|林峯|2016演唱会2
6JNVBvFVfmIn 海绵演唱会iso|李克勤||2005-2006演奏厅1
73AZFbZRvARb 海绵演唱会iso|李克勤|2005-2006演奏厅2
uuM7raZfA732 海绵演唱会iso|久石让|武道馆
Azmei2vmyaea 海绵演唱会iso|陈洁仪X赵增熹
6NzqaqbEvqam 海绵演唱会iso|陈洁丽
VZBbEvAFnm22 海绵演唱会iso|罗志祥|2014极限拼图
bq6732JjqQF3 海绵演唱会iso|苏打绿|2015故事未了
BriA73jIzmM3 海绵演唱会iso|苏打绿|2013当我们一起走过演唱会
MryIRnURjuQn 海绵演唱会iso|林子祥|40周年演唱会2016
FbeaeeuqmuMn 海绵演唱会iso|林子祥|2013林子祥&赵增熹演唱会
uYnqIneI7Z7z 海绵演唱会iso|林子祥|2010音乐会
VNjyMnzA3uQj 海绵演唱会iso|张敬轩|2011交响音乐会
auEBzaeeyEji 海绵演唱会iso|张敬轩|2009音乐会
f2AjEjZVnqYv 海绵演唱会iso|张敬轩|2008演唱会
niu63iAjEzya 海绵演唱会iso|田馥甄|2017演唱会
YfI3MzvYBJ3u 海绵演唱会iso|2013宝丽金群星永恒金曲
BfUBNnRJN7fa 海绵演唱会iso|2012浮想联翩群星追忆张国荣演唱会
36BV7ruauiUf 海绵演唱会iso|周华健|2015世界巡回台北站
qE32yy2UJFja 海绵演唱会iso|温拿乐队|2016演唱会1
yMJvmuNVVFFf 海绵演唱会iso|温拿乐队|2016演唱会2
3IBjInVNz6ji 海绵演唱会iso|张信哲|2016还爱光年演唱会
naEn2qq6NzYz 海绵演唱会iso|谭咏麟&杜丽莎
ZJ3ue2Z3QbYr 海绵演唱会iso|邓紫棋|2013世界巡回演唱会
iu2uem2A3IFj 海绵演唱会iso|邓紫棋|红馆演唱会2011
IFBNVv7biU7z 海绵演唱会iso|李知恩|2019巡回演唱会1
U3YBzmInUfyy 海绵演唱会iso|李知恩|2019巡回演唱会2
zmMvmiMZj2Az 海绵演唱会iso|林俊杰|实验专辑-和自己对话录音纪实
mQzqIvbeUV7n 海绵演唱会iso|卫兰
UjUzmemM3aay 海绵演唱会iso|巫启贤
aEvMzeJVBBBr 海绵演唱会iso|林宥嘉|神游世界巡回演唱会
mamE7bZBFjuy 海绵演唱会iso|宝儿|2022出道20周年
e2Ajae6JriIz 海绵演唱会iso|宋祖英|台北小巨蛋
n63INvQbmqua 海绵演唱会iso|宋祖英|肯尼迪演唱会
IFjQJzBJNB7f 海绵演唱会iso|宋祖英|北京鸟巢演唱会
rMB3Y3jiUzyi 海绵演唱会iso|侧田|2011演唱会
QJziQnZRFzAf 海绵演唱会iso|侧田|2015世界巡回
mE3EFnIB3Iza 海绵演唱会iso|泳儿|2015音乐会
NZVraevMnABb 音乐MV合集

View File

@ -1 +0,0 @@
app\controllers\$$$noproxy$$$1$$$http:Controller控制器不存在

View File

@ -1,77 +0,0 @@
zAajGfX1cxE 中信出版图书 1
kgCYrLpLgiZ 机械工业出版社6000册 1
EmhjMiwBrNj 清华大学出版社2237册 1
3XEmnpcKYwd 新知文库 1
XpsFL9BcCbN 北京国家图书馆 1
BPkNEszAXjr 一万本图书馆PDF 1
STfm58hKPBu 湖湘文库 1
LZvTLPW8fbF 亲子教育
gfsRY67BRcb 历史传记
vbULbViB6jg 婚恋两性
nk24tt7C2nt 婚恋家庭
nk24tt7C2nt 婚恋家庭
LYHR2C7oGrN 官场商战
h3qDZvSNJaH 影视时尚
1Wq86hBek8P 心理励志
erF8fL1E9SR 思想文化
qzBiRPyuKCU 恐怖悬疑
5b6xedKYxDB 推理侦探
5Do3YzWGsdT 文学名著
h8nj4ZxEhTV 旅游休闲
W8uEmn2UEm4 武侠仙侠
C6FdSeriQAg 武侠小说
Q2Uyg5yXCTp 漫画绘本
4CP6kP21RE1 玄幻奇幻
AbmTF4S9R2u 玄幻小说
S2r9Q7dofdw 社科经典
Tkz17pPJ54n 科幻小说
ZCma3m8tkqu 综合书籍
PJc6BcfuRwn 美容养生
1vp4gtVqHVV 职场理财
TMXRKiUGzMe 青春校园
vEdkxEJocnb 科教类
AM8mtK1botT 平台类
NkKQg1a7qM9 小说类
1th3c74q1cu 漫画类
auNq9mXGJ8N 新书类
xPX311pWQP8 杂志类
43sAoXEduDZ 我的小书屋01
Rj2xnX7GLUW 我的小书屋02
XMbjpWzN4Jj 我的小书屋03
V69EqCbMHST 我的小书屋04
zpRyQG5Sykg 我的小书屋05
6TZTQve3haL 我的小书屋06
FsWBsXLDyMn 全球推理小说大集合 1
D9fe45j1eHa ePUBee整站电子书库01
ct8cPiYpscj ePUBee整站电子书库02
a9rZPQKHfDu ePUBee整站电子书库03
h45mCPUZc3E ePUBee整站电子书库04
bhDAK42pnSU ePUBee整站电子书库05
jdPrqXLaXBU ePUBee整站电子书库06
3exRgUFUPrv ePUBee整站电子书库07
AMY3umXHQrH ePUBee整站电子书库08
16ryTfdGrAP ePUBee整站电子书库09
5W8EsnTsCRN ePUBee整站电子书库10
D72AZeTnTVL ePUBee整站电子书库11
Z4SyuRZZj8Z ePUBee整站电子书库12
xMCNaJvx7tk ePUBee整站电子书库13
MK7LwGqokKF ePUBee整站电子书库14
p9Lnskk2e2L ePUBee整站电子书库15
pKEdszFRn2v ePUBee整站电子书库16
7fKJ3VC7yWg ePUBee整站电子书库17
QXMJVQzPJzG ePUBee整站电子书库18
eTbXLxV5HZ3 ePUBee整站电子书库19
wvdQyRer63P ePUBee整站电子书库20
LrLMDHopskR ePUBee整站电子书库21
jr4xL8NvHW9 ePUBee整站电子书库22
5tPVRsXdBk4 ePUBee整站电子书库23
iMBCRc32UNM ePUBee整站电子书库24
S8NodisNHcU ePUBee整站电子书库25
4TRTbyZrKki ePUBee整站电子书库26
iYZMj7CFPks 广东省立中山图书馆「A-G」
unEV8t3QfTc 广东省立中山图书馆「H-K」
uT7hzi7CnvP 广东省立中山图书馆「L-N」
U2fcieUVKuY 广东省立中山图书馆「O-Q」
h3s9tXNJxQK 广东省立中山图书馆「R-T」
SXZ17uS7oju 广东省立中山图书馆「U-X」
GwnQxogFss3 广东省立中山图书馆「Y-Z」

View File

@ -1,21 +0,0 @@
self 我的阿里云盘
cdqCsAWD9wC?pwd=6666 Tacit0924-总合集 1 updated_at DESC
ZHNChQfiPfk 杜比视界电影
e27BPgDwxeA 4KREMUX电影
XUH7r6BZuML 老K分享|电影1剧集1
qZ4f1i2EFW2 老K分享|电影2剧集2
ohJ68NV7iFw 老K分享|高清美剧10G一集
4ydLxf7VgH7 平凡中的 1
gf2GebXnZHh 诺兰全集 1
dieULBdYP3D YYDSVIP|YYDSVIP 1
UuHi9PeYSVz YYDSVIP|YYDSVip-综艺
v9To3HC6vhs YYDSVIP|YYDSVip-综合
uWa9gbM3RJ7 优源阁-资源总合集 1
ftMhRaKUfYp 掌灯者|港剧
MLWPRHRt9W3 掌灯者|台剧
8Fg4TNsd2A2 掌灯者|大陆剧1
ar8Kg9azw1S 掌灯者|大陆剧2
GMYSz3AHFaA 掌灯者|大陆剧3
cmy3KCTRpFA 合集|李连杰电影合集
hMsDJ6dsGxQ 合集|成龙电影合集
fSNHaYST47s 合集|纪录片合集2

View File

@ -1,15 +0,0 @@
https://www.alipan.com/s/self 我的阿里云盘
https://pan.quark.cn/s/self 我的夸克云盘
https://drive.uc.cn/s/self 我的UC云盘
https://115.com/s/self 我的115云盘
https://www.123pan.com/s/self 我的123云盘
https://cloud.189.cn/s/self 我的189云盘
https://pan.xunlei.com/s/self 我的迅雷云盘
https://mypikpak.com/s/self 我的PikPak云盘
https://docs.qq.com/sheet/DVXp5Q2dRTVRXb2VS?tab=ith4wt 阿里云资源每天更新
https://docs.qq.com/sheet/DVHpJVmRhT3ViV09Q?tab=ppx5bp 资源大全3
https://docs.qq.com/sheet/DVHpJVmRhT3ViV09Q?tab=qvnx1e 星火阿里云盘
https://docs.qq.com/sheet/DVXFYSURJRG9qbWJi?tab=BB08J2 短剧更新1
https://docs.qq.com/sheet/DVXFYSURJRG9qbWJi?tab=x5a2cy 短剧更新2
magnet:?xt=urn:btih:448aa6f77f1c1a14eb233b1f06b614a8d3193c51 绝命毒师1-5季 pushset1
magnet:?xt=urn:btih:6EF000064DC6402E00E65F3B2029226196CD55C1 权力的游戏第八季 pushset2

View File

@ -1,8 +0,0 @@
self 我的夸克网盘
885fd4ba2d92 每日短剧更新
432b5cd3a225 短剧162g
c54a8e47f82f 短剧114g
047991d5955e 经典剧集
ecdf7d6ffaaa 经典港剧合集1
187062318ebc 经典港剧合集2
9ebb62b93194 2023-2024跨年晚会合集

View File

@ -1,15 +0,0 @@
self 我的迅雷雲盤
VNg6eg34ncoRGHp98SBeYRUmA1?pwd=ywp2 刘德华高清电影电视剧全集
VNg6YRPKiFWtWRrEfTcmpo4nA1?pwd=3dk6 李连杰电影合集
VNg6af5Yu4IVpCplLZEXpTCHA1?pwd=e3tk 周星驰电影合集
VNg6ZDjEu4IVpCplLZEXovZMA1?pwd=i83r 成龙电影合集
VNg6aYN6S67q560x6uBmiTxGA1?pwd=vcff 金庸武侠作品电视剧版合集
VNgOl6jLwFWEAL3PSyCmyc9vA1?pwd=z3jn 邵氏电影合集中文字幕
VNfYsaHU3GXpR3Wc6X2vLDRXA1?pwd=k327 1962-2015[欧美][动作][007系列4K][24部][409GB]
VNgOliKdkJeHX8To1KuRhkabA1?pwd=8dfq 中国大陆老电影合集
VNgOnbo2VGbPDhR48Bgvh0GMA1?pwd=n59u TVB香港电视剧
VNgOkmDE9KxEdCnfuqBq-nh6A1?pwd=nr2b 豆瓣top电影合集
VNfGhoL9ptGD3gtENXxflDZ6A1?pwd=4a3t 5TB精选迅雷云盘资源
VNgOlIg5E5iq61_VnPABvO3BA1?pwd=bxix 港台大陆三级影片
VNg9Y19oPimZP2d2xRhFUkQ6A1?pwd=nr2c 中国电视剧合集
VNjwyIJVrUPzmOwSA07z6EP1A1?pwd=a84q 抖音短剧合集

View File

@ -1,13 +0,0 @@
self 我的UC网盘
10b31a7c5f844 资源分享
42e08284433b4?pwd=NZQb 影视ziyuan每日更新
c0503fdee6644 2024最新精整豆瓣TOP250部
391b86c09cd24 2023日剧
21f04a22052f4 2023韩剧
369e30038dae4 音乐
5e0c900955654 完美世界
d695231313ba4 沧元图-东宁府番外篇(2024)
db80b739256e4 诛仙2
cdbc974cf3c14 斗罗大陆2-绝世唐门4K
714a0d7f921b4 七夕之国-2024
9cca54e72e7e4 遮天4K

View File

@ -1,18 +1,17 @@
{
"spider": "./spider.jar",
"wallpaper": "https://t.alcy.cc/fj",
"sites": [
{
"key": "豆豆",
"name": "🌈豆瓣┃请测试完删除处理 由于公益资金压力米UC已经合并至至臻",
"name": "🌈豆瓣┃请测试完删除处理",
"type": 3,
"api": "csp_DoubanGuard",
"searchable": 0
},
{
"key": "config",
"name": "⚙云盘┃配置中心 0414修复UC 存在起播慢的问题 ",
"name": "⚙云盘┃配置中心 0419大幅度优化 ",
"type": 3,
"api": "csp_ConfigGuard",
"searchable": 0
@ -30,15 +29,15 @@
"https://mihdr.top",
"https://www.mihdr.top",
"http://www.miqk.cc",
"https://www.zhizhenpan.fun/"
"https://www.zhizhenpan.fun"
],
"url_key": "Netfixtv",
"token": "",
"ucCookie": "",
"quarkCookie": "",
"threadinfo": {
"chunksize": 400,
"threads": 12
"chunksize": 512,
"threads": 16
}
}
},
@ -50,7 +49,7 @@
"changeable": "0",
"quickSearch": 1,
"filterable": 1,
"ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg9L+drzR5a6bo7DML9hTEHvIuMN0JxvcbUflFgvOz4etZ9cUsZ0b7NskUhkBZr0Id8jSF6uh2VLWSCg2CtmH5o1TtTNh7M3/ltwQq//Spr2kX7vyJVyHNYbVu/LbyQCphXA69Yz8WjqVrK0GsjL+Ik3h6CQSeUSxVsmsygbTWfjFq5Wq6CYigSEVi1MJIiKNCS5cp8Ghq15UINDOnFKRERcz89eu5dSsR9aQX6BVNMdZLwSzxdX+4hT32MaBORYsrm3FFWArSTQdgO0XpnwCxoXyrlOZZA6ewEqkwuIgoDjFOeQEB0B1XkA9COGXhBBN/U253mGVMtzwHTCzpHTSk5MFVpkfjoyaDWZG1SEKMnp7afikfGkM3rn+Vw7Rp3VaPow/4r9kBYdtOiANxRr3/xPWxJdwx8M3BYw8xIlENODkJxzIlYel5FzLMKsR7ZrsZA="
"ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg9L+drzR5a6bo7DML9hTEHvIuMN0JxvcbUflFgvOz4etZ9cUsZ0b7NskUhkBZr0Id9PbDIgsZ9ekl9fNeS9q4Xipo9oU6Q5Q6atElwpmoHUGKPqBr5XvHEJiNqliypf3Ch+p8IfjaEUxnG3XYlNxjw3ciN36BLBmKbludBzyfsiGmglc5Hdmw/3KJo9M6OCUspScOAuOhnQIPCiP6a6PFuOOxS+7z5Z/FV0k3Ee9fQIVuwE7nNgRUFWRinsDSuhPjKBd/SrLfu0rxSNOfsukdYXkcvGadhMos8qXcpGJVZVLXOfgqfJkyrlbFa8XJWQ9m9bDjfSOZbHqtC5kNkxfArWP9v2MC2jUcC4cEXk8ANYyYBMcAfo/zIpXdTsEBNC3nyXfAz+PVcPD00bRb2eSgBaNi7EShnmcFJ07jecOaWoCcXiVUOJ6GEJa9G11HhGW4g="
},
{
"key": "csp_Bili",
@ -248,8 +247,7 @@
"type": 3,
"quickSearch": 1,
"changeable": "0",
"api": "csp_XiaoYiGuard",
"ext": ""
"api": "csp_MiSouGuard"
},
{
"key": "听书",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -31,7 +31,7 @@
"quickSearch": 0,
"style": {
"type": "rect",
"ratio": 1.610
"ratio": 1.61
}
},
{
@ -81,7 +81,7 @@
},
{
"key": "UcXmV2",
"name": "🍚小米资源┃4K弹幕",
"name": "🐂小二资源┃4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"jar": "./jars/config.jar",
@ -89,7 +89,7 @@
"filterable": 0,
"changeable": 0,
"timeout": 60,
"ext": "./json/xm.json?"
"ext": "./json/ex.json?"
},
{
"key": "QuarkLaBiV2",
@ -171,7 +171,7 @@
"key": "pan1",
"name": "🧊Pan1网盘┃4K弹幕",
"type": 3,
"api": "csp_PanWebShareCloudHM",
"api": "csp_PanWebShareCloud123",
"jar": "./jars/config.jar",
"searchable": 1,
"filterable": 0,
@ -212,9 +212,30 @@
{
"key": "金牌影视",
"name": "🏅金牌┃蓝光┃无广",
"type": 3,
"api": "./api/金牌影视.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2,
"ext": {
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
}
},
{
"key": "菲儿影视",
"name": "🥪菲菲┃蓝光┃无广",
"jar": "./jars/config.jar",
"type": 3,
"api": "csp_Jpys"
"api": "csp_AppFerr",
"ext": "sHR2rlsfjI4L3t4RXQMkn/M3t4AXAKTrZj3tfhm1t/gMT3dOrHqIzUNqLUEOIDMvllTbX6e1hMhB2mfpOaCmHNOL1yBB3SmxNyqXlai90EIpdnwOOgCR9Z+YwCTj6ySjzJ2VBiH3eXeOGcavcNeVRA=="
},
{
"key": "4Kdy",
"name": "🕊️凝安┃蓝光┃无广",
"type": 3,
"api": "csp_XBPQ",
"ext": "http://我不是.摸鱼儿.xyz/api/moyu.php?file=4kdy"
},
{
"key": "nk",
@ -398,12 +419,11 @@
"name": "📔厂长┃不卡┃纯净",
"type": 3,
"api": "csp_NewCzGuard",
"timeout": 15,
"timeout": 10,
"playerType": 2,
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"ext": "https://www.czzyvideo.com/"
"changeable": 1
},
{
"key": "原创",
@ -638,15 +658,26 @@
"filterable": 0
},
{
"key": "hmdj",
"key": "河马短剧",
"name": "🦛河马┃短剧┃热推",
"type": 3,
"api": "csp_AppHMDJ",
"jar": "./jars/config.jar",
"api": "./api/河马短剧.py",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw53Dr8KUwp7CmsKlw63Dp8Kow63DsFpcUFfDrcOcw6rCoMK0U1fCi+WGtemFoeaQmOWRncKl5Yem5L2K5ZCnauW+oeiov+i2t+a8iuetksOXWlxQV8Odw5jDncOrw7PCo8Kke8KVw7LCmsK0wpnCocKqwqXCqcKZwq/CqcKwwqDDtw=="
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{
"key": "偷乐短剧",
"name": "🤣偷乐┃短剧┃热推",
"type": 3,
"api": "./api/偷乐短剧.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{
"key": "去看吧",
@ -690,67 +721,51 @@
"ext": "w7TCmsK/w7HDrsKIwqLCnFfCs8KTwqHDocOuwqfCoGpfwqjCp8KxwqfCs2ZeYmHCrsKhwqvCrsKrYsKjwqPCpsOiw6PCqcOjw63CosKeX8Kow6LDmsOvw5rDkGVewprCo8Oow6HCocKlwppawqTCmcKgwqDCrcKawqDDleWGuOmEmOaPleWQk8Kl5Yef5L6R5ZGwwrTlvqTop7botbTmu4DnrZLDkMKhwqXCmlrClMKVwpPDq8Osw6rDrcOFwpjCqVdqwpnCmsOxw67Ds8KcZmZmwqDDsA=="
},
{
"key": "bili",
"name": "🩷哔哩┃娱乐┃蓝光",
"type": 3,
"api": "csp_AmuBiliV2",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"changeable": 0,
"style": {
"type": "rect",
"ratio": 1.433
},
"ext": "./json/bili.json?"
},
{
"key": "huya",
"key": "虎牙直播js",
"name": "🐯虎牙┃娱乐┃蓝光",
"type": 3,
"api": "csp_AmuHuYa",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"changeable": 0,
"api": "./api/drpy2.js",
"ext": "./js/huya2.js",
"style": {
"type": "rect",
"ratio": 1.433
"ratio": 1.755
},
"ext": "w7TCmsOfw7HDrlpqUFfDocOnw67DqcK0Yl9kZ8KnwqzCrcKnwqxkZV5hwq7CpMKpw6zDrcKpwpnCoF/Do8Omw6nDp8KpwpvCpcKpwpHCp8Odw63DqMOoWlxQV8K9w6LDp8Oaw6PCocKjV2rCmcOOwqHDocOuwqfCoMKjasKowqLDpsOew6fCosKewpzCmcOvw5jCqMOdw5/CocKfXsKUw57DqcKhwqXCmlrCmMKkwqTDqcOmwrTCqMKpwp/ClcKdwp/Dp8Ofw6PDr8OfaWZewpTDnsOhw6nCp8OewpjCpldcwpnCmsOiw63DrsKjwqNqX8Kow5/Dn8Omw6nCocKcwpnCpsOewqHDqsOaw6HCmMKjXsKUw57DqcKhw5bCplNXwpTClcOcw6XDs8Opw65+wpXCqVfCs8KTwqHDsMOvwqzCmWZmwq/CmsO3"
"timeout": 10,
"playerType": "2",
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "douyu",
"key": "斗鱼js",
"name": "🐟斗鱼┃娱乐┃蓝光",
"type": 3,
"api": "csp_AmuDouYu",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"changeable": 0,
"api": "./api/drpy2.min.js",
"ext": "./js/斗鱼直播.js",
"style": {
"type": "rect",
"ratio": 1.433
"ratio": 1.755
},
"ext": "w7TCmsOfw7HDrlpqUFfDocOnw67DqcK0Yl9kZ8KnwqzCrcKnwqxkZV5hwq7CpMKpw6zDrcKpwpnCoF/Do8Omw6nDp8KpwpfCn8KlwqnDrsKhw6TDrMOpwqFXXFDCoMK3w6nDpsObwpzCnsKjV8KzwpPDlcKgw6LCp8KkwqDCo8KzwqLCqcOlw5/CoMKfwp7CnMOiw6nDn8Knw57CmMKewp9ew53DmMOwwqDCplNXwpjCpMOtw6PDrcKzwqliwpzClcKdw6jDocOmw6LDsMKYZmZew53DmMOow6jCqMKXwpXCplfCpcKTwqHDocOuwqfCoMKjasKowqLDpsOew6fCosKewpzCmcOvw5jCqMOpw5vCmsKVwqNew53DmMOwwqDDl19QV8KUw57DlsOsw7LDqsKne8KVwqnCoMKtwprCoMOxwqjCqcKZZsKvwqnCocO2"
"timeout": 10,
"playerType": "2",
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "ly",
"key": "有声小说js",
"name": "📻️戏曲┃娱乐┃蓝光",
"type": 3,
"api": "csp_AppLY",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"api": "./api/drpy2.min.js",
"ext": "./js/有声小说吧.js",
"style": {
"type": "rect",
"ratio": 1.433
"ratio": 1
},
"ext": "w7TCmsOuw6LDqlpqUFfDlOWHuOmFouaQnuWRnV/lhpzkvYflkKfCs+W/pOipgOi2vea8iuesjMKNV1zCmcKaw57DnsOdwqXCqcKgwqTDhMOYw7PCoMK0U1fCp8Klw7LDnMKwwq/CsFrCrQ=="
"timeout": 10,
"searchable": 0,
"quickSearch": 0,
"changeable": 0
},
{
"key": "Bili",

View File

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

1
摸鱼儿/api/drpy2.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,790 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 偷乐短剧爬虫
import sys
import json
import re
import time
import urllib.parse
import requests
from bs4 import BeautifulSoup
# 导入基础类
sys.path.append('../../')
try:
from base.spider import Spider
except ImportError:
# 本地调试时的替代实现
class Spider:
def init(self, extend=""):
pass
class Spider(Spider):
def __init__(self):
# 网站主URL
self.siteUrl = "https://www.toule.top"
# 根据网站实际结构,分类链接格式为: /index.php/vod/show/class/分类名/id/1.html
# 分类ID映射 - 从网站中提取的分类
self.cateManual = {
"男频": "/index.php/vod/show/class/%E7%94%B7%E9%A2%91/id/1.html",
"女频": "/index.php/vod/show/class/%E5%A5%B3%E9%A2%91/id/1.html",
"都市": "/index.php/vod/show/class/%E9%83%BD%E5%B8%82/id/1.html",
"赘婿": "/index.php/vod/show/class/%E8%B5%98%E5%A9%BF/id/1.html",
"战神": "/index.php/vod/show/class/%E6%88%98%E7%A5%9E/id/1.html",
"古代言情": "/index.php/vod/show/class/%E5%8F%A4%E4%BB%A3%E8%A8%80%E6%83%85/id/1.html",
"现代言情": "/index.php/vod/show/class/%E7%8E%B0%E4%BB%A3%E8%A8%80%E6%83%85/id/1.html",
"历史": "/index.php/vod/show/class/%E5%8E%86%E5%8F%B2/id/1.html",
"玄幻": "/index.php/vod/show/class/%E7%8E%84%E5%B9%BB/id/1.html",
"搞笑": "/index.php/vod/show/class/%E6%90%9E%E7%AC%91/id/1.html",
"甜宠": "/index.php/vod/show/class/%E7%94%9C%E5%AE%A0/id/1.html",
"励志": "/index.php/vod/show/class/%E5%8A%B1%E5%BF%97/id/1.html",
"逆袭": "/index.php/vod/show/class/%E9%80%86%E8%A2%AD/id/1.html",
"穿越": "/index.php/vod/show/class/%E7%A9%BF%E8%B6%8A/id/1.html",
"古装": "/index.php/vod/show/class/%E5%8F%A4%E8%A3%85/id/1.html"
}
# 请求头
self.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
"Referer": "https://www.toule.top/",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
}
# 缓存
self.cache = {}
self.cache_timeout = {}
def getName(self):
return "偷乐短剧"
def init(self, extend=""):
# 初始化方法,可以留空
return
def isVideoFormat(self, url):
"""判断是否为视频格式"""
video_formats = ['.mp4', '.m3u8', '.ts', '.flv', '.avi', '.mkv', '.mov', '.rmvb', '.3gp']
for format in video_formats:
if format in url.lower():
return True
return False
def manualVideoCheck(self):
"""是否需要手动检查视频"""
return False
# 工具方法 - 网络请求
def fetch(self, url, headers=None, data=None, method="GET"):
"""统一的网络请求方法"""
try:
if headers is None:
headers = self.headers.copy()
if method.upper() == "GET":
response = requests.get(url, headers=headers, params=data, timeout=10,verify=False)
else: # POST
response = requests.post(url, headers=headers, data=data, timeout=10,verify=False)
response.raise_for_status()
response.encoding = response.apparent_encoding or 'utf-8'
return response
except Exception as e:
self.log(f"请求失败: {url}, 错误: {str(e)}", "ERROR")
return None
# 缓存方法
def getCache(self, key, timeout=3600):
"""获取缓存数据"""
if key in self.cache and key in self.cache_timeout:
if time.time() < self.cache_timeout[key]:
return self.cache[key]
else:
del self.cache[key]
del self.cache_timeout[key]
return None
def setCache(self, key, value, timeout=3600):
"""设置缓存数据"""
self.cache[key] = value
self.cache_timeout[key] = time.time() + timeout
# 日志方法
def log(self, msg, level='INFO'):
"""记录日志"""
levels = {
'DEBUG': 0,
'INFO': 1,
'WARNING': 2,
'ERROR': 3
}
current_level = 'INFO' # 可以设置为DEBUG以获取更多信息
if levels.get(level, 4) >= levels.get(current_level, 1):
print(f"[{level}] {time.strftime('%Y-%m-%d %H:%M:%S')} - {msg}")
# 辅助方法 - 从URL中提取视频ID
def extractVodId(self, url):
"""从URL中提取视频ID"""
# 路径格式: /index.php/vod/play/id/9024/sid/1/nid/1.html
match = re.search(r'/id/(\d+)/', url)
if match:
return match.group(1)
return ""
# 辅助方法 - 从网页内容中提取分类
def extractCategories(self, text):
"""从网页内容中提取分类标签"""
cats = []
# 匹配标签字符串,例如: "男频,逆袭,亲情,短剧"
if "," in text:
parts = text.split(",")
for part in parts:
part = part.strip()
if part and part != "短剧":
cats.append(part)
return cats
# 主要接口实现
def homeContent(self, filter):
"""获取首页分类及内容"""
result = {}
classes = []
# 从缓存获取
cache_key = 'home_classes'
cached_classes = self.getCache(cache_key)
if cached_classes:
classes = cached_classes
else:
# 使用预定义的分类
for k, v in self.cateManual.items():
classes.append({
'type_id': v, # 使用完整URL路径作为type_id
'type_name': k
})
# 保存到缓存
self.setCache(cache_key, classes, 24*3600) # 缓存24小时
result['class'] = classes
# 获取首页推荐视频
videos = self.homeVideoContent().get('list', [])
result['list'] = videos
return result
def homeVideoContent(self):
"""获取首页推荐视频内容"""
result = {'list': []}
videos = []
# 从缓存获取
cache_key = 'home_videos'
cached_videos = self.getCache(cache_key)
if cached_videos:
return {'list': cached_videos}
try:
response = self.fetch(self.siteUrl)
if response and response.status_code == 200:
html = response.text
soup = BeautifulSoup(html, 'html.parser')
# 查找最新更新区域
latest_section = soup.find('h2', text=lambda t: t and '最新更新' in t)
if latest_section:
container = latest_section.parent # 获取容器
if container:
# 查找所有 li.item 元素
items = container.find_all('li', class_='item')
for item in items:
try:
# 获取链接和标题
title_link = item.find('h3')
if not title_link:
continue
title = title_link.text.strip()
# 获取第一个链接作为详情页链接
link_tag = item.find('a')
if not link_tag:
continue
link = link_tag.get('href', '')
if not link.startswith('http'):
link = urllib.parse.urljoin(self.siteUrl, link)
# 提取ID
vid = self.extractVodId(link)
if not vid:
continue
# 获取图片
img_tag = item.find('img')
img_url = ""
if img_tag:
img_url = img_tag.get('src', img_tag.get('data-src', ''))
if img_url and not img_url.startswith('http'):
img_url = urllib.parse.urljoin(self.siteUrl, img_url)
# 获取备注信息
remarks = ""
remarks_tag = item.find('span', class_='remarks')
if remarks_tag:
remarks = remarks_tag.text.strip()
# 获取标签信息
tags = ""
tags_tag = item.find('span', class_='tags')
if tags_tag:
tags = tags_tag.text.strip()
# 合并备注和标签
if remarks and tags:
remarks = f"{remarks} | {tags}"
elif tags:
remarks = tags
# 构建视频项
videos.append({
'vod_id': vid,
'vod_name': title,
'vod_pic': img_url,
'vod_remarks': remarks
})
except Exception as e:
self.log(f"处理视频项时出错: {str(e)}", "ERROR")
continue
# 保存到缓存
self.setCache(cache_key, videos, 3600) # 缓存1小时
except Exception as e:
self.log(f"获取首页视频内容发生错误: {str(e)}", "ERROR")
result['list'] = videos
return result
def categoryContent(self, tid, pg, filter, extend):
"""获取分类内容"""
result = {}
videos = []
# 处理页码
if pg is None:
pg = 1
else:
pg = int(pg)
# 构建分类URL - tid是完整的URL路径
if tid.startswith("/"):
# 替换页码URL格式可能像: /index.php/vod/show/class/男频/id/1.html
if pg > 1:
if "html" in tid:
category_url = tid.replace(".html", f"/page/{pg}.html")
else:
category_url = f"{tid}/page/{pg}.html"
else:
category_url = tid
full_url = urllib.parse.urljoin(self.siteUrl, category_url)
else:
# 如果tid不是URL路径可能是旧版分类ID尝试查找对应URL
category_url = ""
for name, url in self.cateManual.items():
if name == tid:
category_url = url
break
if not category_url:
self.log(f"未找到分类ID对应的URL: {tid}", "ERROR")
result['list'] = []
result['page'] = pg
result['pagecount'] = 1
result['limit'] = 0
result['total'] = 0
return result
# 处理页码
if pg > 1:
if "html" in category_url:
category_url = category_url.replace(".html", f"/page/{pg}.html")
else:
category_url = f"{category_url}/page/{pg}.html"
full_url = urllib.parse.urljoin(self.siteUrl, category_url)
# 请求分类页
try:
response = self.fetch(full_url)
if response and response.status_code == 200:
html = response.text
soup = BeautifulSoup(html, 'html.parser')
# 查找视频项根据实际HTML结构调整
items = soup.find_all('li', class_='item')
for item in items:
try:
# 获取链接和标题
title_tag = item.find('h3')
if not title_tag:
continue
title = title_tag.text.strip()
# 获取链接
link_tag = item.find('a')
if not link_tag:
continue
link = link_tag.get('href', '')
if not link.startswith('http'):
link = urllib.parse.urljoin(self.siteUrl, link)
# 提取ID
vid = self.extractVodId(link)
if not vid:
continue
# 获取图片
img_tag = item.find('img')
img_url = ""
if img_tag:
img_url = img_tag.get('src', img_tag.get('data-src', ''))
if img_url and not img_url.startswith('http'):
img_url = urllib.parse.urljoin(self.siteUrl, img_url)
# 获取备注信息
remarks = ""
remarks_tag = item.find('span', class_='remarks')
if remarks_tag:
remarks = remarks_tag.text.strip()
# 获取标签信息
tags = ""
tags_tag = item.find('span', class_='tags')
if tags_tag:
tags = tags_tag.text.strip()
# 合并备注和标签
if remarks and tags:
remarks = f"{remarks} | {tags}"
elif tags:
remarks = tags
# 构建视频项
videos.append({
'vod_id': vid,
'vod_name': title,
'vod_pic': img_url,
'vod_remarks': remarks
})
except Exception as e:
self.log(f"处理分类视频项时出错: {str(e)}", "ERROR")
continue
# 查找分页信息
# 默认值
total = len(videos)
pagecount = 1
limit = 20
# 尝试查找分页元素
pagination = soup.find('ul', class_='page')
if pagination:
# 查找最后一页的链接
last_page_links = pagination.find_all('a')
for link in last_page_links:
page_text = link.text.strip()
if page_text.isdigit():
pagecount = max(pagecount, int(page_text))
except Exception as e:
self.log(f"获取分类内容发生错误: {str(e)}", "ERROR")
result['list'] = videos
result['page'] = pg
result['pagecount'] = pagecount
result['limit'] = limit
result['total'] = total
return result
def detailContent(self, ids):
"""获取详情内容"""
result = {}
if not ids or len(ids) == 0:
return result
# 视频ID
vid = ids[0]
# 构建播放页URL
play_url = f"{self.siteUrl}/index.php/vod/play/id/{vid}/sid/1/nid/1.html"
try:
response = self.fetch(play_url)
if not response or response.status_code != 200:
return result
html = response.text
soup = BeautifulSoup(html, 'html.parser')
# 提取视频基本信息
# 标题
title = ""
title_tag = soup.find('h1', class_='items-title')
if title_tag:
title = title_tag.text.strip()
# 图片
pic = ""
pic_tag = soup.find('img', class_='thumb')
if pic_tag:
pic = pic_tag.get('src', '')
if pic and not pic.startswith('http'):
pic = urllib.parse.urljoin(self.siteUrl, pic)
# 简介
desc = ""
desc_tag = soup.find('div', class_='text-content')
if desc_tag:
desc = desc_tag.text.strip()
# 标签/分类
tags = []
tags_container = soup.find('span', class_='items-tags')
if tags_container:
tag_links = tags_container.find_all('a')
for tag in tag_links:
tag_text = tag.text.strip()
if tag_text:
tags.append(tag_text)
# 提取播放列表
play_from = "偷乐短剧"
play_list = []
# 查找播放列表区域
play_area = soup.find('div', class_='swiper-wrapper')
if play_area:
# 查找所有剧集链接
episode_links = play_area.find_all('a')
for ep in episode_links:
ep_title = ep.text.strip()
ep_url = ep.get('href', '')
if ep_url:
# 直接使用URL作为ID
if not ep_url.startswith('http'):
ep_url = urllib.parse.urljoin(self.siteUrl, ep_url)
# 提取集数信息
ep_num = ep_title
if ep_num.isdigit():
ep_num = f"{ep_num}"
play_list.append(f"{ep_num}${ep_url}")
# 如果没有找到播放列表,查找播放按钮
if not play_list:
play_btn = soup.find('a', class_='btn-play')
if play_btn:
play_url = play_btn.get('href', '')
if play_url:
if not play_url.startswith('http'):
play_url = urllib.parse.urljoin(self.siteUrl, play_url)
play_list.append(f"播放${play_url}")
# 如果仍然没有找到播放链接使用播放页URL
if not play_list:
play_url = f"{self.siteUrl}/index.php/vod/play/id/{vid}/sid/1/nid/1.html"
play_list.append(f"播放${play_url}")
# 提取更多信息(导演、演员等)
director = ""
actor = ""
year = ""
area = ""
remarks = ""
# 查找备注信息
meta_items = soup.find_all('div', class_='meta-item')
for item in meta_items:
item_title = item.find('span', class_='item-title')
item_content = item.find('span', class_='item-content')
if item_title and item_content:
title_text = item_title.text.strip()
content_text = item_content.text.strip()
if "导演" in title_text:
director = content_text
elif "主演" in title_text:
actor = content_text
elif "年份" in title_text:
year = content_text
elif "地区" in title_text:
area = content_text
elif "简介" in title_text:
if not desc:
desc = content_text
elif "状态" in title_text:
remarks = content_text
# 如果没有从meta-item中获取到remarks
if not remarks:
remarks_tag = soup.find('span', class_='remarks')
if remarks_tag:
remarks = remarks_tag.text.strip()
# 构建标准数据结构
vod = {
"vod_id": vid,
"vod_name": title,
"vod_pic": pic,
"vod_year": year,
"vod_area": area,
"vod_remarks": remarks,
"vod_actor": actor,
"vod_director": director,
"vod_content": desc,
"type_name": ",".join(tags),
"vod_play_from": play_from,
"vod_play_url": "#".join(play_list)
}
result = {
'list': [vod]
}
except Exception as e:
self.log(f"获取详情内容时出错: {str(e)}", "ERROR")
return result
def searchContent(self, key, quick, pg=1):
"""搜索功能"""
result = {}
videos = []
# 构建搜索URL和参数
search_url = f"{self.siteUrl}/index.php/vod/search.html"
params = {"wd": key}
try:
response = self.fetch(search_url, data=params)
if response and response.status_code == 200:
html = response.text
soup = BeautifulSoup(html, 'html.parser')
# 查找搜索结果项
search_items = soup.find_all('li', class_='item')
for item in search_items:
try:
# 获取标题
title_tag = item.find('h3')
if not title_tag:
continue
title = title_tag.text.strip()
# 获取链接
link_tag = item.find('a')
if not link_tag:
continue
link = link_tag.get('href', '')
if not link.startswith('http'):
link = urllib.parse.urljoin(self.siteUrl, link)
# 提取视频ID
vid = self.extractVodId(link)
if not vid:
continue
# 获取图片
img_tag = item.find('img')
img_url = ""
if img_tag:
img_url = img_tag.get('src', img_tag.get('data-src', ''))
if img_url and not img_url.startswith('http'):
img_url = urllib.parse.urljoin(self.siteUrl, img_url)
# 获取备注信息
remarks = ""
remarks_tag = item.find('span', class_='remarks')
if remarks_tag:
remarks = remarks_tag.text.strip()
# 获取标签信息
tags = ""
tags_tag = item.find('span', class_='tags')
if tags_tag:
tags = tags_tag.text.strip()
# 合并备注和标签
if remarks and tags:
remarks = f"{remarks} | {tags}"
elif tags:
remarks = tags
# 构建视频项
videos.append({
'vod_id': vid,
'vod_name': title,
'vod_pic': img_url,
'vod_remarks': remarks
})
except Exception as e:
self.log(f"处理搜索结果时出错: {str(e)}", "ERROR")
continue
except Exception as e:
self.log(f"搜索功能发生错误: {str(e)}", "ERROR")
result['list'] = videos
return result
def searchContentPage(self, key, quick, pg=1):
return self.searchContent(key, quick, pg)
def playerContent(self, flag, id, vipFlags):
"""获取播放内容"""
result = {}
try:
# 判断是否已经是视频URL
if self.isVideoFormat(id):
result["parse"] = 0
result["url"] = id
result["playUrl"] = ""
result["header"] = json.dumps(self.headers)
return result
# 判断是否是完整的页面URL
if id.startswith(('http://', 'https://')):
play_url = id
# 尝试作为相对路径处理
elif id.startswith('/'):
play_url = urllib.parse.urljoin(self.siteUrl, id)
# 假设是视频ID构建播放页面URL
else:
# 检查是否是"视频ID_集数"格式
parts = id.split('_')
if len(parts) > 1 and parts[0].isdigit():
vid = parts[0]
nid = parts[1]
play_url = f"{self.siteUrl}/index.php/vod/play/id/{vid}/sid/1/nid/{nid}.html"
else:
# 直接当作视频ID处理
play_url = f"{self.siteUrl}/index.php/vod/play/id/{id}/sid/1/nid/1.html"
# 访问播放页获取真实播放地址
try:
self.log(f"正在解析播放页面: {play_url}")
response = self.fetch(play_url)
if response and response.status_code == 200:
html = response.text
# 查找player_aaaa变量
player_match = re.search(r'var\s+player_aaaa\s*=\s*({.*?});', html, re.DOTALL)
if player_match:
try:
player_data = json.loads(player_match.group(1))
if 'url' in player_data:
video_url = player_data['url']
if not video_url.startswith('http'):
video_url = urllib.parse.urljoin(self.siteUrl, video_url)
self.log(f"从player_aaaa获取到视频地址: {video_url}")
result["parse"] = 0
result["url"] = video_url
result["playUrl"] = ""
result["header"] = json.dumps(self.headers)
return result
except json.JSONDecodeError as e:
self.log(f"解析player_aaaa JSON出错: {str(e)}", "ERROR")
# 如果player_aaaa解析失败尝试其他方式
# 1. 查找video标签
video_match = re.search(r'<video[^>]*src=["\'](.*?)["\']', html)
if video_match:
video_url = video_match.group(1)
if not video_url.startswith('http'):
video_url = urllib.parse.urljoin(self.siteUrl, video_url)
self.log(f"从video标签找到视频地址: {video_url}")
result["parse"] = 0
result["url"] = video_url
result["playUrl"] = ""
result["header"] = json.dumps(self.headers)
return result
# 2. 查找iframe
iframe_match = re.search(r'<iframe[^>]*src=["\'](.*?)["\']', html)
if iframe_match:
iframe_url = iframe_match.group(1)
if not iframe_url.startswith('http'):
iframe_url = urllib.parse.urljoin(self.siteUrl, iframe_url)
self.log(f"找到iframe正在解析: {iframe_url}")
# 访问iframe内容
iframe_response = self.fetch(iframe_url)
if iframe_response and iframe_response.status_code == 200:
iframe_html = iframe_response.text
# 在iframe内容中查找视频地址
iframe_video_match = re.search(r'(https?://[^\'"]+\.(mp4|m3u8|ts))', iframe_html)
if iframe_video_match:
video_url = iframe_video_match.group(1)
self.log(f"从iframe中找到视频地址: {video_url}")
result["parse"] = 0
result["url"] = video_url
result["playUrl"] = ""
result["header"] = json.dumps({
"User-Agent": self.headers["User-Agent"],
"Referer": iframe_url
})
return result
# 3. 查找任何可能的视频URL
url_match = re.search(r'(https?://[^\'"]+\.(mp4|m3u8|ts))', html)
if url_match:
video_url = url_match.group(1)
self.log(f"找到可能的视频地址: {video_url}")
result["parse"] = 0
result["url"] = video_url
result["playUrl"] = ""
result["header"] = json.dumps(self.headers)
return result
except Exception as e:
self.log(f"解析播放地址时出错: {str(e)}", "ERROR")
# 如果所有方式都失败,返回外部解析标志
self.log("未找到直接可用的视频地址,需要外部解析", "WARNING")
result["parse"] = 1 # 表示需要外部解析
result["url"] = play_url # 返回播放页面URL
result["playUrl"] = ""
result["header"] = json.dumps(self.headers)
except Exception as e:
self.log(f"获取播放内容时出错: {str(e)}", "ERROR")
return result
def localProxy(self, param):
"""本地代理"""
return [404, "text/plain", {}, "Not Found"]

View File

@ -0,0 +1,581 @@
# -*- coding: utf-8 -*-
import requests
import re
import json
import traceback
import sys
sys.path.append('../../')
try:
from base.spider import Spider
except ImportError:
# 定义一个基础接口类,用于本地测试
class Spider:
def init(self, extend=""):
pass
class Spider(Spider):
def __init__(self):
self.siteUrl = "https://www.kuaikaw.cn"
self.nextData = None # 缓存NEXT_DATA数据
self.cateManual = {
"甜宠": "462",
"古装仙侠": "1102",
"现代言情": "1145",
"青春": "1170",
"豪门恩怨": "585",
"逆袭": "417-464",
"重生": "439-465",
"系统": "1159",
"总裁": "1147",
"职场商战": "943"
}
def getName(self):
# 返回爬虫名称
return "河马短剧"
def init(self, extend=""):
return
def fetch(self, url, headers=None):
"""统一的网络请求接口"""
if headers is None:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
"Referer": self.siteUrl,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
try:
response = requests.get(url, headers=headers, timeout=10, allow_redirects=True)
response.raise_for_status()
return response
except Exception as e:
print(f"请求异常: {url}, 错误: {str(e)}")
return None
def isVideoFormat(self, url):
# 检查是否为视频格式
video_formats = ['.mp4', '.mkv', '.avi', '.wmv', '.m3u8', '.flv', '.rmvb']
for format in video_formats:
if format in url.lower():
return True
return False
def manualVideoCheck(self):
# 不需要手动检查
return False
def homeContent(self, filter):
"""获取首页分类及筛选"""
result = {}
# 分类列表使用已初始化的cateManual
classes = []
for k in self.cateManual:
classes.append({
'type_name': k,
'type_id': self.cateManual[k]
})
result['class'] = classes
# 获取首页推荐视频
try:
result['list'] = self.homeVideoContent()['list']
except:
result['list'] = []
return result
def homeVideoContent(self):
"""获取首页推荐视频内容"""
videos = []
try:
response = self.fetch(self.siteUrl)
html_content = response.text
# 提取NEXT_DATA JSON数据
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
if next_data_match:
next_data_json = json.loads(next_data_match.group(1))
page_props = next_data_json.get("props", {}).get("pageProps", {})
# 获取轮播图数据 - 这些通常是推荐内容
if "bannerList" in page_props and isinstance(page_props["bannerList"], list):
banner_list = page_props["bannerList"]
for banner in banner_list:
book_id = banner.get("bookId", "")
book_name = banner.get("bookName", "")
cover_url = banner.get("coverWap", banner.get("wapUrl", ""))
# 获取状态和章节数
status = banner.get("statusDesc", "")
total_chapters = banner.get("totalChapterNum", "")
if book_id and book_name:
videos.append({
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status} {total_chapters}" if total_chapters else status
})
# SEO分类下的推荐
if "seoColumnVos" in page_props and isinstance(page_props["seoColumnVos"], list):
for column in page_props["seoColumnVos"]:
book_infos = column.get("bookInfos", [])
for book in book_infos:
book_id = book.get("bookId", "")
book_name = book.get("bookName", "")
cover_url = book.get("coverWap", "")
status = book.get("statusDesc", "")
total_chapters = book.get("totalChapterNum", "")
if book_id and book_name:
videos.append({
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status} {total_chapters}" if total_chapters else status
})
# # 去重
# seen = set()
# unique_videos = []
# for video in videos:
# if video["vod_id"] not in seen:
# seen.add(video["vod_id"])
# unique_videos.append(video)
# videos = unique_videos
except Exception as e:
print(f"获取首页推荐内容出错: {e}")
result = {
"list": videos
}
return result
def categoryContent(self, tid, pg, filter, extend):
"""获取分类内容"""
result = {}
videos = []
url = f"{self.siteUrl}/browse/{tid}/{pg}"
response = self.fetch(url)
html_content = response.text
# 提取NEXT_DATA JSON数据
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
if next_data_match:
next_data_json = json.loads(next_data_match.group(1))
page_props = next_data_json.get("props", {}).get("pageProps", {})
# 获取总页数和当前页
current_page = page_props.get("page", 1)
total_pages = page_props.get("pages", 1)
# 获取书籍列表
book_list = page_props.get("bookList", [])
# 转换为通用格式
for book in book_list:
book_id = book.get("bookId", "")
book_name = book.get("bookName", "")
cover_url = book.get("coverWap", "")
status_desc = book.get("statusDesc", "")
total_chapters = book.get("totalChapterNum", "")
if book_id and book_name:
videos.append({
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status_desc} {total_chapters}" if total_chapters else status_desc
})
# 构建返回结果
result = {
"list": videos,
"page": int(current_page),
"pagecount": total_pages,
"limit": len(videos),
"total": total_pages * len(videos) if videos else 0
}
return result
def switch(self, key, pg):
# 搜索功能
search_results = []
# 获取第一页结果,并检查总页数
url = f"{self.siteUrl}/search?searchValue={key}&page={pg}"
response = self.fetch(url)
html_content = response.text
# 提取NEXT_DATA JSON数据
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
if next_data_match:
next_data_json = json.loads(next_data_match.group(1))
page_props = next_data_json.get("props", {}).get("pageProps", {})
# 获取总页数
total_pages = page_props.get("pages", 1)
# 处理所有页的数据
all_book_list = []
# 添加第一页的书籍列表
book_list = page_props.get("bookList", [])
all_book_list.extend(book_list)
# 如果有多页,获取其他页的数据
if total_pages > 1 : # quick模式只获取第一页
for page in range(2, total_pages + 1):
next_page_url = f"{self.siteUrl}/search?searchValue={key}&page={page}"
next_page_response = self.fetch(next_page_url)
next_page_html = next_page_response.text
next_page_match = re.search(next_data_pattern, next_page_html, re.DOTALL)
if next_page_match:
next_page_json = json.loads(next_page_match.group(1))
next_page_props = next_page_json.get("props", {}).get("pageProps", {})
next_page_books = next_page_props.get("bookList", [])
all_book_list.extend(next_page_books)
# 转换为统一的搜索结果格式
for book in all_book_list:
book_id = book.get("bookId", "")
book_name = book.get("bookName", "")
cover_url = book.get("coverWap", "")
total_chapters = book.get("totalChapterNum", "0")
status_desc = book.get("statusDesc", "")
# 构建视频项
vod = {
"vod_id": f"/drama/{book_id}",
"vod_name": book_name,
"vod_pic": cover_url,
"vod_remarks": f"{status_desc} {total_chapters}"
}
search_results.append(vod)
result = {
"list": search_results,
"page": pg
}
return result
def searchContent(self, key, quick, pg=1):
result = self.switch(key, pg=pg)
result['page'] = pg
return result
def searchContentPage(self, key, quick, pg=1):
return self.searchContent(key, quick, pg)
def detailContent(self, ids):
# 获取剧集信息
vod_id = ids[0]
episode_id = None
chapter_id = None
if not vod_id.startswith('/drama/'):
if vod_id.startswith('/episode/'):
episode_info = vod_id.replace('/episode/', '').split('/')
if len(episode_info) >= 2:
episode_id = episode_info[0]
chapter_id = episode_info[1]
vod_id = f'/drama/{episode_id}'
else:
vod_id = '/drama/' + vod_id
drama_url = self.siteUrl + vod_id
print(f"请求URL: {drama_url}")
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
"Referer": self.siteUrl,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
rsp = self.fetch(drama_url, headers=headers)
if not rsp or rsp.status_code != 200:
print(f"请求失败,状态码: {getattr(rsp, 'status_code', 'N/A')}")
return {}
html = rsp.text
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html, re.DOTALL)
if not next_data_match:
print("未找到NEXT_DATA内容")
return {}
try:
next_data = json.loads(next_data_match.group(1))
page_props = next_data.get("props", {}).get("pageProps", {})
print(f"找到页面属性,包含 {len(page_props.keys())} 个键")
book_info = page_props.get("bookInfoVo", {})
chapter_list = page_props.get("chapterList", [])
title = book_info.get("title", "")
sub_title = f"{book_info.get('totalChapterNum', '')}"
categories = []
for category in book_info.get("categoryList", []):
categories.append(category.get("name", ""))
vod_content = book_info.get("introduction", "")
vod = {
"vod_id": vod_id,
"vod_name": title,
"vod_pic": book_info.get("coverWap", ""),
"type_name": ",".join(categories),
"vod_year": "",
"vod_area": book_info.get("countryName", ""),
"vod_remarks": sub_title,
"vod_actor": ", ".join([p.get("name", "") for p in book_info.get("performerList", [])]),
"vod_director": "",
"vod_content": vod_content
}
# 处理播放列表
play_url_list = []
episodes = []
if chapter_list:
print(f"找到 {len(chapter_list)} 个章节")
# 先检查是否有可以直接使用的MP4链接作为模板
mp4_template = None
first_mp4_chapter_id = None
# 先搜索第一个章节的MP4链接
# 为提高成功率,尝试直接请求第一个章节的播放页
if chapter_list and len(chapter_list) > 0:
first_chapter = chapter_list[0]
first_chapter_id = first_chapter.get("chapterId", "")
drama_id_clean = vod_id.replace('/drama/', '')
if first_chapter_id and drama_id_clean:
first_episode_url = f"{self.siteUrl}/episode/{drama_id_clean}/{first_chapter_id}"
print(f"请求第一集播放页: {first_episode_url}")
first_rsp = self.fetch(first_episode_url, headers=headers)
if first_rsp and first_rsp.status_code == 200:
first_html = first_rsp.text
# 直接从HTML提取MP4链接
mp4_pattern = r'(https?://[^"\']+\.mp4)'
mp4_matches = re.findall(mp4_pattern, first_html)
if mp4_matches:
mp4_template = mp4_matches[0]
first_mp4_chapter_id = first_chapter_id
print(f"找到MP4链接模板: {mp4_template}")
print(f"模板对应的章节ID: {first_mp4_chapter_id}")
# 如果未找到模板再检查章节对象中是否有MP4链接
if not mp4_template:
for chapter in chapter_list[:5]: # 只检查前5个章节以提高效率
if "chapterVideoVo" in chapter and chapter["chapterVideoVo"]:
chapter_video = chapter["chapterVideoVo"]
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url and ".mp4" in mp4_url:
mp4_template = mp4_url
first_mp4_chapter_id = chapter.get("chapterId", "")
print(f"从chapterVideoVo找到MP4链接模板: {mp4_template}")
print(f"模板对应的章节ID: {first_mp4_chapter_id}")
break
# 遍历所有章节处理播放信息
for chapter in chapter_list:
chapter_id = chapter.get("chapterId", "")
chapter_name = chapter.get("chapterName", "")
# 1. 如果章节自身有MP4链接直接使用
if "chapterVideoVo" in chapter and chapter["chapterVideoVo"]:
chapter_video = chapter["chapterVideoVo"]
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url and ".mp4" in mp4_url:
episodes.append(f"{chapter_name}${mp4_url}")
continue
# 2. 如果有MP4模板尝试替换章节ID构建MP4链接
if mp4_template and first_mp4_chapter_id and chapter_id:
# 替换模板中的章节ID部分
if first_mp4_chapter_id in mp4_template:
new_mp4_url = mp4_template.replace(first_mp4_chapter_id, chapter_id)
episodes.append(f"{chapter_name}${new_mp4_url}")
continue
# 3. 如果上述方法都不可行回退到使用chapter_id构建中间URL
if chapter_id and chapter_name:
url = f"{vod_id}${chapter_id}${chapter_name}"
episodes.append(f"{chapter_name}${url}")
if not episodes and vod_id:
# 尝试构造默认的集数
total_chapters = int(book_info.get("totalChapterNum", "0"))
if total_chapters > 0:
print(f"尝试构造 {total_chapters} 个默认集数")
# 如果知道章节ID的模式可以构造
if chapter_id and episode_id:
for i in range(1, total_chapters + 1):
chapter_name = f"{i}"
url = f"{vod_id}${chapter_id}${chapter_name}"
episodes.append(f"{chapter_name}${url}")
else:
# 使用普通的构造方式
for i in range(1, total_chapters + 1):
chapter_name = f"{i}"
url = f"{vod_id}${chapter_name}"
episodes.append(f"{chapter_name}${url}")
if episodes:
play_url_list.append("#".join(episodes))
vod['vod_play_from'] = '河马剧场'
vod['vod_play_url'] = '$$$'.join(play_url_list)
result = {
'list': [vod]
}
return result
except Exception as e:
print(f"解析详情页失败: {str(e)}")
print(traceback.format_exc())
return {}
def playerContent(self, flag, id, vipFlags):
result = {}
print(f"调用playerContent: flag={flag}, id={id}")
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
"Referer": self.siteUrl,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
# 解析id参数
parts = id.split('$')
drama_id = None
chapter_id = None
if len(parts) >= 2:
drama_id = parts[0]
chapter_id = parts[1]
chapter_name = parts[2] if len(parts) > 2 else "第一集"
print(f"解析参数: drama_id={drama_id}, chapter_id={chapter_id}")
else:
# 处理旧数据格式
print(f"使用原始URL格式: {id}")
result["parse"] = 0
result["url"] = id
result["header"] = json.dumps(headers)
return result
# 直接检查chapter_id是否包含http可能已经是视频链接
if 'http' in chapter_id and '.mp4' in chapter_id:
print(f"已经是MP4链接: {chapter_id}")
result["parse"] = 0
result["url"] = chapter_id
result["header"] = json.dumps(headers)
return result
# 构建episode页面URL
drama_id_clean = drama_id.replace('/drama/', '')
episode_url = f"{self.siteUrl}/episode/{drama_id_clean}/{chapter_id}"
print(f"请求episode页面: {episode_url}")
try:
rsp = self.fetch(episode_url, headers=headers)
if not rsp or rsp.status_code != 200:
print(f"请求失败,状态码: {getattr(rsp, 'status_code', 'N/A')}")
result["parse"] = 0
result["url"] = id
result["header"] = json.dumps(headers)
return result
html = rsp.text
print(f"获取页面大小: {len(html)} 字节")
# 尝试从NEXT_DATA提取视频链接
mp4_url = None
# 方法1: 从NEXT_DATA提取
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html, re.DOTALL)
if next_data_match:
try:
print("找到NEXT_DATA")
next_data = json.loads(next_data_match.group(1))
page_props = next_data.get("props", {}).get("pageProps", {})
# 从chapterList中查找当前章节
chapter_list = page_props.get("chapterList", [])
print(f"找到章节列表,长度: {len(chapter_list)}")
for chapter in chapter_list:
if chapter.get("chapterId") == chapter_id:
print(f"找到匹配的章节: {chapter.get('chapterName')}")
chapter_video = chapter.get("chapterVideoVo", {})
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url:
print(f"从chapterList找到MP4链接: {mp4_url}")
break
# 如果未找到,尝试从当前章节获取
if not mp4_url:
current_chapter = page_props.get("chapterInfo", {})
if current_chapter:
print("找到当前章节信息")
chapter_video = current_chapter.get("chapterVideoVo", {})
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
if mp4_url:
print(f"从chapterInfo找到MP4链接: {mp4_url}")
except Exception as e:
print(f"解析NEXT_DATA失败: {str(e)}")
print(traceback.format_exc())
# 方法2: 直接从HTML中提取MP4链接
if not mp4_url:
mp4_pattern = r'(https?://[^"\']+\.mp4)'
mp4_matches = re.findall(mp4_pattern, html)
if mp4_matches:
# 查找含有chapter_id的链接
matched_mp4 = False
for url in mp4_matches:
if chapter_id in url:
mp4_url = url
matched_mp4 = True
print(f"从HTML直接提取章节MP4链接: {mp4_url}")
break
# 如果没找到包含chapter_id的链接使用第一个
if not matched_mp4 and mp4_matches:
mp4_url = mp4_matches[0]
print(f"从HTML直接提取MP4链接: {mp4_url}")
if mp4_url and ".mp4" in mp4_url:
print(f"最终找到的MP4链接: {mp4_url}")
result["parse"] = 0
result["url"] = mp4_url
result["header"] = json.dumps(headers)
return result
else:
print(f"未找到有效的MP4链接尝试再次解析页面内容")
# 再尝试一次从HTML中广泛搜索所有可能的MP4链接
all_mp4_pattern = r'(https?://[^"\']+\.mp4)'
all_mp4_matches = re.findall(all_mp4_pattern, html)
if all_mp4_matches:
mp4_url = all_mp4_matches[0]
print(f"从HTML广泛搜索找到MP4链接: {mp4_url}")
result["parse"] = 0
result["url"] = mp4_url
result["header"] = json.dumps(headers)
return result
print(f"未找到视频链接返回原episode URL: {episode_url}")
result["parse"] = 0
result["url"] = episode_url
result["header"] = json.dumps(headers)
return result
except Exception as e:
print(f"请求或解析失败: {str(e)}")
print(traceback.format_exc())
result["parse"] = 0
result["url"] = id
result["header"] = json.dumps(headers)
return result
def localProxy(self, param):
# 本地代理处理,此处简单返回传入的参数
return [200, "video/MP2T", {}, param]
def destroy(self):
# 资源回收
pass

View File

@ -0,0 +1,225 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import json
import sys
import threading
import uuid
import requests
sys.path.append('..')
from base.spider import Spider
import time
from Crypto.Hash import MD5, SHA1
class Spider(Spider):
'''
配置示例
{
"key": "xxxx",
"name": "xxxx",
"type": 3,
"api": ".所在路径/金牌.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": {
"site": "https://www.jiabaide.cn,域名2,域名3"
}
},
'''
def init(self, extend=""):
if extend:
hosts=json.loads(extend)['site']
self.host = self.host_late(hosts)
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
def homeContent(self, filter):
cdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/get/filer/type", headers=self.getheaders()).json()
fdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/get/filer/list", headers=self.getheaders()).json()
result = {}
classes = []
filters={}
for k in cdata['data']:
classes.append({
'type_name': k['typeName'],
'type_id': str(k['typeId']),
})
sort_values = [{"n": "最近更新", "v": "2"},{"n": "人气高低", "v": "3"}, {"n": "评分高低", "v": "4"}]
for tid, d in fdata['data'].items():
current_sort_values = sort_values.copy()
if tid == '1':
del current_sort_values[0]
filters[tid] = [
{"key": "type", "name": "类型",
"value": [{"n": i["itemText"], "v": i["itemValue"]} for i in d["typeList"]]},
*([] if not d["plotList"] else [{"key": "v_class", "name": "剧情",
"value": [{"n": i["itemText"], "v": i["itemText"]}
for i in d["plotList"]]}]),
{"key": "area", "name": "地区",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["districtList"]]},
{"key": "year", "name": "年份",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["yearList"]]},
{"key": "lang", "name": "语言",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["languageList"]]},
{"key": "sort", "name": "排序", "value": current_sort_values}
]
result['class'] = classes
result['filters'] = filters
return result
def homeVideoContent(self):
data1 = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/home/all/list", headers=self.getheaders()).json()
data2=self.fetch(f"{self.host}/api/mw-movie/anonymous/home/hotSearch",headers=self.getheaders()).json()
data=[]
for i in data1['data'].values():
data.extend(i['list'])
data.extend(data2['data'])
vods=self.getvod(data)
return {'list':vods}
def categoryContent(self, tid, pg, filter, extend):
params = {
"area": extend.get('area', ''),
"filterStatus": "1",
"lang": extend.get('lang', ''),
"pageNum": pg,
"pageSize": "30",
"sort": extend.get('sort', '1'),
"sortBy": "1",
"type": extend.get('type', ''),
"type1": tid,
"v_class": extend.get('v_class', ''),
"year": extend.get('year', '')
}
data = self.fetch(f"{self.host}/api/mw-movie/anonymous/video/list?{self.js(params)}", headers=self.getheaders(params)).json()
result = {}
result['list'] = self.getvod(data['data']['list'])
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/detail?id={ids[0]}",headers=self.getheaders({'id':ids[0]})).json()
vod=self.getvod([data['data']])[0]
vod['vod_play_from']='金牌'
vod['vod_play_url'] = '#'.join(
f"{i['name'] if len(vod['episodelist']) > 1 else vod['vod_name']}${ids[0]}@@{i['nid']}" for i in
vod['episodelist'])
vod.pop('episodelist', None)
return {'list':[vod]}
def searchContent(self, key, quick, pg="1"):
params = {
"keyword": key,
"pageNum": pg,
"pageSize": "8",
"sourceCode": "1"
}
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/searchByWord?{self.js(params)}",headers=self.getheaders(params)).json()
vods=self.getvod(data['data']['result']['list'])
return {'list':vods,'page':pg}
def playerContent(self, flag, id, vipFlags):
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'DNT': '1',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'Origin': self.host,
'Referer': f'{self.host}/'
}
ids=id.split('@@')
pdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v2/video/episode/url?clientType=1&id={ids[0]}&nid={ids[1]}",headers=self.getheaders({'clientType':'1','id': ids[0], 'nid': ids[1]})).json()
vlist=[]
for i in pdata['data']['list']:vlist.extend([i['resolutionName'],i['url']])
return {'parse':0,'url':vlist,'header':self.header}
def localProxy(self, param):
pass
def host_late(self, url_list):
if isinstance(url_list, str):
urls = [u.strip() for u in url_list.split(',')]
else:
urls = url_list
if len(urls) <= 1:
return urls[0] if urls else ''
results = {}
threads = []
def test_host(url):
try:
start_time = time.time()
response = requests.head(url, timeout=1.0, allow_redirects=False)
delay = (time.time() - start_time) * 1000
results[url] = delay
except Exception as e:
results[url] = float('inf')
for url in urls:
t = threading.Thread(target=test_host, args=(url,))
threads.append(t)
t.start()
for t in threads:
t.join()
return min(results.items(), key=lambda x: x[1])[0]
def md5(self, sign_key):
md5_hash = MD5.new()
md5_hash.update(sign_key.encode('utf-8'))
md5_result = md5_hash.hexdigest()
return md5_result
def js(self, param):
return '&'.join(f"{k}={v}" for k, v in param.items())
def getheaders(self, param=None):
if param is None:param = {}
t=str(int(time.time()*1000))
param['key']='cb808529bae6b6be45ecfab29a4889bc'
param['t']=t
sha1_hash = SHA1.new()
sha1_hash.update(self.md5(self.js(param)).encode('utf-8'))
sign = sha1_hash.hexdigest()
deviceid = str(uuid.uuid4())
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'sign': sign,
't': t,
'deviceid':deviceid
}
return headers
def convert_field_name(self, field):
field = field.lower()
if field.startswith('vod') and len(field) > 3:
field = field.replace('vod', 'vod_')
if field.startswith('type') and len(field) > 4:
field = field.replace('type', 'type_')
return field
def getvod(self, array):
return [{self.convert_field_name(k): v for k, v in item.items()} for item in array]

Binary file not shown.

1
摸鱼儿/js/huya2.js Normal file

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,192 +1,199 @@
{
"classes": [{
"type_name": "电影",
"type_id": "dy"
}, {
"type_name": "电视",
"type_id": "ds"
}, {
"type_name": "短剧",
"type_id": "dj"
}, {
"type_name": "综艺",
"type_id": "zy"
}, {
"type_name": "动漫",
"type_id": "dm"
}, {
"type_name": "音乐",
"type_id": "yy"
}],
"classes": [
{
"type_name": "电影",
"type_id": "dy"
},
{
"type_name": "电视",
"type_id": "ds"
},
{
"type_name": "短剧",
"type_id": "dj"
},
{
"type_name": "综艺",
"type_id": "zy"
},
{
"type_name": "动漫",
"type_id": "dm"
},
{
"type_name": "音乐",
"type_id": "yy"
}
],
"filters": {
"dy": [
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
],
"ds": [
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
],
"dj": [
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
],
"zy": [
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
],
"dm": [
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
],
"yy": [
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
{
"key": "root",
"name": "来源",
"value": [
{
"n": "全部",
"v": "0"
},
{
"n": "夸克",
"v": "2"
},
{
"n": "UC",
"v": "5"
},
{
"n": "阿里",
"v": "1"
},
{
"n": "百度",
"v": "4"
}
]
}
]
},
"siteUrl":"https://ysapi.yingso.fun/v7/ali/all"
"siteUrl": "https://ysapi.yingso.fun/v7/ali/all"
}

File diff suppressed because it is too large Load Diff

View File

@ -1 +1,20 @@
{"SiteUrl":"https://www.hmxz.org","Classes":[{"type_name":"电影","type_id":"1"},{"type_name":"剧集","type_id":"2"},{"type_name":"综艺","type_id":"5"},{"type_name":"动漫","type_id":"3"}], "Cookie":"bbs_sid=ducbgilqu67ff2oirbbh9aq7ol;bbs_token=KLC2C9dxzxxpvoGd4vV8VKgN_2FM1Fbe_2B_2BLShggfWjEmh1kmEA"}
{
"Classes": [
{
"type_name": "电影",
"type_id": "1"
},
{
"type_name": "剧集",
"type_id": "2"
},
{
"type_name": "动漫",
"type_id": "3"
},
{
"type_name": "综艺",
"type_id": "5"
}
]
}

View File

@ -1 +1,24 @@
{"SiteUrl":"https://pan1.me","Classes":[{"type_name":"电影","type_id":"2"},{"type_name":"剧集","type_id":"48"},{"type_name":"4K原盘","type_id":"56"},{"type_name":"综艺","type_id":"52"},{"type_name":"动漫","type_id":"37"}], "Cookie":"bbs_sid=rrru52bda4v655kl9u1c87f00m; bbs_token=dZRAvHbHcUZkuJ7oHALqWoUs00C1fGqqXDXH7I8LH6hMddXP"}
{
"Classes": [
{
"type_name": "电影",
"type_id": "2"
},
{
"type_name": "剧集",
"type_id": "48"
},
{
"type_name": "4K原盘",
"type_id": "56"
},
{
"type_name": "综艺",
"type_id": "52"
},
{
"type_name": "动漫",
"type_id": "37"
}
]
}

File diff suppressed because one or more lines are too long

View File

@ -4,9 +4,9 @@
"spider": "./spider.jar",
"lives": [
{
"name": "【公众号光歌软件分享】永久免费,请勿演示贩卖",
"name": "【公众号杰歌软件APP】如有收费,直接找退款",
"type": 0,
"url": "./lives/【公众号光歌软件分享】永久免费,请勿演示贩卖.txt",
"url": "./lives/【公众号杰歌软件APP】如有收费,直接找退款.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
"logo":"https://live.fanmingming.cn/tv/{name}.png",
"playerType":2,
@ -15,7 +15,7 @@
{
"name": "胖羊直播",
"type": 3,
"api":"csp_Feiyang",
"api":"csp_Feiyang",
"url": "./lives/胖羊直播.txt",
"timeout":10,
"ua":"okhttp/3.15",
@ -25,7 +25,7 @@
"name": "AI直播",
"type": 0,
"url": "./lives/AI直播.txt",
"epg":"http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
"epg":"http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
"logo":"https://live.fanmingming.cn/tv/{name}.png",
"playerType":2,
"timeout":10
@ -41,20 +41,20 @@
"sites": [
{
"key": "豆瓣2",
"name": "📢【公众号光歌软件分享】永久免费,请勿演示贩卖",
"name": "📢【公众号杰歌软件APP】如有收费,直接找退款",
"type": 3,
"api": "csp_Douban",
"searchable": 0
},
{
"key": "豆瓣1",
"name": "📢【公众号光歌软件分享】永久免费,请勿演示贩卖公告❤更新:4/17❤",
"name": "📢【公众号杰歌软件APP】如有收费,直接找退款公告❤更新:4/20❤",
"type": 3,
"api": "csp_Notice",
"searchable": 0,
"changeable": 0,
"jar": "./jars/豆瓣1.jar",
"ext": "https://xn--dkw0c.v.nxog.top/m//公告.php?b=【公众号光歌软件分享】永久免费,请勿演示贩卖"
"ext": "https://xn--dkw0c.v.nxog.top/m//公告.php?b=【公众号杰歌软件APP】如有收费,直接找退款"
},
{
"key": "csp_woog",
@ -71,7 +71,7 @@
],
"url_key": "woog",
"threadinfo": {
"chunksize": 300,
"chunksize": 223,
"threads": 10
}
}
@ -99,7 +99,7 @@
],
"url_key": "woogkk",
"threadinfo": {
"chunksize": 282,
"chunksize": 217,
"threads": 60
}
}
@ -123,7 +123,7 @@
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/og.json?"
"ext": " ./json/og.json?"
},
{
"key": "配置中心",
@ -132,7 +132,6 @@
"api": "csp_Config",
"searchable": 0,
"changeable": 0,
"indexs": 0,
"style": {
"type": "rect",
"ratio": 1.597
@ -179,15 +178,6 @@
"quickSearch": 1,
"filterable": 1
},
{
"key": "快看",
"name": "💡快看|影视",
"type": 3,
"api": "csp_Kuaikan",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "雨滴",
"name": "💡雨滴|影视",
@ -206,20 +196,12 @@
},
{
"key": "米兔",
"name": "💡米兔|影视",
"name": "💡米兔|APP",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cHM6Ly93d3cuempjLmFwcHxhYjRlOWE0MjE2NzVmMTRifGFiNGU5YTQyMTY3NWYxNGJ8NDQy"
},
{
"key": "奇妙",
"name": "💡奇妙|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovLzE1NC4xMi45MS4yMTE6NjY4fDEyMzQ1Njc4OUFCQ0RFRkd8MTIzNDU2Nzg5QUJDREVGR3wxMDY="
},
{
"key": "玉米",
"name": "💡玉米|影视",
@ -265,26 +247,6 @@
"filterable": 1,
"ext": "w7TClcONw6LDrsKYwoXCosKcwpvCrcKcw6HDrsKnwqDCo2rCqMKiw7HDsMOxYcKewpvClMOvw5fCqMOmw59VXFLCpMOiw6PCnMKzwpzCjuWGtemEmOaPleWRnMKf5Yem5L6Q5ZGxbeW+oeintui1tOa8ieetjMOXwpvDtw=="
},
{
"key": "真心影视",
"name": "💡真心|影视",
"type": 3,
"api": "csp_WebGZ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "厂长影视",
"name": "💡厂长|影视",
"type": 3,
"playerType": "2",
"api": "csp_Czsapp",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "http://www.czzyvideo.com"
},
{
"key": "耐看影视",
"name": "💡耐看|影视",
@ -294,34 +256,12 @@
"changeable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKewpvDncOpw57Cp8OnwphXXFDCoMOnw6PDqcKhbVBXwovlh77phZvmkJ/lkZzCpuWGn+S9h+WQp2rlv6roqLnotr7mvInnrZPCkFdcUMKgw5fDn8Ocw6zCrMKgwqR7w57DrMKhwrPCmlrCp8KlwqnDosKpwrDCr8KhwrA="
},
{
"key": "一起影视",
"name": "💡一起|影视",
"type": 3,
"api": "csp_AppFree4K",
"searchable": 1,
"quickSearch": 1,
"filterable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw5rDqsKjwpPCncKjwqfDmcOsw57Dn8KbwpRewqbDosOjwqHCpcKaWnvClcKpwqDCrcKawqDDnMKYZWNkwrHDl8Ogw5vCqsKWY8KTYsKxwqbCocKlwppaecKmV8KzwpPCocKuw6BoZGRpw53Dl8Krwq3CrWRjYmHCsMKawqbCmcKhdcKRwp7Cm8OHw5TDsMKgwrRTV+ecpOaTncKgwp/CmsKgw4rClMKiwqPClcOOw6XDpsKgwrRTV8KYwqTDrcOjw63Cs8KpYsKRwqDCoMOvwqTCqMOfw6zCmMKVwpjClMKnw6nDo8OpwqnCncKjwp/CnsKnw6PDosOpwrnCqMKiwpxtwqDCn8KawqDCvsKUwp59wqXDjsOlw6bCoMK0U1fCmMKkw63Do8OtwrPCqWLClMKdXsOvw5zDnsOzwqjClMKjwpnCkcKow5fDp8Okw69ib8KRwpPCtsOXw6fCn8OuwqLCm8KVwp7CtsOEw4PDhcK8dnh6dsOMwr/DkcOPw4B4e8KCVsOuw6XDpsK2wqFfUFfClMOew5bDrMOyw6rCp3vClcKpwqDCrcKawqDDscKowqnCmWbCr8KpwqHDtg=="
},
{
"key": "私人影视",
"name": "💡私人|影视",
"type": 3,
"api": "csp_Siren"
},
{
"key": "云播影视",
"name": "💡云播|影视",
"type": 3,
"api": "csp_Tvyb"
},
{
"key": "奇优影视",
"name": "💡奇优|影视",
"type": 3,
"api": "csp_Qiyou"
},
{
"key": "苹果影视",
"name": "💡苹果|影视",
@ -331,13 +271,6 @@
"quickSearch": 1,
"filterable": 1
},
{
"key": "全网影视",
"name": "💡全看|影视",
"type": 3,
"api": "csp_Quanwk",
"ext": "https://www.91qkw.com"
},
{
"key": "火火影视",
"name": "💡火火|影视",
@ -385,6 +318,55 @@
"api": "csp_Wwys",
"ext": "https://www.wwgz.cn"
},
{
"key": "时常",
"name": "💡时常|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovLzExMS4xODAuMTk4LjQwOjExMTB8YXNnY3hoamt0czEyNDU3M3xhc2djeGhqa3RzMTI0NTczfDEwMQ=="
},
{
"key": "光速",
"name": "💡光速|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovLzU5LjE1My4xNjcuMTM3Ojg4OTl8NGQ4M2I4N2M0YzVlYTExMXw0ZDgzYjg3YzRjNWVhMTExfDQ2Mg=="
},
{
"key": "格格",
"name": "💡格格|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 2,
"ext": "jaHR0cDovLzExMS4xODAuMTk4LjQwOjExMTAvYXBpLnBocHxhc2djeGhqa3RzMTI0NTczfGFzZ2N4aGprdHMxMjQ1NzN8MTE5"
},
{
"key": "优质",
"name": "💡优质|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cHM6Ly9sYnlzYXBpZHR5bWd4LjY4Lmd5OjE2Nzg5L2xieXNhcGlkdHltL2FwcC50eHR8YXBpYXBwbGJ5c2tleTE2OHxhcGlhcHBsYnlza2V5MTY4fDEwNw=="
},
{
"key": "云端",
"name": "💡云端|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 2,
"ext": "jaHR0cHM6Ly95ZHlzZHluYW1pY2RvbWFpbm5hbWUuNjguZ3k6MTA2NzgvYzltMmpzMjk4eDgyaDYvbDltOGJ4MjNqMm8ycDlxL2R5bmFtaWNkb21haW5uYW1lLnR4dHxrOW8zcDJjOGI3bTN6MG84fGs5bzNwMmM4YjdtM3owbzh8MTAw"
},
{
"key": "爱看机器人",
"name": "💡爱看|影视",
"type": 3,
"api": "csp_Ikanbot",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "热播影视",
"name": "💘热播|弹幕",
@ -428,6 +410,71 @@
"api": "csp_AppFerr",
"ext": "sHR2rlsfjI4L3t4RXQMkn/M3t4AXAKTrZj3tfhm1t/gMT3dOrHqIzUNqLUEOIDMvllTbX6e1hMhB2mfpOaCmHNOL1yBB3SmxNyqXlai90EIpdnwOOgCR9Z+YwCTj6ySjzJ2VBiH3eXeOGcavcNeVRA=="
},
{
"key": "csp_XYQHiker_农民影视",
"name": "🧿农民|影视",
"type": 3,
"api": "csp_XYQHiker",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": " ./json/nmys.json"
},
{
"key": "八号影视",
"name": "🧿八号|影视",
"type": 3,
"api": "csp_XYQHiker",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": " ./json/八号影视.json"
},
{
"key": "骚火影视",
"name": "🧿骚火|影视",
"type": 3,
"api": "csp_XYQHiker",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": " ./json/骚火影视.json"
},
{
"key": "秀儿影视",
"name": "🧿秀儿|影视",
"type": 3,
"api": "csp_XBPQ",
"ext": " ./json/秀儿影视.json"
},
{
"key": "海纳影视",
"name": "🧿海纳|影视",
"type": 3,
"api": "csp_XBPQ",
"ext": " ./json/海纳影视.json"
},
{
"key": "雪糕影视",
"name": "🧿雪糕|影视",
"type": 3,
"api": "csp_XBPQ",
"ext": " ./json/雪糕影视.json"
},
{
"key": "永乐影视",
"name": "🧿永乐|影视",
"type": 3,
"api": "csp_XBPQ",
"ext": " ./json/永乐影视.json"
},
{
"key": "面包影视",
"name": "🧿面包|影视",
"type": 3,
"api": "csp_XBPQ",
"ext": " ./json/面包影视.json"
},
{
"key": "猎手影视",
"name": "🧡猎手PY影视",
@ -443,18 +490,7 @@
"key": "火车影视",
"name": "🧡火车PY影视",
"type": 3,
"api": "./api/火车影视.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{
"key": "嗨皮影视",
"name": "🧡嗨皮PY影视",
"type": 3,
"api": "./api/嗨皮影视.py",
"api": "./api/火车太顺APP.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
@ -495,145 +531,16 @@
"playerType": 2
},
{
"key": "csp_XYQHiker_农民影视",
"name": "🧿农民XBPQ",
"key": "金牌影视PY",
"name": "🧡金牌PY影视",
"type": 3,
"api": "csp_XYQHiker",
"api": "./api/金牌.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./json/nmys.json"
},
{
"key": "嫖嫖嫖",
"name": "🧿嫖嫖┃XBPQ",
"type": 3,
"api": "csp_XBPQ",
"playerType": 2,
"ext": {
"主页url": "https://www.gs4x7nq4.com/",
"播放请求头": "User-Agent$Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/128.0.0.0Safari/537.36",
"简介": "请勿相信影片中的广告,以免上当受骗❗️+</label>&&</div>",
"嗅探词": ".mp4#.m3u8#.flv#.m3u8?#.mp4?",
"影片类型": "tags\">&&director\">",
"影片状态": "bottom\">&&</div>",
"二次截取": "videoList\":\\[&&\\]",
"数组": "{&&}[不包含:伦理剧]",
"图片": "https+://ywxohs.com+obs.gduamoe.com&&\",",
"标题": "vodName\":\"&&\"",
"副标题": "vodRemarks\":\"&&\"",
"链接": "https://www.gs4x7nq4.com/detail/+vodId\":&&,",
"导演": "导演:</div>&&主演",
"主演": "主演:</div>&&别名",
"线路标题": "xxx",
"播放数组": "listitem\">&&info\">",
"播放列表": "<a&&</a>",
"倒序": "否",
"搜索url": "https://www.gs4x7nq4.com/vod/search/{wd}",
"搜索副标题": "class=\"boottom\"*<div>&&</div",
"分类": "电影$1#电视剧$2#综艺$3#动漫$4",
"分类url": "https://www.gs4x7nq4.com/vod/show/id/{cateId}/class/{class}/year/{year}/area/{area}/page/{catePg}"
}
},
{
"key": "白嫖者",
"name": "🧿白嫖┃XBPQ",
"type": 3,
"api": "csp_XBPQ",
"ext": {
"分类url": "https://www.qyzf88.com/qyvodshow/{cateId}-{area}-{by}-{class}-----{catePg}---{year}.html",
"分类": "电影$1#电视剧$2#动漫$4#综艺$3",
"副标题": "class=\"pic-texttext-right\"&&</span>",
"简介": "请勿相信影片中的广告,以免上当受骗❗+剧情介绍:&&</p>"
}
},
{
"key": "656",
"name": "🧿梦想┃XBPQ",
"type": 3,
"api": "csp_XBPQ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"主页url": "https://www.kkys02.com/",
"分类url": "https://www.kkys02.com/{cateId}-{catePg}.html[https://www.kkys02.com/{cateId}-.html];;ak",
"分类": "豆瓣TOP250&2023最佳影片&毒舌电影&热映电影&热播剧集&热门综艺&Netflix电影&Netflix剧集&经典美剧&海外短画&爱情治愈&漫威宇宙&星爷系列&迪士尼&国产剧&台湾剧&韩国剧&欧美剧&香港剧&泰国剧&日本剧&动作片&喜剧片&科幻片&恐怖片&爱情片&剧情片&战争片&传记片&动画片&国产动漫&日本动漫&韩国动漫&欧美动漫&大陆综艺&香港综艺&台湾综艺&日本综艺&韩国综艺&欧美综艺&短剧",
"分类值": "topic/detail/1&topic/detail/460&topic/detail/3&topic/detail/12&topic/detail/15&topic/detail/456&show/1-NETFLIX----3&show/2-NETFLIX----3&topic/detail/399&topic/detail/384&topic/detail/383&topic/detail/33&topic/detail/26&topic/detail/34&show/2--%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86---3&show/2--%E4%B8%AD%E5%9B%BD%E5%8F%B0%E6%B9%BE---3&show/2--%E9%9F%A9%E5%9B%BD---3&show/2--%E7%BE%8E%E5%9B%BD---3&show/2--%E4%B8%AD%E5%9B%BD%E9%A6%99%E6%B8%AF---3&show/2--%E6%B3%B0%E5%9B%BD---3&show/2--%E6%97%A5%E6%9C%AC---3&show/1-%E5%8A%A8%E4%BD%9C----3&show/1-%E5%96%9C%E5%89%A7----3&show/1-%E7%A7%91%E5%B9%BB----3&show/1-%E6%81%90%E6%80%96----3&show/1-%E7%88%B1%E6%83%85----3&show/1-%E5%89%A7%E6%83%85----3&show/1-%E6%88%98%E4%BA%89----3&show/1-%E4%BC%A0%E8%AE%B0----3&show/1-%E5%8A%A8%E7%94%BB----3&show/3--%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86---1&show/3--%E6%97%A5%E6%9C%AC---1&show/3--%E9%9F%A9%E5%9B%BD---1&show/3--%E7%BE%8E%E5%9B%BD---1&show/4--%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86---3&show/4--%E4%B8%AD%E5%9B%BD%E9%A6%99%E6%B8%AF---3&show/4--%E4%B8%AD%E5%9B%BD%E5%8F%B0%E6%B9%BE---3&show/4--%E6%97%A5%E6%9C%AC---3&show/4--%E9%9F%A9%E5%9B%BD---3&show/4--%E7%BE%8E%E5%9B%BD---3&show/6-----1",
"数组": "module-item\">&&\"v-item-footer\">",
"图片": "https://61.147.93.252:15002+data-original=\"&&\"",
"标题": "title=\"&&\"",
"副标题": "影视</span&&</div>",
"链接": "href=\"&&\"",
"搜索二次截取": "id=\"units_top\"&&id=\"units_footer\"",
"搜索url": "https://www.kkys02.com/search?os=pc&k={wd}",
"搜索数组": "<a&&class=\"tags\"",
"搜索图片": "data-original=\"&&\"[替换:/vod1/>>https://61.147.93.252:15002/vod1/][不包含:https://61.147.93.155:15001/vod_pc_static_kkdy/images/p/logo_placeholder_vertical.png?ver=240905]",
"搜索标题": "title=\"&&\"",
"搜索副标题": "v-item-bottom\">&&</div>",
"搜索链接": "href=\"&&\"",
"线路数组": "可可影视提供&&<i[不包含:4K(高峰不卡)]",
"线路标题": ">&&</span",
"播放数组": "episode-list\"&&</div",
"播放列表": "<a&&/a",
"播放标题": ">&&<",
"播放链接": "href=\"&&\"",
"嗅探词": ".m3u8#video_mp4#tos-#.mp4#cdn.123pan.cn#huoshanvod.com",
"影片年代": "class=\"detail-tags-item\">&&</a>",
"影片类型": "<divclass=\"detail-tagsfs-margin-topfs-margin-bottom\">&&立即播放",
"影片状态": "备注:&&</div>",
"导演": "导演:</div>&&</div>",
"主演": "演员:</div>&&</div>",
"简介": "detail-desc\">&&</p>"
}
},
{
"key": "8号影院",
"name": "🧿8号┃XBPQ",
"type": 3,
"api": "csp_XBPQ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": {
"搜索url": "http://www.soutiyi.com/search.php?searchword={wd}",
"搜索链接": "href=\"&&\"",
"简介": "请勿相信影片中的广告,以免上当受骗。+<pclass=\"col-pddetail\"&&</span>",
"线路数组": "<imgsrc=\"/statics/icon/icon_26.png\"&&</h3>",
"线路标题": "蓝光专线",
"分类url": "http://www.soutiyi.com/frim/{cateId}-{catePg}.html",
"分类": "动作片$5#爱情片$6#科幻片$7#恐怖片$8#喜剧片$10#剧情片$12#国产剧$13#港台剧$14#欧美剧$15#日韩剧$16#综艺$3#动漫$4"
}
},
{
"key": "csp_红狐狸影视",
"name": "🧿狐狸┃XBPQ",
"type": 3,
"api": "csp_XBPQ",
"ext": {
"分类url": "https://honghuli.com/leibiao/{cateId}-{area}-------{catePg}---{year}.html",
"分类": "电影$1#电视剧$2#综艺$3#动漫$4"
}
},
{
"key": "大师兄",
"name": "🧿大师┃XBPQ",
"type": 3,
"api": "csp_XBPQ",
"ext": {
"分类url": "https://www.dsxysproo.com/dqvodshow/{cateId}-{area}--{class}-----{catePg}---{year}.html",
"分类": "电视剧$2#电影$1#动漫$4#综艺$3"
}
},
{
"key": "疯狗",
"name": "🧿疯狗┃XBPQ",
"type": 3,
"api": "csp_XBPQ",
"ext": {
"线路数组": "page-header\">&&</div>",
"播放数组": "list-unstyledrowtext-centerff-playurl-lineff-playurl\"&&</ul>",
"分类url": "https://m.fenggoudy3.com/list-select-id-{cateId}-type-{class}-area-{area}-year-{year}-star--state--order-addtime-p-{catePg}.html;;d0",
"分类": "电视剧$2#电影$1#动漫$3#综艺$4"
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
}
},
{
@ -682,7 +589,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/学堂教育.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/学堂教育.json"
},
{
"key": "少儿",
@ -693,7 +600,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/少儿合集.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/少儿合集.json"
},
{
"key": "小学课堂",
@ -704,7 +611,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/小学课堂.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/小学课堂.json"
},
{
"key": "初中课堂",
@ -715,7 +622,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/初中课堂.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/初中课堂.json"
},
{
"key": "高中课堂",
@ -726,7 +633,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/高中课堂.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/高中课堂.json"
},
{
"key": "儿童口才",
@ -737,7 +644,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童口才.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童口才.json"
},
{
"key": "儿童拼音",
@ -748,7 +655,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童拼音.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童拼音.json"
},
{
"key": "儿童识字",
@ -759,7 +666,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童识字.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童识字.json"
},
{
"key": "儿童思维",
@ -770,7 +677,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童思维.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童思维.json"
},
{
"key": "儿童英语",
@ -781,7 +688,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童英语.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童英语.json"
},
{
"key": "儿童硬笔",
@ -792,7 +699,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童硬笔.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童硬笔.json"
},
{
"key": "儿童编程",
@ -803,7 +710,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童编程.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童编程.json"
},
{
"key": "儿童武术",
@ -814,7 +721,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/儿童武术.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/儿童武术.json"
},
{
"key": "csp_BBB",
@ -825,7 +732,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/哔哩套餐1.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/哔哩套餐1.json"
},
{
"key": "Bili",
@ -836,7 +743,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/哔哩套餐2.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/哔哩套餐2.json"
},
{
"key": "软件",
@ -847,7 +754,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/软件教程.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/软件教程.json"
},
{
"key": "演唱会",
@ -858,7 +765,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/演唱会.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/演唱会.json"
},
{
"key": "戏曲",
@ -869,7 +776,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/戏曲合集.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/戏曲合集.json"
},
{
"key": "MV",
@ -880,7 +787,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/歌曲MV.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/歌曲MV.json"
},
{
"key": "美食",
@ -891,7 +798,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/美食.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/美食.json"
},
{
"key": "球类",
@ -902,7 +809,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/球类合集.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/球类合集.json"
},
{
"key": "球星",
@ -913,7 +820,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/球星合集.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/球星合集.json"
},
{
"key": "本地",
@ -944,7 +851,7 @@
"quickSearch": 0,
"filterable": 1,
"order_num": 142,
"ext": "./js/我的哔哩.js?type=url&params=./json/合集.json"
"ext": " ./js/我的哔哩.js?type=url&params= ./json/合集.json"
},
{
"key": "88看球",
@ -954,7 +861,7 @@
"style": {
"type": "list"
},
"ext": "./js/88看球.js"
"ext": " ./js/88看球.js"
},
{
"key": "曼波动漫",
@ -1012,61 +919,6 @@
"filterable": 0,
"ext": "KhY021WelCEl+6MsvwnzaPussky/EAoc9z7C4keyHaEQ+sKbXhMKd83VjTL7Ls6+m7XDIcGdziOxPv79y/h4QCvmOEJmZ1VD6dopzAVxkFzEFw=="
},
{
"key": "阿里云盘",
"name": "❤我的|阿里",
"type": 3,
"api": "csp_PanAli",
"searchable": 0,
"filterable": 0,
"changeable": 0,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/aliShare.json"
},
{
"key": "夸克云盘",
"name": "❤我的|夸克",
"type": 3,
"api": "csp_PanQuark",
"searchable": 0,
"filterable": 0,
"changeable": 0,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/quarkShare.json"
},
{
"key": "UC",
"name": "❤我的UC",
"type": 3,
"api": "csp_PanUc",
"searchable": 0,
"filterable": 0,
"changeable": 0,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/ucShare.json"
},
{
"key": "百度云盘",
"name": "❤我的|百度",
"type": 3,
"api": "csp_PanBaiDu",
"searchable": 0,
"filterable": 0,
"changeable": 0,
"style": {
"type": "list",
"ratio": 1.433
}
},
{
"key": "木偶",
"name": "❤木偶4K弹幕",
@ -1075,7 +927,7 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./json/mogg.json?"
"ext": " ./json/mogg.json?"
},
{
"key": "蜡笔",
@ -1086,7 +938,7 @@
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/lb.json?"
"ext": " ./json/lb.json?"
},
{
"key": "小米",
@ -1097,7 +949,7 @@
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/xm.json?"
"ext": " ./json/xm.json?"
},
{
"key": "至臻",
@ -1108,7 +960,7 @@
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/zz.json?"
"ext": " ./json/zz.json?"
},
{
"key": "多多",
@ -1119,21 +971,36 @@
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/yyds.json?"
"ext": " ./json/yyds.json?"
},
{
"key": "二小",
"name": "❤二小4K弹幕",
"key": "玩偶",
"name": "❤玩偶4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/ex.json?"
"ext": " ./json/wogg.json?"
},
{
"key": "概念",
"key": "雷鲸",
"name": "❤雷鲸4K",
"type": 3,
"api": "csp_PanWebShareCloudLJ",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": " ./json/lj.json"
},
{
"key": "海绵",
"name": "❤海绵4K",
"type": 3,
"api": "csp_PanWebShareCloudHM",
@ -1142,25 +1009,25 @@
"filterable": 1,
"changeable": 1,
"style": {
"type": "rect",
"type": "list",
"ratio": 1.433
},
"ext": "./json/hm.json?"
"ext": " ./json/hm.json"
},
{
"key": "Pan1",
"name": "❤Pan14K",
"name": "❤1234K",
"type": 3,
"api": "csp_PanWebShareCloudHM",
"api": "csp_PanWebShareCloud123",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "rect",
"type": "list",
"ratio": 1.433
},
"ext": "./json/pan1.json?"
"ext": " ./json/pan1.json"
},
{
"key": "趣盘",
@ -1174,7 +1041,9 @@
"type": "list",
"ratio": 1.433
},
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKhwqXDqcOUw6jDrMOiwphewpPCn8OmwprCpsKZwqHCp8KZwqBXwrPCk8Khw5Tlh7/phJvmj5XlkJNc5Yel5L6K5ZGxwrPlv6vop7notbTmu4DnrInDlsKawqbCmcKhwpfClcKTwqLDssOjw67DhMOfwqxXalDCoMOqw6/DssOjaWZmV8O2"
"ext": {
"url": "https://www.qupanshe.com"
}
},
{
"key": "聚搜",
@ -1188,7 +1057,19 @@
"type": "list",
"ratio": 1.433
},
"ext": "./json/aliyunpansearch.json"
"ext": " ./json/aliyunpansearch.json"
},
{
"key": "盘库",
"name": "❤盘库4K",
"type": 3,
"api": "csp_PanWebKuBa",
"searchable": 1,
"filterable": 0,
"changeable": 0,
"ext": {
"url": "https://panku8.com"
}
},
{
"key": "阿里云盘",
@ -1202,7 +1083,7 @@
"type": "list",
"ratio": 1.433
},
"ext": "./json/aliShare.json"
"ext": " ./json/aliShare.json"
},
{
"key": "夸克云盘",
@ -1216,7 +1097,7 @@
"type": "list",
"ratio": 1.433
},
"ext": "./json/quarkShare.json"
"ext": " ./json/quarkShare.json"
},
{
"key": "UC",
@ -1230,7 +1111,7 @@
"type": "list",
"ratio": 1.433
},
"ext": "./json/ucShare.json"
"ext": " ./json/ucShare.json"
},
{
"key": "百度云盘",

View File

@ -1,607 +0,0 @@
/*!
* Jinja Templating for JavaScript v0.1.8
* https://github.com/sstur/jinja-js
*
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
*
* In the interest of simplicity, it deviates from Jinja2 as follows:
* - Line statements, cycle, super, macro tags and block nesting are not implemented
* - auto escapes html by default (the filter is "html" not "e")
* - Only "html" and "safe" filters are built in
* - Filters are not valid in expressions; `foo|length > 1` is not valid
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
*
* Notes:
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
* - `.2` is not a valid number literal; use `0.2`
*
*/
/*global require, exports, module, define */
(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
})(this, (function(jinja) {
"use strict";
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
//non-primitive literals (array and object literals)
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
//bare identifiers such as variables and in object literals: {foo: 'value'}
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
var ACCESSOR = /(\.i|\[[@#i]\])/g;
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
//extended (english) operators
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
var LEADING_SPACE = /^\s+/;
var TRAILING_SPACE = /\s+$/;
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
var TAGS = {
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
};
var delimeters = {
'{%': 'directive',
'{{': 'output',
'{#': 'comment'
};
var operators = {
and: '&&',
or: '||',
not: '!',
is: '==',
isnot: '!='
};
var constants = {
'true': true,
'false': false,
'null': null
};
function Parser() {
this.nest = [];
this.compiled = [];
this.childBlocks = 0;
this.parentBlocks = 0;
this.isSilent = false;
}
Parser.prototype.push = function(line) {
if (!this.isSilent) {
this.compiled.push(line);
}
};
Parser.prototype.parse = function(src) {
this.tokenize(src);
return this.compiled;
};
Parser.prototype.tokenize = function(src) {
var lastEnd = 0,
parser = this,
trimLeading = false;
matchAll(src, START_TOKEN, function(open, index, src) {
//here we match the rest of the src against a regex for this tag
var match = src.slice(index + open.length).match(TAGS[open]);
match = (match ? match[0] : '');
//here we sub out strings so we don't get false matches
var simplified = match.replace(STRINGS, '@');
//if we don't have a close tag or there is a nested open tag
if (!match || ~simplified.indexOf(open)) {
return index + 1;
}
var inner = match.slice(0, 0 - open.length);
//check for white-space collapse syntax
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
if (inner.slice(-1) === '-') var wsCollapseRight = true;
inner = inner.replace(/^-|-$/g, '').trim();
//if we're in raw mode and we are not looking at an "endraw" tag, move along
if (parser.rawMode && (open + inner) !== '{%endraw') {
return index + 1;
}
var text = src.slice(lastEnd, index);
lastEnd = index + open.length + match.length;
if (trimLeading) text = trimLeft(text);
if (wsCollapseLeft) text = trimRight(text);
if (wsCollapseRight) trimLeading = true;
if (open === '{{{') {
//liquid-style: make {{{x}}} => {{x|safe}}
open = '{{';
inner += '|safe';
}
parser.textHandler(text);
parser.tokenHandler(open, inner);
});
var text = src.slice(lastEnd);
if (trimLeading) text = trimLeft(text);
this.textHandler(text);
};
Parser.prototype.textHandler = function(text) {
this.push('write(' + JSON.stringify(text) + ');');
};
Parser.prototype.tokenHandler = function(open, inner) {
var type = delimeters[open];
if (type === 'directive') {
this.compileTag(inner);
} else if (type === 'output') {
var extracted = this.extractEnt(inner, STRINGS, '@');
//replace || operators with ~
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
//put back || operators
extracted.src = extracted.src.map(function(part) {
return part.split('~').join('||');
});
var parts = this.injectEnt(extracted, '@');
if (parts.length > 1) {
var filters = parts.slice(1).map(this.parseFilter.bind(this));
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
} else {
this.push('filter(' + this.parseExpr(parts[0]) + ');');
}
}
};
Parser.prototype.compileTag = function(str) {
var directive = str.split(' ')[0];
var handler = tagHandlers[directive];
if (!handler) {
throw new Error('Invalid tag: ' + str);
}
handler.call(this, str.slice(directive.length).trim());
};
Parser.prototype.parseFilter = function(src) {
src = src.trim();
var match = src.match(/[:(]/);
var i = match ? match.index : -1;
if (i < 0) return JSON.stringify([src]);
var name = src.slice(0, i);
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
args = this.parseExpr(args, {
terms: true
});
return '[' + JSON.stringify(name) + ',' + args + ']';
};
Parser.prototype.extractEnt = function(src, regex, placeholder) {
var subs = [],
isFunc = typeof placeholder == 'function';
src = src.replace(regex, function(str) {
var replacement = isFunc ? placeholder(str) : placeholder;
if (replacement) {
subs.push(str);
return replacement;
}
return str;
});
return {
src: src,
subs: subs
};
};
Parser.prototype.injectEnt = function(extracted, placeholder) {
var src = extracted.src,
subs = extracted.subs,
isArr = Array.isArray(src);
var arr = (isArr) ? src : [src];
var re = new RegExp('[' + placeholder + ']', 'g'),
i = 0;
arr.forEach(function(src, index) {
arr[index] = src.replace(re, function() {
return subs[i++];
});
});
return isArr ? arr : arr[0];
};
//replace complex literals without mistaking subscript notation with array literals
Parser.prototype.replaceComplex = function(s) {
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
return this.injectEnt(parsed, 'v');
};
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
Parser.prototype.parseExpr = function(src, opts) {
opts = opts || {};
//extract string literals -> @
var parsed1 = this.extractEnt(src, STRINGS, '@');
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
parsed1.src = parsed1.src.replace(EOPS, function(s, before, op, after) {
return (op in operators) ? before + operators[op] + after : s;
});
//sub out non-string literals (numbers/true/false/null) -> #
// the distinction is necessary because @ can be object identifiers, # cannot
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function(s) {
return (s in constants || NUMBER.test(s)) ? '#' : null;
});
//sub out object/variable identifiers -> i
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
//remove white-space
parsed3.src = parsed3.src.replace(/\s+/g, '');
//the rest of this is simply to boil the expression down and check validity
var simplified = parsed3.src;
//sub out complex literals (objects/arrays) -> ~
// the distinction is necessary because @ and # can be subscripts but ~ cannot
while (simplified !== (simplified = this.replaceComplex(simplified)));
//now @ represents strings, # represents other primitives and ~ represents non-primitives
//replace complex variables (those with dot/subscript accessors) -> v
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v')));
//empty subscript or complex variables in subscript, are not permitted
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
simplified = simplified.replace(/[@#~v]/g, 'i');
//sub out operators
simplified = simplified.replace(OPERATORS, '%');
//allow 'not' unary operator
simplified = simplified.replace(/!+[i]/g, 'i');
var terms = opts.terms ? simplified.split(',') : [simplified];
terms.forEach(function(term) {
//simplify logical grouping
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i')));
if (!term.match(/^i(%i)*/)) {
throw new Error('Invalid expression: ' + src + " " + term);
}
});
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
parsed2.src = this.injectEnt(parsed3, 'i');
parsed1.src = this.injectEnt(parsed2, '#');
return this.injectEnt(parsed1, '@');
};
Parser.prototype.parseVar = function(src) {
var args = Array.prototype.slice.call(arguments);
var str = args.pop(),
index = args.pop();
//quote bare object identifiers (might be a reserved word like {while: 1})
if (src === 'i' && str.charAt(index + 1) === ':') {
return '"i"';
}
var parts = ['"i"'];
src.replace(ACCESSOR, function(part) {
if (part === '.i') {
parts.push('"i"');
} else if (part === '[i]') {
parts.push('get("i")');
} else {
parts.push(part.slice(1, -1));
}
});
return 'get(' + parts.join(',') + ')';
};
//escapes a name to be used as a javascript identifier
Parser.prototype.escName = function(str) {
return str.replace(/\W/g, function(s) {
return '$' + s.charCodeAt(0).toString(16);
});
};
Parser.prototype.parseQuoted = function(str) {
if (str.charAt(0) === "'") {
str = str.slice(1, -1).replace(/\\.|"/, function(s) {
if (s === "\\'") return "'";
return s.charAt(0) === '\\' ? s : ('\\' + s);
});
str = '"' + str + '"';
}
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
return JSON.parse(str);
};
//the context 'this' inside tagHandlers is the parser instance
var tagHandlers = {
'if': function(expr) {
this.push('if (' + this.parseExpr(expr) + ') {');
this.nest.unshift('if');
},
'else': function() {
if (this.nest[0] === 'for') {
this.push('}, function() {');
} else {
this.push('} else {');
}
},
'elseif': function(expr) {
this.push('} else if (' + this.parseExpr(expr) + ') {');
},
'endif': function() {
this.nest.shift();
this.push('}');
},
'for': function(str) {
var i = str.indexOf(' in ');
var name = str.slice(0, i).trim();
var expr = str.slice(i + 4).trim();
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
this.nest.unshift('for');
},
'endfor': function() {
this.nest.shift();
this.push('});');
},
'raw': function() {
this.rawMode = true;
},
'endraw': function() {
this.rawMode = false;
},
'set': function(stmt) {
var i = stmt.indexOf('=');
var name = stmt.slice(0, i).trim();
var expr = stmt.slice(i + 1).trim();
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
},
'block': function(name) {
if (this.isParent) {
++this.parentBlocks;
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
} else if (this.hasParent) {
this.isSilent = false;
++this.childBlocks;
blockName = 'block_' + (this.escName(name) || this.childBlocks);
this.push('function ' + blockName + '() {');
}
this.nest.unshift('block');
},
'endblock': function() {
this.nest.shift();
if (this.isParent) {
this.push('});');
} else if (this.hasParent) {
this.push('}');
this.isSilent = true;
}
},
'extends': function(name) {
name = this.parseQuoted(name);
var parentSrc = this.readTemplateFile(name);
this.isParent = true;
this.tokenize(parentSrc);
this.isParent = false;
this.hasParent = true;
//silence output until we enter a child block
this.isSilent = true;
},
'include': function(name) {
name = this.parseQuoted(name);
var incSrc = this.readTemplateFile(name);
this.isInclude = true;
this.tokenize(incSrc);
this.isInclude = false;
}
};
//liquid style
tagHandlers.assign = tagHandlers.set;
//python/django style
tagHandlers.elif = tagHandlers.elseif;
var getRuntime = function runtime(data, opts) {
var defaults = {
autoEscape: 'toJson'
};
var _toString = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty;
var getKeys = Object.keys || function(obj) {
var keys = [];
for (var n in obj)
if (_hasOwnProperty.call(obj, n)) keys.push(n);
return keys;
};
var isArray = Array.isArray || function(obj) {
return _toString.call(obj) === '[object Array]';
};
var create = Object.create || function(obj) {
function F() {}
F.prototype = obj;
return new F();
};
var toString = function(val) {
if (val == null) return '';
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
};
var extend = function(dest, src) {
var keys = getKeys(src);
for (var i = 0, len = keys.length; i < len; i++) {
var key = keys[i];
dest[key] = src[key];
}
return dest;
};
//get a value, lexically, starting in current context; a.b -> get("a","b")
var get = function() {
var val, n = arguments[0],
c = stack.length;
while (c--) {
val = stack[c][n];
if (typeof val != 'undefined') break;
}
for (var i = 1, len = arguments.length; i < len; i++) {
if (val == null) continue;
n = arguments[i];
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
}
return (val == null) ? '' : val;
};
var set = function(n, val) {
stack[stack.length - 1][n] = val;
};
var push = function(ctx) {
stack.push(ctx || {});
};
var pop = function() {
stack.pop();
};
var write = function(str) {
output.push(str);
};
var filter = function(val) {
for (var i = 1, len = arguments.length; i < len; i++) {
var arr = arguments[i],
name = arr[0],
filter = filters[name];
if (filter) {
arr[0] = val;
//now arr looks like [val, arg1, arg2]
val = filter.apply(data, arr);
} else {
throw new Error('Invalid filter: ' + name);
}
}
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
//auto escape if not explicitly safe or already escaped
val = filters[opts.autoEscape].call(data, val);
}
output.push(val);
};
var each = function(obj, loopvar, fn1, fn2) {
if (obj == null) return;
var arr = isArray(obj) ? obj : getKeys(obj),
len = arr.length;
var ctx = {
loop: {
length: len,
first: arr[0],
last: arr[len - 1]
}
};
push(ctx);
for (var i = 0; i < len; i++) {
extend(ctx.loop, {
index: i + 1,
index0: i
});
fn1(ctx[loopvar] = arr[i]);
}
if (len === 0 && fn2) fn2();
pop();
};
var block = function(fn) {
push();
fn();
pop();
};
var render = function() {
return output.join('');
};
data = data || {};
opts = extend(defaults, opts || {});
var filters = extend({
html: function(val) {
return toString(val)
.split('&').join('&amp;')
.split('<').join('&lt;')
.split('>').join('&gt;')
.split('"').join('&quot;');
},
safe: function(val) {
return val;
},
toJson: function(val) {
if (typeof val === 'object') {
return JSON.stringify(val);
}
return toString(val);
}
}, opts.filters || {});
var stack = [create(data || {})],
output = [];
return {
get: get,
set: set,
push: push,
pop: pop,
write: write,
filter: filter,
each: each,
block: block,
render: render
};
};
var runtime;
jinja.compile = function(markup, opts) {
opts = opts || {};
var parser = new Parser();
parser.readTemplateFile = this.readTemplateFile;
var code = [];
code.push('function render($) {');
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
code.push.apply(code, parser.parse(markup));
code.push('return $.render();');
code.push('}');
code = code.join('\n');
if (opts.runtime === false) {
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
} else {
runtime = runtime || (runtime = getRuntime.toString());
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
}
return {
render: fn
};
};
jinja.render = function(markup, data, opts) {
var tmpl = jinja.compile(markup);
return tmpl.render(data, opts);
};
jinja.templateFiles = [];
jinja.readTemplateFile = function(name) {
var templateFiles = this.templateFiles || [];
var templateFile = templateFiles[name];
if (templateFile == null) {
throw new Error('Template file not found: ' + name);
}
return templateFile;
};
/*!
* Helpers
*/
function trimLeft(str) {
return str.replace(LEADING_SPACE, '');
}
function trimRight(str) {
return str.replace(TRAILING_SPACE, '');
}
function matchAll(str, reg, fn) {
//copy as global
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
var match;
while ((match = reg.exec(str))) {
var result = fn(match[0], match.index, str);
if (typeof result == 'number') {
reg.lastIndex = result;
}
}
}
}));

File diff suppressed because one or more lines are too long

1439
欧歌/api/pako.min.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,146 +0,0 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
sys.path.append('..')
from base.spider import Spider
import requests
class Spider(Spider):
def init(self, extend=""):
pass
def getName(self):
return "hitv"
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
def homeContent(self, filter):
result = {}
cateManual = {
# "直播": "live",
'排行榜': 'rank',
"电影": "1",
"剧集": "2",
"综艺": "3",
"动画": "4",
"短片": "5"
}
classes = []
for k in cateManual:
classes.append({
'type_name': k,
'type_id': cateManual[k]
})
result['class'] = classes
return result
host = "https://wys.upfuhn.com"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/80.0.3987.149 Safari/537.36"
}
def list(self, list):
videos = []
for it in list:
videos.append({
"vod_id": it['video_site_id'],
"vod_name": it['video_name'],
"vod_pic": it['video_horizontal_url'] or it['video_vertical_url'],
"vod_remarks": it['newest_series_num'],
"vod_year": it['years'],
})
return videos
def homeVideoContent(self):
url = f'{self.host}/v1/ys_video_sites/hot?t=1'
data = requests.get(url, headers=self.headers).json()
videos = self.list(data['data']['data'])
result = {'list': videos}
return result
def categoryContent(self, tid, pg, filter, extend):
path = f'/v1/ys_video_sites?t={tid}&s_t=0&a&y&o=0&ps=21&pn={pg}'
rank = False
if tid == 'rank':
if pg == 1:
path = f'/v1/ys_video_sites/ranking'
rank = True
else:
path = ''
# elif tid == 'live' and pg == 1:
# path = f'/v1/ys_live_tvs'
videos = []
result = {}
try:
data = requests.get(self.host + path, headers=self.headers).json()
if rank:
for video in data['data']:
videos.extend(data['data'][video])
else:
videos = data['data']['data']
result = {}
result['list'] = self.list(videos)
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
except:
result['list'] = []
return result
def detailContent(self, ids):
tid = ids[0]
url = f'{self.host}/v1/ys_video_series/by_vid/{tid}'
data = requests.get(url, headers=self.headers).json()
data1 = data['data']['ys_video_site']
urls = []
for it in data['data']['data']:
urls.append(it['series_num'] + '$' + it['video_url'])
vod = {
'vod_name': data1['video_name'],
'type_name': data1['tag'],
'vod_year': data1['years'],
'vod_area': data1['area'],
'vod_director': data1['main_actor'],
'vod_content': data1['video_desc'],
'vod_play_from': '嗨皮在线',
'vod_play_url': '#'.join(urls),
}
result = {
'list': [
vod
]
}
return result
def searchContent(self, key, quick, pg=1):
url = f'{self.host}/v1/ys_video_sites/search?s={key}&o=0&ps=200&pn={pg}'
data = requests.get(url, headers=self.headers).json()
videos = data['data']['video_sites']
if data['data']['first_video_series'] is not None:
videos = [data['data']['first_video_series']] + videos
result = {}
result['list'] = self.list(videos)
result['page'] = pg
return result
def playerContent(self, flag, id, vipFlags):
result = {
'url': id,
'parse': 0,
'header': self.headers
}
return result
def localProxy(self, param):
pass

View File

@ -1,429 +0,0 @@
if (typeof Object.assign !== 'function') {
Object.assign = function() {
let target = arguments[0];
for (let i = 1; i < arguments.length; i++) {
let source = arguments[i];
for (let key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
}
// 通用免嗅探播放
let common_lazy = `js:
let html = request(input);
let hconf = html.match(/r player_.*?=(.*?)</)[1];
let json = JSON5.parse(hconf);
let url = json.url;
if (json.encrypt == '1') {
url = unescape(url);
} else if (json.encrypt == '2') {
url = unescape(base64Decode(url));
}
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
input = {
parse: 0,
jx: 0,
url: url,
};
} else {
input = url && url.startsWith('http') && tellIsJx(url) ? {parse:0,jx:1,url:url}:input;
}`;
// 默认嗅探播放
let def_lazy = `js:
input = { parse: 1, url: input, js: '' };`;
// 采集站播放
let cj_lazy = `js:
if (/\\.(m3u8|mp4)/.test(input)) {
input = { parse: 0, url: input };
} else {
if (rule.parse_url.startsWith('json:')) {
let purl = rule.parse_url.replace('json:', '') + input;
let html = request(purl);
let json = JSON.parse(html);
if (json.url) {
input = { parse: 0, url: json.url };
}
} else {
input = rule.parse_url + input;
}
}`;
function getMubans() {
const mubanDict = { // 模板字典
mx: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---/',
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
searchable: 2,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true,
推荐: '.cbox_list;*;*;*;*;*',
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
二级: {
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
img: '.vodlist_thumb&&data-original',
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
content: '.content_desc&&span&&Text',
tabs: '.play_source_tab&&a',
lists: '.content_playlist:eq(#id) li',
},
搜索: '*',
},
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(0):lt(10);a&&Text;a&&href;/(\\d+)',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级: {
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
img: '.lazyload&&data-original||data-src||src',
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
content: '.module-info-introduction&&Text',
tabs: '.module-tab-item',
lists: '.module-play-list:eq(#id) a',
tab_text: 'div--small&&Text',
},
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
},
mxone5: {
title: '',
host: '',
url: '/show/fyclass--------fypage---.html',
searchUrl: '/search/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?)\.html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
二级: {
title: 'h1&&Text;.tag-link&&Text',
img: '.module-item-pic&&img&&data-src',
desc: '.video-info-items:eq(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
content: '.vod_content&&Text',
tabs: '.module-tab-item',
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
tab_text: 'div--small&&Text',
},
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
},
首图: {
title: '',
host: '',
url: '/vodshow/fyclass--------fypage---/',
searchUrl: '/vodsearch/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级: {
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
img: '.myui-content__thumb .lazyload&&data-original',
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
content: '.content&&Text',
tabs: '.myui-panel__head&&li',
// tabs: '.nav-tabs&&li',
lists: '.myui-content__list:eq(#id) li',
},
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&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;.*/(.*?).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
一级: '.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)&&a&&Text',
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
img: '.stui-content__thumb .lazyload&&data-original',
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
content: '.detail&&Text',
tabs: '.stui-pannel__head h3',
tabs1: '.stui-vodlist__head h3',
lists: '.stui-content__playlist:eq(#id) li',
},
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
},
默认: {
title: '',
host: '',
url: '',
searchUrl: '',
searchable: 2,
quickSearch: 0,
filterable: 0,
filter: '',
filter_url: '',
filter_def: {},
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
cate_exclude: '',
play_parse: true,
lazy: def_lazy,
double: true,
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
一级: '列表;标题;图片;描述;链接;详情',
二级: {
title: 'vod_name;vod_type',
img: '图片链接',
desc: '主要信息;年代;地区;演员;导演',
content: '简介',
tabs: '',
lists: 'xx:eq(#id)&&a',
tab_text: 'body&&Text',
list_text: 'body&&Text',
list_url: 'a&&href',
},
搜索: '列表;标题;图片;描述;链接;详情',
},
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;a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
一级: '.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: common_lazy,
double: true,
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
二级: {
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
img: '.hl-lazy&&data-original',
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
content: '.hl-content-text&&Text',
tabs: '.hl-tabs&&a',
tab_text: 'a--span&&Text',
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: common_lazy,
double: true,
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
二级: {
title: 'h2&&Text;.deployment&&Text',
img: '.lazy&&data-original',
desc: '.deployment&&Text',
content: '.ec-show&&Text',
tabs: '#tag&&a',
lists: '.play_list_box:eq(#id)&&li',
},
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
},
短视: {
title: '',
host: '', // homeUrl:'/',
url: '/channel/fyclass-fypage.html',
searchUrl: '/search.html?wd=**',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
},
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '解析|动态',
play_parse: true,
lazy: common_lazy,
limit: 6,
double: true, // 推荐内容是否双层定位
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
二级: {
title: 'h1&&Text;.content-rt&&p:eq(0)&&Text',
img: '.img&&img&&data-src',
desc: '.content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text',
content: '.zkjj_a&&Text',
tabs: '.py-tabs&&option',
lists: '.player:eq(#id) li',
},
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
},
短视2: {
title: '',
host: '',
class_name: '电影&电视剧&综艺&动漫',
class_url: '1&2&3&4',
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2,
quickSearch: 0,
headers: {
'User-Agent': 'MOBILE_UA'
},
url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable: 0, //是否启用分类筛选,
filter_url: '',
filter: {},
filter_def: {},
detailUrl: '/index.php/vod/detail/id/fyid.html',
play_parse: true,
lazy: common_lazy,
limit: 6,
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
二级: {
title: '.slide-info-title&&Text;.slide-info:eq(2)--strong&&Text',
img: '.detail-pic&&data-original',
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
content: '#height_limit&&Text',
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
tab_text: 'a--span&&Text',
lists: '.anthology-list-box:eq(#id) li',
},
搜索: 'json:list;name;pic;;id',
},
采集1: {
title: '',
host: '',
homeTid: '13',
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
// class_url: '1&2&3&4',
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
class_parse: 'json:class;',
limit: 20,
multi: 1,
searchable: 2, //是否启用全局搜索,
quickSearch: 1, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
play_parse: true,
parse_url: '',
lazy: cj_lazy,
推荐: '*',
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
二级: `js:
let html=request(input);
html=JSON.parse(html);
let data=html.list;
VOD=data[0];`,
搜索: '*',
},
};
return JSON.parse(JSON.stringify(mubanDict));
}
var mubanDict = getMubans();
var muban = getMubans();
export default {
muban,
getMubans
};

225
欧歌/api/金牌.py Normal file
View File

@ -0,0 +1,225 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import json
import sys
import threading
import uuid
import requests
sys.path.append('..')
from base.spider import Spider
import time
from Crypto.Hash import MD5, SHA1
class Spider(Spider):
'''
配置示例
{
"key": "xxxx",
"name": "xxxx",
"type": 3,
"api": ".所在路径/金牌.py",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": {
"site": "https://www.jiabaide.cn,域名2,域名3"
}
},
'''
def init(self, extend=""):
if extend:
hosts=json.loads(extend)['site']
self.host = self.host_late(hosts)
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
def homeContent(self, filter):
cdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/get/filer/type", headers=self.getheaders()).json()
fdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/get/filer/list", headers=self.getheaders()).json()
result = {}
classes = []
filters={}
for k in cdata['data']:
classes.append({
'type_name': k['typeName'],
'type_id': str(k['typeId']),
})
sort_values = [{"n": "最近更新", "v": "2"},{"n": "人气高低", "v": "3"}, {"n": "评分高低", "v": "4"}]
for tid, d in fdata['data'].items():
current_sort_values = sort_values.copy()
if tid == '1':
del current_sort_values[0]
filters[tid] = [
{"key": "type", "name": "类型",
"value": [{"n": i["itemText"], "v": i["itemValue"]} for i in d["typeList"]]},
*([] if not d["plotList"] else [{"key": "v_class", "name": "剧情",
"value": [{"n": i["itemText"], "v": i["itemText"]}
for i in d["plotList"]]}]),
{"key": "area", "name": "地区",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["districtList"]]},
{"key": "year", "name": "年份",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["yearList"]]},
{"key": "lang", "name": "语言",
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["languageList"]]},
{"key": "sort", "name": "排序", "value": current_sort_values}
]
result['class'] = classes
result['filters'] = filters
return result
def homeVideoContent(self):
data1 = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/home/all/list", headers=self.getheaders()).json()
data2=self.fetch(f"{self.host}/api/mw-movie/anonymous/home/hotSearch",headers=self.getheaders()).json()
data=[]
for i in data1['data'].values():
data.extend(i['list'])
data.extend(data2['data'])
vods=self.getvod(data)
return {'list':vods}
def categoryContent(self, tid, pg, filter, extend):
params = {
"area": extend.get('area', ''),
"filterStatus": "1",
"lang": extend.get('lang', ''),
"pageNum": pg,
"pageSize": "30",
"sort": extend.get('sort', '1'),
"sortBy": "1",
"type": extend.get('type', ''),
"type1": tid,
"v_class": extend.get('v_class', ''),
"year": extend.get('year', '')
}
data = self.fetch(f"{self.host}/api/mw-movie/anonymous/video/list?{self.js(params)}", headers=self.getheaders(params)).json()
result = {}
result['list'] = self.getvod(data['data']['list'])
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/detail?id={ids[0]}",headers=self.getheaders({'id':ids[0]})).json()
vod=self.getvod([data['data']])[0]
vod['vod_play_from']='嗷呜有金牌'
vod['vod_play_url'] = '#'.join(
f"{i['name'] if len(vod['episodelist']) > 1 else vod['vod_name']}${ids[0]}@@{i['nid']}" for i in
vod['episodelist'])
vod.pop('episodelist', None)
return {'list':[vod]}
def searchContent(self, key, quick, pg="1"):
params = {
"keyword": key,
"pageNum": pg,
"pageSize": "8",
"sourceCode": "1"
}
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/searchByWord?{self.js(params)}",headers=self.getheaders(params)).json()
vods=self.getvod(data['data']['result']['list'])
return {'list':vods,'page':pg}
def playerContent(self, flag, id, vipFlags):
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'sec-ch-ua-platform': '"Windows"',
'DNT': '1',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'Origin': self.host,
'Referer': f'{self.host}/'
}
ids=id.split('@@')
pdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v2/video/episode/url?clientType=1&id={ids[0]}&nid={ids[1]}",headers=self.getheaders({'clientType':'1','id': ids[0], 'nid': ids[1]})).json()
vlist=[]
for i in pdata['data']['list']:vlist.extend([i['resolutionName'],i['url']])
return {'parse':0,'url':vlist,'header':self.header}
def localProxy(self, param):
pass
def host_late(self, url_list):
if isinstance(url_list, str):
urls = [u.strip() for u in url_list.split(',')]
else:
urls = url_list
if len(urls) <= 1:
return urls[0] if urls else ''
results = {}
threads = []
def test_host(url):
try:
start_time = time.time()
response = requests.head(url, timeout=1.0, allow_redirects=False)
delay = (time.time() - start_time) * 1000
results[url] = delay
except Exception as e:
results[url] = float('inf')
for url in urls:
t = threading.Thread(target=test_host, args=(url,))
threads.append(t)
t.start()
for t in threads:
t.join()
return min(results.items(), key=lambda x: x[1])[0]
def md5(self, sign_key):
md5_hash = MD5.new()
md5_hash.update(sign_key.encode('utf-8'))
md5_result = md5_hash.hexdigest()
return md5_result
def js(self, param):
return '&'.join(f"{k}={v}" for k, v in param.items())
def getheaders(self, param=None):
if param is None:param = {}
t=str(int(time.time()*1000))
param['key']='cb808529bae6b6be45ecfab29a4889bc'
param['t']=t
sha1_hash = SHA1.new()
sha1_hash.update(self.md5(self.js(param)).encode('utf-8'))
sign = sha1_hash.hexdigest()
deviceid = str(uuid.uuid4())
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'sign': sign,
't': t,
'deviceid':deviceid
}
return headers
def convert_field_name(self, field):
field = field.lower()
if field.startswith('vod') and len(field) > 3:
field = field.replace('vod', 'vod_')
if field.startswith('type') and len(field) > 4:
field = field.replace('type', 'type_')
return field
def getvod(self, array):
return [{self.convert_field_name(k): v for k, v in item.items()} for item in array]

Binary file not shown.

View File

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

View File

@ -18,5 +18,5 @@
"type_id": "3"
}
],
"Cookie": "bbs_sid=ducbgilqu67ff2oirbbh9aq7ol;bbs_token=KLC2C9dxzxxpvoGd4vV8VKgN_2FM1Fbe_2B_2BLShggfWjEmh1kmEA"
"Cookie": "bbs_token=FA8pLqzdH_2BRZcE3NSxK16kAtCl5DGcWlSstttSkYFQ6Wuw1J; bbs_sid=rj76f5flpvqduij8c460dqhdul; _xn_accesscount_visited=1"
}

33
欧歌/json/lj.json Normal file
View File

@ -0,0 +1,33 @@
{
"SiteUrl": "https://www.leijing.xyz",
"Classes": [
{
"type_name": "电影",
"type_id": "42204681950354"
},
{
"type_name": "剧集",
"type_id": "42204684250355"
},
{
"type_name": "影视原盘",
"type_id": "42212287587456"
},
{
"type_name": "综艺",
"type_id": "42210356650363"
},
{
"type_name": "动漫",
"type_id": "42204792950357"
},
{
"type_name": "纪录片",
"type_id": "42204697150356"
},
{
"type_name": "演唱会",
"type_id": "42317879720298"
}
]
}

View File

@ -1,5 +1,5 @@
{
"SiteUrl": "https://liuqu.banye.tech:7086",
"SiteUrl": "https://mogg.banye.tech:7086",
"Domains": [
"http://123.666291.xyz",
"https://mogg.5568.eu.org",

View File

@ -1,5 +1,5 @@
{
"SiteUrl": "https://pan1.me",
"SiteUrl": "https://time.123in.link",
"Classes": [
{
"type_name": "电影",

View File

@ -7,5 +7,41 @@
"folder": "0"
}
]
},
{
"name": "幼儿教育",
"folders": [
{
"shareId": "a08f66152533",
"folder": "0"
}
]
},
{
"name": "4K影视",
"folders": [
{
"shareId": "7568042397a9",
"folder": "0a9f0d04a8704f35b18763948ece0593"
}
]
},
{
"name": "短剧合集1",
"folders": [
{
"shareId": "885fd4ba2d92",
"folder": "81ca012717cb45228f237e26d8da20c8"
}
]
},
{
"name": "短剧合集2",
"folders": [
{
"shareId": "a1cda418984f",
"folder": "7e09c18d7f8045f983eca086be8ddb8f"
}
]
}
]
]

View File

@ -1,11 +0,0 @@
[
{
"name": "我的网盘",
"folders": [
{
"shareId": "",
"folder": "0"
}
]
}
]

2112
欧歌/json/wogg.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +1,18 @@
{
"规则名": "短剧屋",
"规则名": "八号影视",
"规则作者": "",
"请求头参数": "手机",
"请求头参数": "User-Agent$手机#accept$text/html",
"网页编码格式": "UTF-8",
"图片是否需要代理": "0",
"是否开启获取首页数据": "1",
"首页推荐链接": "http://www.metaysw.com",
"首页列表数组规则": "body&&.vod-vodlist",
"首页片单列表数组规则": "li",
"是否开启获取首页数据": "0",
"首页推荐链接": "http://www.bahaotv.com",
"首页列表数组规则": "body&&.show-vod-list",
"首页片单列表数组规则": ".myui-vodbox-content",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
"分类链接": "http://www.metaysw.com/type/{cateId}-{catePg}.html",
"分类名称": "短剧",
"分类名称替换词": "lianxuju",
"分类链接": "http://www.bahaotv.com/vodshow/{cateId}--------{catePg}---.html",
"分类名称": "电影&电视剧&动漫",
"分类名称替换词": "movie&tvseries&anime",
"筛选数据": {},
//"筛选数据": "ext",
//{cateId}
@ -34,25 +34,25 @@
"筛选排序名称": "时间&人气&评分",
"筛选排序替换词": "time&hits&score",
"分类截取模式": "1",
"分类列表数组规则": ".vod-vodlist&&li",
"分类列表数组规则": ".show-vod-list&&.myui-vodbox-content",
"分类片单是否Jsoup写法": "1",
"分类片单标题": ".vod-vodlist__title&&Text",
"分类片单标题": ".title&&Text",
"分类片单链接": "a&&href",
"分类片单图片": ".lazyload&&data-original",
"分类片单副标题": ".pic-text&&Text",
"分类片单链接加前缀": "http://www.metaysw.com",
"分类片单图片": "img&&src",
"分类片单副标题": ".right&&Text",
"分类片单链接加前缀": "http://www.bahaotv.com",
"分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$手机",
"搜索链接": "http://www.metaysw.com/search/page/{SearchPg}/wd/{wd}.html",
"搜索请求头参数": "User-Agent$手机#accept$text/html",
"搜索链接": "http://www.bahaotv.com/vodsearch/-------------.html?wd={wd}",
"POST请求数据": "",
"搜索截取模式": "1",
"搜索列表数组规则": ".vod-vodlist&&li",
"搜索列表数组规则": ".show-vod-list&&.myui-vodbox-content",
"搜索片单是否Jsoup写法": "1",
"搜索片单图片": ".lazyload&&data-original",
"搜索片单标题": ".vod-vodlist__title&&Text",
"搜索片单图片": "img&&src",
"搜索片单标题": ".title&&Text",
"搜索片单链接": "a&&href",
"搜索片单副标题": ".pic-text&&Text",
"搜索片单链接加前缀": "http://www.metaysw.com",
"搜索片单副标题": ".right&&Text",
"搜索片单链接加前缀": "http://www.bahaotv.com",
"搜索片单链接加后缀": "",
"链接是否直接播放": "0",
"直接播放链接加前缀": "https://live.52sf.ga/huya/",
@ -62,20 +62,20 @@
"类型详情": "",
"年代详情": "",
"地区详情": "",
"演员详情": ".vod-content__detail&&p,2&&Text!主演:",
"简介详情": "",
"线路列表数组规则": ".dropdown-menu&&li",
"线路标题": "a&&Text",
"播放列表数组规则": "body&&.vod-content__playlist",
"选集列表数组规则": "li",
"演员详情": ".detail-box&&.director,1&&Text!主演:",
"简介详情": ".intro&&Text",
"线路列表数组规则": ".nav-btn&&li",
"线路标题": "Text",
"播放列表数组规则": "body&&[id^=playlist]",
"选集列表数组规则": "a",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
"是否反转选集序列": "0",
"选集链接加前缀": "http://www.metaysw.com",
"选集链接加前缀": "http://www.bahaotv.com",
"选集链接加后缀": "",
"分析MacPlayer": "0",
"是否开启手动嗅探": "0",
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
"手动嗅探视频链接过滤词": ".html#=http"
}
}

View File

@ -0,0 +1,7 @@
{
"请求头": "User-Agent$MOBILE_UA",
"编码": "UTF-8",
"分类": "电影$1#电视剧$2#综艺$3#动漫$4",
"类型": "动作片$6#喜剧片$7#爱情片$8#科幻片$9#奇幻片$10#恐怖片$11#剧情片$12#战争片$20#动画片$26#悬疑片$22#冒险片$23#犯罪片$24#惊悚片$45#歌舞片$46#灾难片$47#网络片$48||国产剧$13#港台剧$14#日剧$15#韩剧$33#欧美剧$16#泰剧$34#新马剧$35#其他剧$25||内地综艺$27#港台综艺$28#日本综艺$29#韩国综艺$36#欧美综艺$30#新马泰综艺$37#其他综艺$38||国产动漫$31#日本动漫$32#韩国动漫$39#港台动漫$40#新马泰动漫$41#欧美动漫$42#其他动漫$43",
"分类url": "https://www.ylys.tv/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html"
}

View File

@ -0,0 +1,6 @@
{
"简介": "简介:</em>&&",
"数组": "row\">&&</div></div>",
"分类url": "https://www.hainatv.net/index.php/vod/show/area/{area}/id/{cateId}/lang/{lang}/page/{catePg}/year/{year}.html",
"分类": "电影$1#电视剧$2#综艺$3#动漫$4#短剧$59"
}

View File

@ -0,0 +1,8 @@
{
"简介": "tt\" style=*>&&</div>",
"数组": "<a&&module-item-pic",
"副标题": "module-item-text\">&&</div>",
"搜索url": "https://xiuer.pro/vod/search/?wd={wd}",
"分类url": "https://xiuer.pro/show/{cateId}/area/{area}/class/{class}/page/{catePg}/year/{year}/",
"分类": "短剧$duanju#电视剧$dianshiju#电影$dianying#动漫$dongman#综艺$zongyi"
}

View File

@ -0,0 +1,5 @@
{
"分类": "电影$1#剧集$2#综艺$3#动漫$4",
"类型": "动作片$1#喜剧片$2#爱情片$21#海外动漫$3#科幻片$4#恐怖片$5#剧情片$6#战争片$7#纪录片$8#其他$9",
"分类url": "https://www.xgitv.com/vshow/{cateId}-----------.html"
}

View File

@ -0,0 +1,7 @@
{
"请求头": "User-Agent$MOBILE_UA",
"编码": "UTF-8",
"分类url": "https://v.aiwule.com/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html",
"分类": "电影$20#电视剧$21#动漫$23#综艺$22#短剧$47",
"简介": "简介:&&"
}

View File

@ -0,0 +1,81 @@
{
"规则名": "骚火电影VIP",
"规则作者": "",
"请求头参数": "User-Agent$MOBILE_UA#Referer$https://saohuo.tv",
"网页编码格式": "UTF-8",
"图片是否需要代理": "0",
"是否开启获取首页数据": "0",
"首页推荐链接": "https://saohuo.tv/",
"首页列表数组规则": "body&&.v_list",
"首页片单列表数组规则": "li",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
"分类链接": "https://saohuo.tv/list/{cateId}-{catePg}.html[firstPage=https://saohuo.tv/list/{cateId}.html]",
"分类名称": "电影&电视剧&动漫",
"分类名称替换词": "1&2&13",
"筛选数据": {},
//"筛选数据": "ext",
//{cateId}
"筛选子分类名称": "",
"筛选子分类替换词": "",
//{class}
"筛选类型名称": "",
"筛选类型替换词": "*",
//{area}
"筛选地区名称": "",
"筛选地区替换词": "*",
//{year}
"筛选年份名称": "",
"筛选年份替换词": "*",
//{lang}
"筛选语言名称": "",
"筛选语言替换词": "*",
//{by}
"筛选排序名称": "时间&人气&评分",
"筛选排序替换词": "time&hits&score",
"分类截取模式": "1",
"分类列表数组规则": ".v_list&&li",
"分类片单是否Jsoup写法": "1",
"分类片单标题": "a&&title",
"分类片单链接": "a&&href",
"分类片单图片": "img&&data-original",
"分类片单副标题": ".v_note&&Text",
"分类片单链接加前缀": "https://saohuo.tv",
"分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$手机#Accept$text/html",
"搜索链接": "https://saohuo.tv/s-{wd}---------{SearchPg}.html",
"POST请求数据": "",
"搜索截取模式": "1",
"搜索列表数组规则": ".v_list&&li",
"搜索片单是否Jsoup写法": "1",
"搜索片单图片": "img&&data-original",
"搜索片单标题": "a&&title",
"搜索片单链接": "a&&href",
"搜索片单副标题": ".v_note&&Text",
"搜索片单链接加前缀": "https://saohuo.tv",
"搜索片单链接加后缀": "",
"链接是否直接播放": "0",
"直接播放链接加前缀": "",
"直接播放链接加后缀": "",
"直接播放直链视频请求头": "",
"详情是否Jsoup写法": "1",
"类型详情": "",
"年代详情": "",
"地区详情": "",
"演员详情": "",
"简介详情": ".p_txt&&Text",
"线路列表数组规则": ".from_list&&li",
"线路标题": "Text",
"播放列表数组规则": ".play_list&&li",
"选集列表数组规则": "a",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
"是否反转选集序列": "1",
"选集链接加前缀": "https://saohuo.tv",
"选集链接加后缀": "",
"分析MacPlayer": "0",
"是否开启手动嗅探": "0",
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
"手动嗅探视频链接过滤词": ".html#=http"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1 +1 @@
aMpWZFkXFecm4hhqZ9yfzBd24WjHV7lEq0TzPXvh8brK9+zi6x5XIpulpwecy92meWuHIvZTeo5jkTch1cNoIHlBErZixB1hzpJ1I6ptPQgHxp+ZCoBpPPZ6UB/jpMssKHVA4QVqXt+zl01X/XSB1VCx0Bml5xCczSFbKCe2MEn0ucTkQtUs9f4dUYprXoFJCfGEIjUF1yOWCKQwUjTYWzMBoj7uWaxEcWfXnnvGvO0BhmEStZ4HOkEVKG7WeLB3Jw11tb61vHpyvDXduNSjYcRNxr8EO9YIgDQsWn4lTgqILnClSUFmjufNkI3IluT1qctR4IVWJPQ7Y7ANQ9kxKMIli2xJmwILFqIsK7kqKOXc3nezbMCS0I+epES9fHMPpczsQPcBfpQT1o485uRClN+dM83gcAn9z90ucIQOKUBbkfmQ+WnvKyApUyFe3aFBkTYj+rFSp1bleilRDoa+yIY05cpDyItqqccy8GBk+dgQ755CMY/VKN9vLlxdoUJMCWZB1FR8VhnW7RpbYc08DOpNChGqKJ6Cwy1qVM/jt61WR2x1VaKreS59j1IMuxDuEBdhlmt+QLsbSWD7blw0ji9AFHAZu3M31oN5D2feEgKZ5oPAiWjpKw7knBA/raonihUn1oE+0e1ILzgrm3uLwb0hpd6xeeRv0vYW2FDCoe3A=
adgHZD4T/7tWFulh0C127b9BxztLdgaMQTADJnxZKZbY3ckvairRpCHy4DPsalkJ9gSwgZCDLdy4KBeQLIkceHOCS3Mu2XUxmJoneDAGC0e0spaKT/5U94AdpsDRBWWNtIcqbBwDbaTbLNnjlCBq0AYJceS9Kjm06ECDMd2dGe/KW3J76qu/DmsPuAmnVKn8Q3uSL2uhtsTuukMiEo0/mpxwlwSnuzKnZZhEaplyj5eo4iB7gcnPUzFi8YAQxziTD0MQZYk4vAaV2bpzUMIYXCtb+643J0JYn3In71iBNnncqF4a7tVaO+sj1rAtYwtAHZfyVKRmK8VrIKRxMCT1g9GQ7XF7oxsC/nimhCSWy3Rd8AU91E7hWaFxFAteN7X3+eht6q6fIrpb0tmUHyAR3x5GpES0mSs21xmQk1WhDRwEJLdU/RHyODDhgR+fxALd5sa42IJG6GKMWUKaYBUcANzDdDrQle256UEeh1w9zN0AWQys2rlp5OTk+1yqtlR0/+yV/N+cKaC8G1IkBFEedcAdKlDMvSsxH2xzKuIfpdur1vc8gL72/5YLQt6lR4HRkcbFUjY7tHNY/VVAMkDzMVP4PHdq+kdXT7RpHOEwEukvaG/tsf8EaVKk83LikN98Xpa/HzRuTv4xmFvfb5bKCTHL+T9523/6tvUQaQ+mNyAA=

View File

@ -51,24 +51,13 @@
"http://feimaoai.site",
"http://www.labi88.sbs"
],
"threadinfo": {
"chunksize": 512,
"threads": 16
},
"url_key": "Duopan2"
}
},
{
"key": "csp_XMUC",
"name": "🍚┃小米┃UC",
"type": 3,
"api": "csp_Duopan",
"filterable": 1,
"ext": {
"site_urls": [
"http://www.mucpan.cc",
"https://milvdou.fun",
"https://54271.fun"
],
"url_key": "XMUC"
}
},
{
"key": "csp_Netfixtv",
"name": "💌┃️至臻┃影视",
@ -79,16 +68,15 @@
"site_urls": [
"http://xiaomi666.fun",
"https://xiaomiai.site",
"https://mihdr.top",
"https://www.mihdr.top",
"http://www.miqk.cc",
"https://mihdr.top"
"https://www.zhizhenpan.fun"
],
"url_key": "Netfixtv2",
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
"ucCookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
"quarkCookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
"threadinfo": {
"chunksize": 450,
"threads": 10
"chunksize": 512,
"threads": 16
}
}
},

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -17,6 +17,7 @@
"name": "👽玩偶哥哥┃4K弹幕",
"type": 3,
"api": "csp_WoGGGuard",
"timeout": 30,
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
@ -125,17 +126,6 @@
"quickSearch": 1,
"changeable": 1
},
{
"key": "神车",
"name": "🐻小熊┃秒播",
"type": 3,
"api": "csp_AppSKGuard",
"timeout": 10,
"searchable": 1,
"quickSearch": 0,
"changeable": 0,
"ext": "rfOX1voDIQhH8epBwtCFsq+8syyZ18T30GkibomjS1xHcE9fpWU7oKJ1cO9K0M5hrnOHZ9dKjiJz5HEyTr57RZHCqunfFT7jH/mEy+uqVyo="
},
{
"key": "Lib",
"name": "🌟立播┃秒播",
@ -172,17 +162,6 @@
"quickSearch": 1,
"changeable": 1
},
{
"key": "溢彩",
"name": "💡流光┃秒播",
"type": 3,
"api": "csp_AppSxGuard",
"timeout": 10,
"searchable": 1,
"quickSearch": 1,
"changeable": 1,
"ext": "rfOb1uAWbkRHp7hdxprG9un3+T/f19e82TUvZMviAElDfhsS/jcju7U0fe1MnN1h63CTaYIPjmEw9C0qVsgBO8um85+eGlSkG/r2q6m0DA=="
},
{
"key": "比特",
"name": "🍄比特┃手机",
@ -216,17 +195,6 @@
"changeable": 1,
"ext": "uqGL1bNENEIVq+dC1p/Y9uWjuA=="
},
{
"key": "兄弟",
"name": "🍊水星┃多线",
"type": 3,
"api": "csp_AppSxGuard",
"timeout": 10,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "rfOb1uAWbkRHp7hdxprG9un3+SLP183q3ik3cJDiAwlFdF8L6SIvrvc9LrpTyIg76T7QJZdEkWNj43wiSaA0TJyQpu2IF2jsSLWFx7WkAmG40hFxJ1tI+Jf+EVG8DtoDRcNi+TtVGULnWrSz3EWnVcxR3EJhXnrwYWe1kJtNW5txuHAO"
},
{
"key": "热播",
"name": "📺热播┃多线",
@ -239,6 +207,17 @@
"changeable": 1,
"ext": "uqGL1bNENExT7/hGxpSE5qU="
},
{
"key": "兄弟",
"name": "🍊水星┃多线",
"type": 3,
"api": "csp_AppSxGuard",
"timeout": 10,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "rfOb1uAWbkRHp7hdxprG9un3+SLP183q3ik3cJDiAwlFdF8L6SIvrvc9LrpTyIg76T7QJZdEkWNj43wiSaA0TJyQpu2IF2jsSLWFx7WkAmG40hFxJ1tI+Jf+EVG8DtoDRcNi+TtVGULnWrSz3EWnVcxR3EJhXnrwYWe1kJtNW5txuHAO"
},
{
"key": "欢视",
"name": "👓欢视┃多线",
@ -455,6 +434,19 @@
"ratio": 3.8
}
},
{
"key": "PanSso",
"name": "🐌盘他┃三盘",
"type": 3,
"api": "csp_PanSsoGuard",
"searchable": 1,
"quickSearch": 1,
"changeable": 0,
"ext": {
"Cloud-drive": "http://127.0.0.1:9978/file/TVBox/Cloud-drive.txt",
"from": "4k|auto"
}
},
{
"key": "YpanSo",
"name": "🐟盘她┃三盘",

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