Up
This commit is contained in:
Liu
2025-04-15 02:21:22 +08:00
parent 3a5d2e13fd
commit 40a07cbbc2
35 changed files with 41229 additions and 19359 deletions

View File

@@ -4,14 +4,14 @@
"sites": [ "sites": [
{ {
"key": "豆豆", "key": "豆豆",
"name": "🌈豆瓣┃请测试完删除处理 夸克app打开加入夸克资源群ID594986235", "name": "🌈豆瓣┃请测试完删除处理 由于公益资金压力米UC已经合并至至臻",
"type": 3, "type": 3,
"api": "csp_DoubanGuard", "api": "csp_DoubanGuard",
"searchable": 0 "searchable": 0
}, },
{ {
"key": "config", "key": "config",
"name": "⚙云盘┃配置中心 0326 修复U C无需要配置UT 直接上车", "name": "⚙云盘┃配置中心 0414修复UC 存在起播慢的问题 ",
"type": 3, "type": 3,
"api": "csp_ConfigGuard", "api": "csp_ConfigGuard",
"searchable": 0 "searchable": 0
@@ -32,9 +32,9 @@
"https://www.zhizhenpan.fun/" "https://www.zhizhenpan.fun/"
], ],
"url_key": "Netfixtv", "url_key": "Netfixtv",
"token": "http://127.0.0.1:9978/file/TVBox/token.txt", "token": "",
"ucCookie": "http://127.0.0.1:9978/file/TVBox/uc.txt", "ucCookie": "",
"quarkCookie": "http://127.0.0.1:9978/file/TVBox/quark.txt", "quarkCookie": "",
"threadinfo": { "threadinfo": {
"chunksize": 400, "chunksize": 400,
"threads": 12 "threads": 12
@@ -51,31 +51,6 @@
"filterable": 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+drzR5a6bo7DML9hTEHvIuMN0JxvcbUflFgvOz4etZ9cUsZ0b7NskUhkBZr0Id8jSF6uh2VLWSCg2CtmH5o1TtTNh7M3/ltwQq//Spr2kX7vyJVyHNYbVu/LbyQCphXA69Yz8WjqVrK0GsjL+Ik3h6CQSeUSxVsmsygbTWfjFq5Wq6CYigSEVi1MJIiKNCS5cp8Ghq15UINDOnFKRERcz89eu5dSsR9aQX6BVNMdZLwSzxdX+4hT32MaBORYsrm3FFWArSTQdgO0XpnwCxoXyrlOZZA6ewEqkwuIgoDjFOeQEB0B1XkA9COGXhBBN/U253mGVMtzwHTCzpHTSk5MFVpkfjoyaDWZG1SEKMnp7afikfGkM3rn+Vw7Rp3VaPow/4r9kBYdtOiANxRr3/xPWxJdwx8M3BYw8xIlENODkJxzIlYel5FzLMKsR7ZrsZA="
}, },
{
"key": "csp_UC",
"name": "🍚小米┃UC123",
"type": 3,
"changeable": "0",
"quickSearch": 1,
"api": "csp_DuopanGuard",
"filterable": 1,
"ext": {
"site_urls": [
"https://www.54271.fun/",
"https://54271.fun/",
"https://www.mucpan.cc/",
"https://mucpan.cc/"
],
"url_key": "UC",
"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": 400,
"threads": 12
}
}
},
{ {
"key": "csp_Bili", "key": "csp_Bili",
"name": "💯哔哩┃哔哩", "name": "💯哔哩┃哔哩",
@@ -83,7 +58,7 @@
"api": "csp_BiliGuard", "api": "csp_BiliGuard",
"searchable": 1, "searchable": 1,
"ext": { "ext": {
"json": "./json/bili.json", "json": "./json/1744612665263_bili.json",
"cookie": "" "cookie": ""
}, },
"style": { "style": {
@@ -268,12 +243,12 @@
}, },
{ {
"key": "csp_MiSou", "key": "csp_MiSou",
"name": "🔍米搜┃夸克", "name": "🔍米搜┃盘聚",
"type": 3, "type": 3,
"quickSearch": 1, "quickSearch": 1,
"changeable": "0", "changeable": "0",
"api": "csp_MiSouGuard", "api": "csp_MiSouGuard",
"ext": "http://127.0.0.1:9978/file/TVBox/quark.txt" "ext": ""
}, },
{ {
"key": "听书", "key": "听书",
@@ -300,7 +275,7 @@
"type": 3, "type": 3,
"api": "csp_PushGuard", "api": "csp_PushGuard",
"searchable": 0, "searchable": 0,
"ext": "http://127.0.0.1:9978/file/TVBox/token.txt" "ext": ""
} }
], ],
"parses": [ "parses": [
@@ -341,13 +316,16 @@
"name": "V4聚合卡顿请按左┃右键换线", "name": "V4聚合卡顿请按左┃右键换线",
"type": 0, "type": 0,
"url": "./lives/V4聚合卡顿请按左┃右键换线.txt", "url": "./lives/V4聚合卡顿请按左┃右键换线.txt",
"epg": "" "playerType":2,
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
"logo":"https://epg.v1.mk/logo/{name}.png"
}, },
{ {
"name": "平台直播", "name": "平台直播",
"type": 0, "type": 0,
"url": "./lives/平台直播.txt", "url": "./lives/平台直播.txt",
"epg": "" "ua":"okhttp/3.15",
"playerType":2
} }
], ],
"rules": [ "rules": [

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

View File

@@ -0,0 +1,46 @@
{
"class": [
{"type_name": "演唱会","type_id": "演唱会4K"},
{"type_name": "歌曲","type_id": "热歌"},
{"type_name": "音乐","type_id": "纯音乐"},
{"type_name": "舞蹈","type_id": "舞蹈"},
{"type_name": "体育","type_id": "体育"},
{"type_name": "戏曲","type_id": "戏曲"},
{"type_name": "旅游","type_id": "旅游"},
{"type_name": "风景","type_id": "风景4K"},
{"type_name": "美食","type_id": "美食超清"},
{"type_name": "搞笑","type_id": "搞笑"},
{"type_name": "儿童","type_id": "儿童"},
{"type_name": "纪录","type_id": "纪录片超清"},
{"type_name": "综艺","type_id": "综艺大全"},
{"type_name": "广场舞","type_id": "广场舞"},
{"type_name": "太极拳","type_id": "太极拳"},
{"type_name": "白噪音","type_id": "白噪音超清"},
{"type_name": "软件教程","type_id": "软件教程"},
{"type_name": "动物自然","type_id": "动物世界超清"},
{"type_name": "相声小品","type_id": "相声小品"},
{"type_name": "旅行探险","type_id": "旅行探险"}
],
"filters": {
"演唱会4K":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"演唱会4K"},{"n":"演唱会合集","v":"演唱会合集"},{"n":"红馆演唱会","v":"红馆演唱会"},{"n":"Beyond","v":"Beyond演唱会"},{"n":"张学友","v":"张学友演唱会"},{"n":"刘德华","v":"刘德华演唱会"},{"n":"谭咏麟","v":"谭咏麟演唱会"},{"n":"李克勤","v":"李克勤演唱会"},{"n":"陈百强","v":"陈百强演唱会"},{"n":"陈奕迅","v":"陈奕迅演唱会"},{"n":"伍佰","v":"伍佰演唱会"},{"n":"SHE","v":"SHE演唱会"},{"n":"陈小春","v":"陈小春演唱会"},{"n":"草蜢","v":"草蜢演唱会"},{"n":"陈慧娴","v":"陈慧娴演唱会"},{"n":"刀郎","v":"刀郎演唱会"},{"n":"邓紫棋","v":"邓紫棋演唱会"},{"n":"凤凰传奇","v":"凤凰传奇演唱会"},{"n":"林子祥","v":"林子祥演唱会"},{"n":"李宗盛","v":"李宗盛演唱会"},{"n":"罗大佑","v":"罗大佑演唱会"},{"n":"梅艳芳","v":"梅艳芳演唱会"},{"n":"迈克尔杰克逊","v":"迈克尔杰克逊演唱会"},{"n":"容祖儿","v":"容祖儿演唱会"},{"n":"任贤齐","v":"任贤齐演唱会"},{"n":"王心凌","v":"王心凌演唱会"},{"n":"张韶涵","v":"张韶涵演唱会"},{"n":"张国荣","v":"张国荣演唱会"},{"n":"周慧敏","v":"周慧敏演唱会"},{"n":"卓依婷","v":"卓依婷演唱会4K"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"热歌":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"经典无损音乐"},{"n": "内地","v": "内地歌曲"},{"n": "香港","v": "香港歌曲"},{"n": "台湾","v": "台湾歌曲"},{"n":"粤语","v":"粤语歌曲"},{"n":"国语","v":"国语歌曲"},{"n":"闽南","v":"闽南歌曲"},{"n":"老歌","v":"怀旧老歌"},{"n":"热榜","v":"2023年热们歌曲"},{"n":"经典","v":"经典老歌"},{"n":"古风","v":"古风歌曲"},{"n":"舞曲","v":"DJ歌曲"},{"n":"网络","v":"网红歌曲"},{"n":"抖音","v":"抖音热歌"},{"n":"快手","v":"快手热歌"},{"n":"对唱","v":"情歌对唱"},{"n":"迪斯科","v":"迪斯科"},{"n":"70年代","v":"70年代歌曲"},{"n":"80年代","v":"80年代歌曲"},{"n":"90年代","v":"90年代歌曲"},{"n":"超清MV","v":"超清MV"},{"n":"酒廊情歌","v":"酒廊情歌"},{"n":"山地情歌","v":"山地情歌"},{"n":"卓依婷","v":"卓依婷"},{"n":"新春","v":"新年歌曲"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"纯音乐":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"纯音乐"},{"n":"钢琴","v":"钢琴曲"},{"n":"小提琴","v":"小提音乐"},{"n":"手风琴","v":"手风音乐"},{"n":"二胡","v":"二胡音乐"},{"n":"古筝","v":"古筝音乐"},{"n":"笛子","v":"笛子音乐"},{"n":"琵琶","v":"琵琶音乐"},{"n":"古琴","v":"古琴音乐"},{"n":"编钟","v":"编钟音乐"},{"n":"协奏曲","v":"协奏曲"},{"n":"古风音乐","v":"古风纯音乐"},{"n":"背景音乐","v":"背景音乐"},{"n":"助眠音乐","v":"助眠音乐"},{"n":"胎教音乐","v":"胎教音乐"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"舞蹈":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"舞蹈"},{"n":"古典舞","v":"古典舞"},{"n":"芭蕾舞","v":"芭蕾舞"},{"n":"民族舞","v":"民族舞"},{"n":"现代舞","v":"现代舞"},{"n":"踢踏舞","v":"踢踏舞"},{"n":"爵士舞","v":"爵士舞"},{"n":"拉丁舞","v":"拉丁舞"},{"n":"摩登舞","v":"摩登舞"},{"n":"街舞","v":"街舞"},{"n":"广场舞","v":"广场舞"},{"n":"宅舞","v":"宅舞"},{"n":"肚皮舞","v":"肚皮舞"},{"n":"钢管舞","v":"钢管舞"},{"n":"英歌舞","v":"英歌舞"},{"n":"劲舞","v":"热舞劲舞"},{"n":"独舞","v":"独舞"},{"n":"群舞","v":"群舞"},{"n":"组舞","v":"组舞"},{"n":"舞剧","v":"舞剧"},{"n":"国风舞蹈","v":"国风舞蹈"},{"n":"女团热舞","v":"女团热舞"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"体育":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"体育赛事"},{"n":"NBA","v":"NBA"},{"n":"世界杯","v":"世界杯"},{"n":"足球","v":"足球赛"},{"n":"赛艇","v":"赛艇"},{"n":"马拉松","v":"马拉松"},{"n":"拳击","v":"拳击"},{"n":"柔道","v":"柔道"},{"n":"跆拳道","v":"跆拳道"},{"n":"摔跤","v":"摔跤"},{"n":"高尔夫","v":"高尔夫"},{"n":"WWE","v":"WWE"},{"n":"奥运会","v":"奥运会"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"戏曲":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"戏曲4K"},{"n":"B梆子腔","v":"梆子腔戏曲4K"},{"n":"C采茶戏","v":"采茶戏戏曲4K"},{"n":"C潮剧","v":"潮剧戏曲4K"},{"n":"C彩调","v":"彩调戏曲4K"},{"n":"C川剧","v":"川剧戏曲4K"},{"n":"D滇剧","v":"滇剧戏曲4K"},{"n":"D傣剧","v":"傣剧戏曲4K"},{"n":"E二人台","v":"二人台戏曲4K"},{"n":"G高腔","v":"高腔戏曲4K"},{"n":"G高甲戏","v":"高甲戏戏曲4K"},{"n":"G赣剧","v":"赣剧戏曲4K"},{"n":"G桂剧","v":"桂剧戏曲4K"},{"n":"H黄梅戏","v":"黄梅戏戏曲4K"},{"n":"H河北梆子","v":"河北梆子戏曲4K"},{"n":"H河南曲剧","v":"河南曲剧戏曲4K"},{"n":"H淮剧","v":"淮剧戏曲4K"},{"n":"H沪剧","v":"沪剧戏曲4K"},{"n":"H滑稽戏","v":"滑稽戏戏曲4K"},{"n":"H徽剧","v":"徽剧4K"},{"n":"H汉剧","v":"汉剧戏曲4K"},{"n":"H湖南花鼓戏","v":"湖南花鼓戏戏曲4K"},{"n":"J京剧","v":"京剧戏曲4K"},{"n":"J晋剧","v":"晋剧戏曲4K"},{"n":"J吉剧","v":"吉剧戏曲4K"},{"n":"K昆曲","v":"昆曲戏曲4K"},{"n":"L梨园戏","v":"梨园戏戏曲4K"},{"n":"L龙江剧","v":"龙江剧戏曲4K"},{"n":"M闽剧","v":"闽剧戏曲4K"},{"n":"P评剧","v":"评剧戏曲4K"},{"n":"P蒲剧","v":"蒲剧戏曲4K"},{"n":"P皮影戏","v":"皮影戏戏曲4K"},{"n":"P莆仙戏","v":"莆仙戏戏曲4K"},{"n":"Q黔剧","v":"黔剧戏曲4K"},{"n":"Q祁剧","v":"祁剧戏曲4K"},{"n":"Q秦腔","v":"秦腔戏曲4K"},{"n":"S上党梆子","v":"上党梆子戏曲4K"},{"n":"S山东梆子","v":"山东梆子戏曲4K"},{"n":"S绍剧","v":"绍剧戏曲4K"},{"n":"W武安平调","v":"武安平调戏曲4K"},{"n":"W婺剧","v":"婺剧戏曲4K"},{"n":"X湘剧","v":"湘剧戏曲4K"},{"n":"Y越剧","v":"越剧戏曲4K"},{"n":"Y豫剧","v":"豫剧戏曲4K"},{"n":"Y雁剧","v":"雁剧戏曲4K"},{"n":"Y越调","v":"越调戏曲4K"},{"n":"Y粤剧","v":"粤剧戏曲4K"},{"n":"Z壮剧","v":"壮剧戏曲4K"},{"n":"Z藏剧","v":"藏剧戏曲4K"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"旅游":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"旅游"},{"n":"A澳门","v":"澳门旅游"},{"n":"A安徽","v":"安徽旅游"},{"n":"B布达拉宫","v":"布达拉宫旅游"},{"n":"B北京","v":"北京旅游"},{"n":"C重庆","v":"重庆旅游"},{"n":"C草原","v":"草原旅游"},{"n":"D大海","v":"大海旅游"},{"n":"F福建","v":"福建旅游"},{"n":"G广东","v":"广东旅游"},{"n":"G广西","v":"广西旅游"},{"n":"G贵州","v":"贵州旅游"},{"n":"G甘肃","v":"甘肃旅游"},{"n":"H海南","v":"海南旅游"},{"n":"H河北","v":"河北旅游"},{"n":"H河南","v":"河南旅游"},{"n":"H湖北","v":"湖北旅游"},{"n":"H湖南","v":"湖南旅游"},{"n":"H黑龙江","v":"黑龙江旅游"},{"n":"J吉林","v":"吉林旅游"},{"n":"J江苏","v":"江苏旅游"},{"n":"J江西","v":"江西旅游"},{"n":"L辽宁","v":"辽宁旅游"},{"n":"M民宿","v":"民宿旅游"},{"n":"N内蒙古","v":"内蒙古旅游"},{"n":"N宁夏","v":"宁夏旅游"},{"n":"Q青海","v":"青海旅游"},{"n":"S上海","v":"上海旅游"},{"n":"S陕西","v":"陕西旅游"},{"n":"S四川","v":"四川旅游"},{"n":"S山西","v":"山西旅游"},{"n":"S山东","v":"山东旅游"},{"n":"T天津","v":"天津旅游"},{"n":"T台湾","v":"台湾旅游"},{"n":"T天空","v":"天空旅游"},{"n":"X西湖","v":"西湖旅游"},{"n":"X西藏","v":"西藏旅游"},{"n":"X新疆","v":"新疆旅游"},{"n":"X香港","v":"香港旅游"},{"n":"Y云南","v":"云南旅游"},{"n":"Z浙江","v":"浙江旅游"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"风景4K":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"风景4K"},{"n":"A澳门","v":"澳门风景4K"},{"n":"A安徽","v":"安徽风景4K"},{"n":"B布达拉宫","v":"布达拉宫风景4K"},{"n":"B北京","v":"北京风景4K"},{"n":"C重庆","v":"重庆风景4K"},{"n":"C草原","v":"草原风景4K"},{"n":"D大海","v":"大海风景4K"},{"n":"F福建","v":"福建风景4K"},{"n":"G广东","v":"广东风景4K"},{"n":"G广西","v":"广西风景4K"},{"n":"G贵州","v":"贵州风景4K"},{"n":"G甘肃","v":"甘肃风景4K"},{"n":"H海南","v":"海南风景4K"},{"n":"H河北","v":"河北风景4K"},{"n":"H河南","v":"河南风景4K"},{"n":"H湖北","v":"湖北风景4K"},{"n":"H湖南","v":"湖南风景4K"},{"n":"H黑龙江","v":"黑龙江风景4K"},{"n":"J吉林","v":"吉林风景4K"},{"n":"J江苏","v":"江苏风景4K"},{"n":"J江西","v":"江西风景4K"},{"n":"L辽宁","v":"辽宁风景4K"},{"n":"L洛阳","v":"洛阳风景4K"},{"n":"M民宿","v":"民宿风景4K"},{"n":"N南京","v":"南京风景4K"},{"n":"N内蒙古","v":"内蒙古风景4K"},{"n":"N宁夏","v":"宁夏风景4K"},{"n":"Q青海","v":"青海风景4K"},{"n":"S上海","v":"上海风景4K"},{"n":"S陕西","v":"陕西风景4K"},{"n":"S四川","v":"四川风景4K"},{"n":"S山西","v":"山西风景4K"},{"n":"S山东","v":"山东风景4K"},{"n":"S苏州","v":"苏州风景4K"},{"n":"T天津","v":"天津风景4K"},{"n":"T台湾","v":"台湾风景4K"},{"n":"T天空","v":"天空风景4K"},{"n":"X西安","v":"西安风景4K"},{"n":"X西湖","v":"西湖风景4K"},{"n":"X西藏","v":"西藏风景4K"},{"n":"X新疆","v":"新疆风景4K"},{"n":"X香港","v":"香港风景4K"},{"n":"Y云南","v":"云南风景4K"},{"n":"Z浙江","v":"浙江风景4K"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"美食超清":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"美食超清"},{"n":"舌尖上的中国","v":"舌尖上的中国超清"},{"n":"老字号","v":"老字号美食超清"},{"n":"家常菜","v":"家常菜美食超清"},{"n":"香港美食探店","v":"香港美食探店超清"},{"n":"澳门美食探店","v":"澳门美食探店超清"},{"n":"上海美食探店","v":"上海美食探店超清"},{"n":"北京美食探店","v":"北京美食探店超清"},{"n":"重庆美食探店","v":"重庆美食探店超清"},{"n":"南京美食探店","v":"南京美食探店超清"},{"n":"广州美食探店","v":"广州美食探店超清"},{"n":"杭州美食探店","v":"杭州美食探店超清"},{"n":"成都美食探店","v":"成都美食探店超清"},{"n":"苏州美食探店","v":"苏州美食探店超清"},{"n":"武汉美食探店","v":"武汉美食探店超清"},{"n":"台湾美食探店","v":"台湾美食探店超清"},{"n":"川菜","v":"川菜美食超清"},{"n":"豫菜","v":"豫菜美食超清"},{"n":"淮扬菜","v":"淮扬菜美食超清"},{"n":"湘菜","v":"湘菜美食超清"},{"n":"鲁菜","v":"鲁菜美食超清"},{"n":"粤菜","v":"粤菜美食超清"},{"n":"潮菜","v":"潮菜美食超清"},{"n":"浙菜","v":"浙菜美食超清"},{"n":"徽菜","v":"徽菜美食超清"},{"n":"闽菜","v":"闽菜美食超清"},{"n":"东北菜","v":"东北菜美食超清"},{"n":"客家菜","v":"客家菜美食超清"},{"n":"苏菜","v":"苏菜美食超清"},{"n":"火锅","v":"火锅"},{"n":"面食","v":"面食"},{"n":"炒菜","v":"炒菜"},{"n":"点心","v":"点心"},{"n":"日料","v":"日料"},{"n":"小吃","v":"小吃"},{"n":"素食","v":"素食"},{"n":"蒸菜","v":"蒸菜"},{"n":"凉菜","v":"凉菜"},{"n":"早餐","v":"早餐"},{"n":"披萨","v":"披萨"},{"n":"烤鱼","v":"烤鱼"},{"n":"海鲜","v":"海鲜美食超清"},{"n":"汉堡","v":"汉堡"},{"n":"韩国菜","v":"韩国菜"},{"n":"泰国菜","v":"泰国菜"},{"n":"穆斯林菜","v":"穆斯林菜"},{"n":"法国菜","v":"法国菜"},{"n":"意大利菜","v":"意大利菜"},{"n":"西班牙菜","v":"西班牙菜"},{"n":"土耳其菜","v":"土耳其菜系"},{"n":"阿拉伯菜","v":"阿拉伯菜"},{"n":"德国菜","v":"德国菜"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"搞笑":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"搞笑"},{"n":"搞笑配音","v":"搞笑配音"},{"n":"搞笑电影","v":"搞笑电影"},{"n":"搞笑综艺","v":"搞笑综艺"},{"n":"鬼畜电影","v":"鬼畜电影"},{"n":"搞笑动画","v":"搞笑动画"},{"n":"搞笑番","v":"搞笑番"},{"n":"十万个冷笑话","v":"十万个冷笑话"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"儿童":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"儿童"},{"n":"教育","v":"儿童早教"},{"n":"歌曲","v":"贝瓦儿歌"},{"n":"舞蹈","v":"儿童舞蹈"},{"n":"成语故事","v":"儿童成语故事"},{"n":"安全教育","v":"儿童安全教育"},{"n":"睡前故事","v":"儿童睡前故事"},{"n":"贝乐虎","v":"贝乐虎"},{"n":"宝宝巴士","v":"宝宝巴士"},{"n":"儿童好声音","v":"儿童好声音"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"纪录片超清":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"太极拳":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"太极拳"},{"n":"邱慧芳","v":"太极拳邱慧芳"},{"n":"陈氏","v":"太极拳陈氏"},{"n":"武当","v":"太极拳武当"},{"n":"二十四式","v":"太极拳二十四式"},{"n":"三十六式","v":"太极拳三十六式"},{"n":"五禽戏","v":"五禽戏"},{"n":"八段锦","v":"八段锦"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"综艺大全":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","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":"军情观察室"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"广场舞":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"白噪音超清":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"白噪音4K"},{"n":"窗白噪音","v":"窗白噪音4K"},{"n":"环境白噪音","v":"环境白噪音4K"},{"n":"自然白噪音","v":"自然白噪音4K"},{"n":"助眠白噪音","v":"助眠白噪音4K"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"软件教程":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"软件教程"},{"n":"Windows","v":"Windows"},{"n":"MT管理器","v":"MT管理器"},{"n":"NP管理器","v":"NP管理器"},{"n":"mixplorer","v":"mixplorer"},{"n":"脱壳","v":"脱壳"},{"n":"爬虫","v":"爬虫"},{"n":"json&jar","v":"json&jar"},{"n":"网盘挂载","v":"网盘挂载"},{"n":"alist+WebDav","v":"alist+WebDav"},{"n":"TVBox","v":"TVBox"},{"n":"EXCEL","v":"EXCEL教程"},{"n":"Git入门到精通","v":"Git入门到精通"},{"n":"java","v":"java教程"},{"n":"phyton","v":"phyton教程"},{"n":"xml","v":"xml教程"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"动物世界超清":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"地球自然"},{"n":"熊猫","v":"国宝熊猫"},{"n":"大自然","v":"大自然"},{"n":"地球自然","v":"地球自然"},{"n":"宇宙探索","v":"宇宙探索"},{"n":"探索发现","v":"探索发现"},{"n":"动物世界","v":"动物世界超清"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"相声小品":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"相声小品"},{"n":"C陈佩斯","v":"陈佩斯小品4K"},{"n":"C春晚小品","v":"春晚小品4K"},{"n":"C曹云金","v":"曹云金相声4K"},{"n":"D单口相声","v":"单口相声4K"},{"n":"D德云社","v":"德云社小品4K"},{"n":"E二人转","v":"二人转4K"},{"n":"F冯巩","v":"冯巩小品4K"},{"n":"G郭德纲","v":"郭德纲相声4K"},{"n":"G郭冬临","v":"郭冬临小品4K"},{"n":"G郭达","v":"郭达小品4K"},{"n":"K开心麻花","v":"开心麻花小品4K"},{"n":"P评书","v":"评书4K"},{"n":"P潘长江","v":"潘长江小品4K"},{"n":"Q青曲社","v":"青曲社相声4K"},{"n":"Q群口相声","v":"群口相声4K"},{"n":"S宋小宝","v":"宋小宝小品4K"},{"n":"W文松","v":"文松小品4K"},{"n":"X小曲","v":"小曲相声4K"},{"n":"X喜剧综艺","v":"喜剧综艺4K"},{"n":"Y严顺开","v":"严顺开小品4K"},{"n":"Y岳云鹏","v":"岳云鹏相声小品4K"},{"n":"Z赵本山","v":"赵本山小品4K"},{"n":"Z赵丽蓉","v":"赵丽蓉小品4K"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}],
"旅行探险":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"旅行探险"},{"n":"摩旅","v":"摩托车旅游"},{"n":"骑行","v":"骑行旅游"},{"n":"徒步旅游","v":"徒步旅游"},{"n":"自驾旅游","v":"自驾旅游"},{"n":"洞穴探险","v":"洞穴探险"},{"n":"荒野求生","v":"荒野求生"},{"n":"凶宅探险","v":"凶宅探险"},{"n":"灵异探险","v":"灵异探险"},{"n":"户外攀岩","v":"户外攀岩"},{"n":"高空攀爬","v":"高空攀爬"},{"n":"潜水探险","v":"潜水探险"},{"n":"翼装飞行","v":"翼装飞行"},{"n":"极限运动","v":"极限运动"},{"n":"速降","v":"速降"},{"n":"高空跑酷","v":"高空跑酷"},{"n":"冲浪","v":"冲浪"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}]
}
}

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

@@ -23,7 +23,7 @@
}, },
{ {
"key": "config", "key": "config",
"name": "🚀辅助┃配置┃网盘", "name": "🚀辅助┃配置┃中心",
"type": 3, "type": 3,
"api": "csp_Config", "api": "csp_Config",
"jar": "./jars/config.jar", "jar": "./jars/config.jar",
@@ -216,38 +216,6 @@
"type": 3, "type": 3,
"api": "csp_Jpys" "api": "csp_Jpys"
}, },
{
"key": "AppGG",
"name": "🌙柳月┃蓝光┃无广",
"type": 3,
"api": "csp_AppGetApp",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"ext": "w7TCmsK8w5rDrcKYwoPCmcKkw57CmsK0wpnCoVpcUFfDjMOcw67DnsOPwqXCnFdqwpnCmsOiw63DrsKjal9fwqrCpMKrwqfCq2tgXmHCssKrwqjCrcKqbWFhYcKpwqLDm8Opw6NhwqDCmMKgwqDCn8KawqDDg8KhwpnCpMKHw6jDpcOewqDCtFNXwpnCnsOiw6fDkMKqwqtsV1xQwqDDp8Ojw6nCoW1QV8KL5Ye+6YWb5pCf5ZGcwqblhp/kvYflkKdq5b+q6Ki56La+5ryJ562TwpBXXFDCoMK0w5/DrMOFwpjCqVdqwpnCmsObw6zDocKWwqjCmMKaw6TDp8OtwqrCrGdlZ2PCoMKfwprCoMK7wpjCo3nCpsKgwq3CmsKgw5vCpsKXwpPCqMOhw53DpcOtw61kYmRlwrDCpsKhwqXCmlrCmMKVwpHDncOYw6zDrMKhbVDCq1fDrsOmw5/Dq8KnwpTCl8KVwp7DrcKawrTCmcKhwoDCn8KqwpnDpcOfw5vCqMKvYWBQWMOQw5zDqMOdw6nCqsKjUH7DjcKTwqvCqcKoY2tQwofDosOhwrDCrcK1U8KoZmTCosKTwrvDqcOqwp/ClcKHwpXDm8K+w6PDrcKpaGNnXsKswqnCmsKhw4V7woR9fMKlwpPDpsOiw6XCmFB3wpXDnMOew6nCosKadsKYwqLCn8Omw5jCqcKqwqtlXmBewqnCocKqwpnDjcKUwpbCkcKiw6LCosKvwqzCsWFjZlfCpcKTwqHDmsOmwp/Cn8Knc8Orw6LDrcOsw4rCpcKfwqTCn8Ocw6LDpsOLw5/Cl8KZwqLClcOcw6fDrcKgwrRTwoTCosKlw57DsMKmwpnCoXXCkcKewpvDh8OUw7DCoMK0U1fnnKTmk53CoMKfwprCoMOewpjCk8KiwqnDqcOnw4XDnsOzWmpQV8Oww6jDs8OiwrBpZlfCrQ=="
},
{
"key": "nm",
"name": "🌼农民┃蓝光┃纯净",
"type": 3,
"api": "csp_WebNM",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKawqpewpPDp8KawqbCmcKhwqfCmcKgV8KzwpPCocOU5Ye/6YSb5o+V5ZCTXOWHpeS+iuWRscKz5b+r6Ke56LW05ruA56yJw5bCmsKmwpnCocKXwpXCk8Kiw7LDo8Ouw4TDn8KsV2pQwqDDqsOvw7LDo2lmZlfDtg=="
},
{
"key": "rbj",
"name": "🔥热剧┃蓝光┃无广",
"type": 3,
"api": "csp_AppRJ",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0
},
{ {
"key": "nk", "key": "nk",
"name": "🫣耐看┃蓝光┃无广", "name": "🫣耐看┃蓝光┃无广",
@@ -258,27 +226,6 @@
"changeable": 0, "changeable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKewpvDncOpw57Cp8OnwphXXFDCoMOnw6PDqcKhbVBXwovlh77phZvmkJ/lkZzCpuWGn+S9h+WQp2rlv6roqLnotr7mvInnrZPCkFdcUMKgw5fDn8Ocw6zCrMKgwqR7w57DrMKhwrPCmlrCp8KlwqnDosKpwrDCr8KhwrA=" "ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKewpvDncOpw57Cp8OnwphXXFDCoMOnw6PDqcKhbVBXwovlh77phZvmkJ/lkZzCpuWGn+S9h+WQp2rlv6roqLnotr7mvInnrZPCkFdcUMKgw5fDn8Ocw6zCrMKgwqR7w57DrMKhwrPCmlrCp8KlwqnDosKpwrDCr8KhwrA="
}, },
{
"key": "lk",
"name": "🫣来看┃蓝光┃无广",
"type": 3,
"api": "csp_WebLK",
"jar": "./jars/config.jar",
"searchable": 0,
"changeable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw6XDpcKpwp/ClF7DpsOYwqHCpcKaWsKkwpnCoMKgwq3CmsKgw5XlhrjphJjmj5XlkJPCpeWHn+S+keWRsMK05b6k6Ke26LW05ruA562Sw5DCocKlwppawpTClcKTw6vDrMOqw63DhcKYwqlXasKZwprDscOuw7PCnGZmZsKgw7A="
},
{
"key": "AppHD",
"name": "🤞一起┃蓝光┃无广",
"type": 3,
"api": "csp_AppFree4K",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw5rDqsKjwpPCncKjwqfDmcOsw57Dn8KbwpRewqbDosOjwqHCpcKaWnvClcKpwqDCrcKawqDDnMKYZWNkwrHDl8Ogw5vCqsKWY8KTYsKxwqbCocKlwppaecKmV8KzwpPCocKuw6BoZGRpw53Dl8Krwq3CrWRjYmHCsMKawqbCmcKhdcKRwp7Cm8OHw5TDsMKgwrRTV+ecpOaTncKgwp/CmsKgw4rClMKiwqPClcOOw6XDpsKgwrRTV8KYwqTDrcOjw63Cs8KpYsKRwqDCoMOvwqTCqMOfw6zCmMKVwpjClMKnw6nDo8OpwqnCncKjwp/CnsKnw6PDosOpwrnCqMKiwpxtwqDCn8KawqDCvsKUwp59wqXDjsOlw6bCoMK0U1fCmMKkw63Do8OtwrPCqWLClMKdXsOvw5zDnsOzwqjClMKjwpnCkcKow5fDp8Okw69ib8KRwpPCtsOXw6fCn8OuwqLCm8KVwp7CtsOEw4PDhcK8dnh6dsOMwr/DkcOPw4B4e8KCVsOuw6XDpsK2wqFfUFfClMOew5bDrMOyw6rCp3vClcKpwqDCrcKawqDDscKowqnCmWbCr8KpwqHDtg=="
},
{ {
"key": "guazi", "key": "guazi",
"name": "🍉瓜子┃网页┃无广", "name": "🍉瓜子┃网页┃无广",
@@ -289,40 +236,6 @@
"quickSearch": 0, "quickSearch": 0,
"filterable": 0 "filterable": 0
}, },
{
"key": "Appyouyou",
"name": "☁️悠悠┃蓝光┃无广",
"type": 3,
"api": "csp_AppGetApp",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"ext": "w7TCmsK8w5rDrcKYwoPCmcKkw57CmsK0wpnCoVpcUFfDgsOhw6PDrcORwqLCosKUV8KzwpPCocOiw6jCnMKkwoZhwqrCrMKhwqXCmlrCpMKZwqDCoMKtwprCoMOV5Ya46YSY5o+V5ZCTwqXlh5/kvpHlkbDCtOW+pOintui1tOa7gOetksOQwqHCpcKaWnHClcKjw4TDmMOzwqDCtFNXdMKow7DCvMOtw63DrMKXwofCksKJw6nDlcOmw7DDqFpcUFfCusOYw63DgsOwWmpQV8K9w6vDscOCw63Cp8KiwpTCh8Obw4zDqsObw6bCqsKeV1zCmcKaw43DosOuwpjChcKiwpzCoMKtwprCoMOiwqfCpMKgasKowqLCq8KuwrBhYmJlwqfCpsKqwqfCsGhqZWXCr8KpwqnDmsOqwpxewqDCmMOpwprCpsKZwqF1wpHCnsKbw4fDlMOwwqDCtFNX55yk5pOdwqDCn8KawqDDnsKYwpPCosKpw6nDp8OFw57Ds1pqUFfDsMOow7PDosKwaWZXwq0="
},
{
"key": "AppYunD",
"name": "📻️云播┃蓝光┃无广",
"type": 3,
"api": "csp_AppGetApp",
"jar": "./jars/config.jar",
"searchable": 1,
"quickSearch": 0,
"filterable": 0,
"ext": "w7TCmsK8w5rDrcKYwoPCmcKkw57CmsK0wpnCocKbwqTCpMKgw6zCrcKpwqjDs8KXwqnCo8KUw7LDocObw6bDo8KWwpTCn8Kdw5rDnMOow6fDm8KgwpVeZsKxwqHDocOywrRkYGZnwrHCosOdwrLDp2XCmsKjYsKywqvDssKxwqzCm2ZfwpzCssOgwrLDm8OyZWPCmmLDqMKlw6rCssOrYsKUwqnCnsOaw6DDo8Ocw57CosKdwpHCmcOnw6HDm8Omw59hwqTCqMKkwqDCn8KawqDDjcKcwqTClcKFw6vDn8KhwrPCmlpXXFDCoMK8w6jDosOuworCn8KiwpTCoMKtwprCoMOjwqHCmcKkwobCqsKkwrPCoMKmU1fCpMKZw6nCmsK0wpnCocKO5Ya16YSY5o+V5ZGcwp/lh6bkvpDlkbFt5b6h6Ke26LW05ryJ562Mw5fCoMKmU1dxwpXDrMK+w5/DssKhbVBXwpvCssOiwq3DqcKswpZowpJnw6bCpsO0wqnDqWtXXFDCoMK0w5/DrMODwqlXalDCoMOewrPDqMKtwqNiwpNow5vCqsOnwqzDtGPCn2hXwqXCk8Khw53Dn8KWwqLCqcKgw63CvsOfw7LCoW1QV8Knw67DrMOjwq/CsGlXwq0="
},
{
"key": "cz",
"name": "🏭️厂长┃蓝光┃无广",
"type": 3,
"api": "csp_WebCzApp",
"jar": "./jars/config.jar",
"searchable": 0,
"quickSearch": 0,
"filterable": 0,
"timeout": 30,
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDscKqwqdewpPDs8KjwqvCp8OwwpzCoFdcwpnCmsONw57Dm8KlwpPCmMKFw6vDn8KhwrPCmlrCmMKkwqTDqcOmwrTCqMKpwpbCqsKqwqnCp8Onw6nDqcKpwpfCkcKfwqnDqMOhw6HDo8OjwpjCm8KfwqPDocOcw5zDrsOtwpvCmcKpwp/DrsOVw6PDp8OhWlxQV8OMw5zDrsOew4/CpcKccsKRw6TCmsK0wpnCocKbwqTCpMKgw6zCrcKpwqjDscKqwqdewpPDs8Otw7PDr8OjwpfClcKfXsOcw6LDp8KgwqZTV8KkwpnDqcKawrTCmcKhwo7lhrXphJjmj5XlkZzCn+WHpuS+kOWRsW3lvqHop7botbTmvInnrYzDl8KgwqZTV8KUwpXDnMOlw7PDqcOufsKVwqlXwrPCk8Khw7DDr8KswplmZsKvwprDtw=="
},
{ {
"key": "贱贱", "key": "贱贱",
"name": "🐭荐片┃速览┃纯净", "name": "🐭荐片┃速览┃纯净",

Binary file not shown.

Binary file not shown.

View File

@@ -4,47 +4,57 @@
"spider": "./spider.jar", "spider": "./spider.jar",
"lives": [ "lives": [
{ {
"name": "【公众号欧歌APP网络收集】如有收费,直接找退款", "name": "【公众号欧歌APP】测试完请删除,请勿贩卖",
"type": 0, "type": 0,
"url": "./lives/【公众号欧歌APP网络收集】如有收费,直接找退款.txt", "url": "./lives/【公众号欧歌APP】测试完请删除,请勿贩卖.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
}, },
{ {
"name": "胖羊直播", "name": "胖羊直播",
"type": 3, "type": 3,
"api":"csp_Feiyang",
"url": "./lives/胖羊直播.txt", "url": "./lives/胖羊直播.txt",
"epg": "" "timeout":10,
"ua":"okhttp/3.15",
"catchup":{"type":"append","source":"?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"}
}, },
{ {
"name": "AI直播", "name": "AI直播",
"type": 0, "type": 0,
"url": "./lives/AI直播.txt", "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
}, },
{ {
"name": "Live直播", "name": "Live直播",
"type": 0, "type": 0,
"url": "http://127.0.0.1:9978/proxy?do=live&u=Gather", "url": "http://127.0.0.1:9978/proxy?do=live&u=Gather",
"epg": "" "playerType":2,
"timeout":10
} }
], ],
"sites": [ "sites": [
{ {
"key": "豆瓣2", "key": "豆瓣2",
"name": "📢【公众号欧歌APP网络收集】如有收费,直接找退款", "name": "📢【公众号欧歌APP】测试完请删除,请勿贩卖",
"type": 3, "type": 3,
"api": "csp_Douban", "api": "csp_Douban",
"searchable": 0 "searchable": 0
}, },
{ {
"key": "豆瓣1", "key": "豆瓣1",
"name": "📢【公众号欧歌APP网络收集】如有收费,直接找退款公告❤更新:4/10❤", "name": "📢【公众号欧歌APP】测试完请删除,请勿贩卖公告❤更新:4/14❤",
"type": 3, "type": 3,
"api": "csp_Notice", "api": "csp_Notice",
"searchable": 0, "searchable": 0,
"changeable": 0, "changeable": 0,
"jar": "./jars/豆瓣1.jar", "jar": "./jars/豆瓣1.jar",
"ext": "https://欧歌.yy.nxog.top/公告.php?b=【公众号欧歌APP网络收集】如有收费,直接找退款" "ext": "https://xn--dkw0c.v.nxog.top/m//公告.php?b=【公众号欧歌APP】测试完请删除,请勿贩卖"
}, },
{ {
"key": "config", "key": "config",
@@ -68,19 +78,43 @@
} }
}, },
{ {
"key": "csp_Netfixtv", "key": "csp_woog",
"name": "🐲玩欧4K弹幕", "name": "🐲玩欧4K弹幕",
"type": 3, "type": 3,
"changeable": "0", "changeable": "0",
"api": "csp_DuopanGuard", "api": "csp_DuopanGuard",
"filterable": 1, "filterable": 1,
"jar": "./jars/csp_Netfixtv.jar", "jar": "./jars/csp_woog.jar",
"ext": { "ext": {
"site_urls": [ "site_urls": [
"https://woog.nxog.eu.org", "https://woog.nxog.eu.org",
"https://woog.xn--dkw.xn--6qq986b3xl" "https://woog.xn--dkw.xn--6qq986b3xl"
], ],
"url_key": "Netfixtv" "url_key": "woog",
"threadinfo": {
"chunksize": 400,
"threads": 10
}
}
},
{
"key": "csp_woog2",
"name": "🐲玩欧非会员4K",
"type": 3,
"changeable": "0",
"api": "csp_DuopanGuard",
"filterable": 1,
"jar": "./jars/csp_woog.jar",
"ext": {
"site_urls": [
"https://woog.xn--dkw.xn--6qq986b3xl",
"https://woog.nxog.eu.org"
],
"url_key": "woog2",
"threadinfo": {
"chunksize": 400,
"threads": 60
}
} }
}, },
{ {
@@ -102,6 +136,14 @@
"playerType": 1, "playerType": 1,
"ext": "http://api2.rinhome.com" "ext": "http://api2.rinhome.com"
}, },
{
"key": "巧技",
"name": "💡巧巧|影视",
"type": 3,
"api": "csp_qiao2",
"playerType": 2,
"ext": "./txt/cksp.txt"
},
{ {
"key": "移动", "key": "移动",
"name": "💡移动|影视", "name": "💡移动|影视",
@@ -393,7 +435,9 @@
"searchable": 1, "searchable": 1,
"quickSearch": 1, "quickSearch": 1,
"filterable": 0, "filterable": 0,
"ext": "sHR2rlsfjI4L3t4RXQMkn9mmg6Ofmy66+wcs9waIyn4hKqT9jG9s4kO6qzcu2OSqWS1/T+wfkqe+UwoipekwvcM11PTDrQqKYI8lmMXUc1vBHxp/2uWIw5HUoscBNWEb" "ext": {
"url": "http://v.rbotv.cn"
}
}, },
{ {
"key": "天天影视", "key": "天天影视",
@@ -403,7 +447,9 @@
"searchable": 1, "searchable": 1,
"quickSearch": 1, "quickSearch": 1,
"filterable": 0, "filterable": 0,
"ext": "sHR2rlsfjI4L3t4RXQMknxhunFUlA4159TKiKvIPpfcM1xianxebcSLajBbwFymqC+z9WoGzQYbh7FSvh8KdiC0BKF0CalaPaCEMOZm+ClGEeNzXAaR0FnrV04SiB2NK" "ext": {
"url": "http://tt.ysdqjs.cn"
}
}, },
{ {
"key": "浪酷影视", "key": "浪酷影视",
@@ -413,7 +459,9 @@
"searchable": 1, "searchable": 1,
"quickSearch": 1, "quickSearch": 1,
"filterable": 0, "filterable": 0,
"ext": "sHR2rlsfjI4L3t4RXQMkn9NPgTvCXvJVoUvXJHT6PqBNTg88Q5I4mc95m2RizprWhdAIQNMU/HShly4WRNzUsfhvqzHXHhHD57G7QagNV0Cx+WDSBgm0uZMAbZVHmzjM" "ext": {
"url": "http://v.lkuys.cn"
}
}, },
{ {
"key": "菲儿影视", "key": "菲儿影视",
@@ -995,6 +1043,184 @@
"ratio": 1.433 "ratio": 1.433
} }
}, },
{
"key": "木偶",
"name": "❤木偶4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./json/mogg.json?"
},
{
"key": "蜡笔",
"name": "❤蜡笔4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/lb.json?"
},
{
"key": "小米",
"name": "❤小米4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/xm.json?"
},
{
"key": "至臻",
"name": "❤至臻4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/zz.json?"
},
{
"key": "多多",
"name": "❤多多4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/yyds.json?"
},
{
"key": "二小",
"name": "❤二小4K弹幕",
"type": 3,
"api": "csp_PanWebShare",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"ext": "./json/ex.json?"
},
{
"key": "概念",
"name": "❤海绵4K",
"type": 3,
"api": "csp_PanWebShareCloudHM",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "rect",
"ratio": 1.433
},
"ext": "./json/hm.json?"
},
{
"key": "Pan1",
"name": "❤Pan14K",
"type": 3,
"api": "csp_PanWebShareCloudHM",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"changeable": 1,
"style": {
"type": "rect",
"ratio": 1.433
},
"ext": "./json/pan1.json?"
},
{
"key": "趣盘",
"name": "❤趣盘4K",
"type": 3,
"api": "csp_PanWebQu",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw7DDscKqXsKhwqXDqcOUw6jDrMOiwphewpPCn8OmwprCpsKZwqHCp8KZwqBXwrPCk8Khw5Tlh7/phJvmj5XlkJNc5Yel5L6K5ZGxwrPlv6vop7notbTmu4DnrInDlsKawqbCmcKhwpfClcKTwqLDssOjw67DhMOfwqxXalDCoMOqw6/DssOjaWZmV8O2"
},
{
"key": "聚搜",
"name": "❤聚搜4K",
"type": 3,
"api": "csp_PanWebSearch",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"style": {
"type": "list",
"ratio": 1.433
},
"ext": "./json/aliyunpansearch.json"
},
{
"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": "push_agent", "key": "push_agent",
"name": "📢手机|推送", "name": "📢手机|推送",
@@ -1018,7 +1244,7 @@
"api": "csp_Market", "api": "csp_Market",
"searchable": 0, "searchable": 0,
"changeable": 0, "changeable": 0,
"ext": "http://123.yy.xn--dkw.xn--6qq986b3xl/sd.php" "ext": "http://123.yy.xn--dkw.xn--6qq986b3xl/zm/sd.php"
}, },
{ {
"key": "豆瓣3", "key": "豆瓣3",

View File

@@ -0,0 +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"
}
],
"filters": {
"dy": [
{
"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"
}
]
}
],
"dj": [
{
"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"
}
]
}
],
"dm": [
{
"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"
}
]
}
]
},
"siteUrl": "https://ysapi.yingso.fun/v7/ali/all"
}

1461
欧歌/json/ex.json Normal file

File diff suppressed because it is too large Load Diff

22
欧歌/json/hm.json Normal file
View File

@@ -0,0 +1,22 @@
{
"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"
}

1667
欧歌/json/lb.json Normal file

File diff suppressed because it is too large Load Diff

1460
欧歌/json/mogg.json Normal file

File diff suppressed because it is too large Load Diff

26
欧歌/json/pan1.json Normal file
View File

@@ -0,0 +1,26 @@
{
"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"
}

1457
欧歌/json/xm.json Normal file

File diff suppressed because it is too large Load Diff

1674
欧歌/json/yyds.json Normal file

File diff suppressed because it is too large Load Diff

1703
欧歌/json/zz.json Normal file

File diff suppressed because it is too large Load Diff

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

Binary file not shown.

1
欧歌/txt/cksp.txt Normal file
View File

@@ -0,0 +1 @@
aMpWZFkXFecm4hhqZ9yfzBd24WjHV7lEq0TzPXvh8brK9+zi6x5XIpulpwecy92meWuHIvZTeo5jkTch1cNoIHlBErZixB1hzpJ1I6ptPQgHxp+ZCoBpPPZ6UB/jpMssKHVA4QVqXt+zl01X/XSB1VCx0Bml5xCczSFbKCe2MEn0ucTkQtUs9f4dUYprXoFJCfGEIjUF1yOWCKQwUjTYWzMBoj7uWaxEcWfXnnvGvO0BhmEStZ4HOkEVKG7WeLB3Jw11tb61vHpyvDXduNSjYcRNxr8EO9YIgDQsWn4lTgqILnClSUFmjufNkI3IluT1qctR4IVWJPQ7Y7ANQ9kxKMIli2xJmwILFqIsK7kqKOXc3nezbMCS0I+epES9fHMPpczsQPcBfpQT1o485uRClN+dM83gcAn9z90ucIQOKUBbkfmQ+WnvKyApUyFe3aFBkTYj+rFSp1bleilRDoa+yIY05cpDyItqqccy8GBk+dgQ755CMY/VKN9vLlxdoUJMCWZB1FR8VhnW7RpbYc08DOpNChGqKJ6Cwy1qVM/jt61WR2x1VaKreS59j1IMuxDuEBdhlmt+QLsbSWD7blw0ji9AFHAZu3M31oN5D2feEgKZ5oPAiWjpKw7knBA/raonihUn1oE+0e1ILzgrm3uLwb0hpd6xeeRv0vYW2FDCoe3A=

View File

@@ -1027,13 +1027,13 @@
"name": "BJTV", "name": "BJTV",
"type": 0, "type": 0,
"url": "./lives/BJTV.txt", "url": "./lives/BJTV.txt",
"epg": "" "playerType":1
}, },
{ {
"name": "钵钵鸡(四网通用)", "name": "钵钵鸡(四网通用)",
"type": 0, "type": 0,
"url": "./lives/钵钵鸡(四网通用).txt", "url": "./lives/钵钵鸡(四网通用).txt",
"epg": "" "playerType":1
} }
] ]
} }

Binary file not shown.

View File

@@ -145,10 +145,10 @@
"ext": "https://www.wwgz.cn" "ext": "https://www.wwgz.cn"
}, },
{ {
"key": "csp_Apphip", "key": "csp_KmeiJu",
"name": "🌼┃️嗨皮┃影视", "name": "🍐┃鸭梨┃影视",
"type": 3, "type": 3,
"api": "csp_Apphip" "api": "csp_KmeiJu"
}, },
{ {
"key": "csp_Siren", "key": "csp_Siren",
@@ -175,6 +175,12 @@
"api": "csp_Qiyou", "api": "csp_Qiyou",
"ext": "http://www.dyxz2.com/" "ext": "http://www.dyxz2.com/"
}, },
{
"key": "csp_Apphip",
"name": "🌼┃️嗨皮┃影视",
"type": 3,
"api": "csp_Apphip"
},
{ {
"key": "荐片", "key": "荐片",
"name": "🎬┃荐片┃影视", "name": "🎬┃荐片┃影视",

View File

@@ -1,7 +0,0 @@
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

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

@@ -681,25 +681,30 @@
"name": "牛播一仅新版影视仓┃ok影视", "name": "牛播一仅新版影视仓┃ok影视",
"type": 0, "type": 0,
"url": "http://127.0.0.1:9978/proxy?do=饭太硬&type=liveList", "url": "http://127.0.0.1:9978/proxy?do=饭太硬&type=liveList",
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}" "playerType":2,
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
"logo":"https://epg.v1.mk/logo/{name}.png"
}, },
{ {
"name": "V4聚合卡顿请按左┃右键换线", "name": "V4聚合卡顿请按左┃右键换线",
"type": 0, "type": 0,
"url": "./lives/V4聚合卡顿请按左┃右键换线.txt", "url": "./lives/V4聚合卡顿请按左┃右键换线.txt",
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}" "playerType":2,
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
"logo":"https://epg.v1.mk/logo/{name}.png"
}, },
{ {
"name": "V6范明明", "name": "V6范明明",
"type": 0, "type": 0,
"url": "./lives/V6范明明.txt", "url": "./lives/V6范明明.txt",
"epg": "" "playerType":2
}, },
{ {
"name": "平台直播", "name": "平台直播",
"type": 0, "type": 0,
"url": "./lives/平台直播.txt", "url": "./lives/平台直播.txt",
"epg": "" "ua":"okhttp/3.15",
"playerType":2
} }
] ]
} }

File diff suppressed because it is too large Load Diff