新增真心本地包,同步20240904
This commit is contained in:
parent
5d425a95ca
commit
fb38362f8c
|
@ -0,0 +1,229 @@
|
|||
{
|
||||
"spider": "./custom_spider.jar;md5;43989964965deab2a4b6b48251043412",
|
||||
"sites": [
|
||||
{
|
||||
"key": "dr_豆瓣",
|
||||
"name": "🔍豆瓣荐片(js)",
|
||||
"type": 3,
|
||||
"api": "./js/lib/drpy2.min.js",
|
||||
"searchable": 2,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"ext": "./js/douban.js"
|
||||
},
|
||||
{
|
||||
"key": "玩偶gg",
|
||||
"name": "玩偶gg",
|
||||
"type": 3,
|
||||
"api": "csp_Wogg",
|
||||
"searchable": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json",
|
||||
"siteUrl": "https://www.wogg.bf/",
|
||||
"filter": "./wogg.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "哔哩FM",
|
||||
"name": "哔哩",
|
||||
"type": 3,
|
||||
"api": "csp_Bili",
|
||||
"searchable": 1,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
},
|
||||
"ext": {
|
||||
"json": "./bilibili.json",
|
||||
"cookie": "qwewqddasdasd"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "玩偶 | 蜡笔",
|
||||
"name": "玩偶 | 蜡笔",
|
||||
"type": 3,
|
||||
"api": "csp_kongbai",
|
||||
"searchable": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json",
|
||||
"siteUrl": "https://duopan.fun",
|
||||
"filter": "./wogg.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "ConfigCenter",
|
||||
"name": "配置中心",
|
||||
"type": 3,
|
||||
"api": "csp_ConfigCenter",
|
||||
"searchable": 0,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "星剧社",
|
||||
"name": "星剧社",
|
||||
"type": 3,
|
||||
"api": "csp_Star2",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "易搜",
|
||||
"name": "易搜|4K",
|
||||
"type": 3,
|
||||
"api": "csp_YiSo",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "盤搜索",
|
||||
"name": "盤搜索",
|
||||
"type": 3,
|
||||
"api": "csp_PanSearch",
|
||||
"searchable": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "紙條搜",
|
||||
"name": "紙條搜",
|
||||
"type": 3,
|
||||
"api": "csp_XiaoZhiTiao",
|
||||
"searchable": 1,
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "Youtube",
|
||||
"name": "Youtube",
|
||||
"type": 3,
|
||||
"api": "csp_Youtube",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
},
|
||||
"ext": {
|
||||
"json": "./youtube.json",
|
||||
"cookie": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "賤賤",
|
||||
"name": "賤賤",
|
||||
"type": 3,
|
||||
"api": "csp_Jianpian",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"ext": "https://ghproxy.net/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/json/jianpian.json"
|
||||
},
|
||||
{
|
||||
"key": "TgYunPanLocal1",
|
||||
"name": "TgYunPanLocal1",
|
||||
"type": 3,
|
||||
"api": "csp_TgYunPanLocal",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"channelUsername": "yunpanshare",
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "TgYunPanLocal2",
|
||||
"name": "TgYunPanLocal2",
|
||||
"type": 3,
|
||||
"api": "csp_TgYunPanLocal",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"channelUsername": "shareAliyun",
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "TgYunPanLocal3",
|
||||
"name": "TgYunPanLocal3",
|
||||
"type": 3,
|
||||
"api": "csp_TgYunPanLocal",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"channelUsername": "kuakeyun",
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "TgYunPanLocal4",
|
||||
"name": "TgYunPanLocal4",
|
||||
"type": 3,
|
||||
"api": "csp_TgYunPanLocal",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"channelUsername": "qixingzhenren",
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "TgYunPanLocal5",
|
||||
"name": "TgYunPanLocal5",
|
||||
"type": 3,
|
||||
"api": "csp_TgYunPanLocal",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"channelUsername": "guaguale115",
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "网盘集合",
|
||||
"name": "网盘集合|4K",
|
||||
"type": 3,
|
||||
"api": "csp_网盘集合",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json",
|
||||
"share": "./网盘集合.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "push_agent",
|
||||
"name": "推送",
|
||||
"type": 3,
|
||||
"api": "csp_Push",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
"switchable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "./peizhi.json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "推荐",
|
||||
"type_id": "recm"
|
||||
},
|
||||
{
|
||||
"type_name": "热门",
|
||||
"type_id": "hot"
|
||||
},
|
||||
{
|
||||
"type_name": "观看历史",
|
||||
"type_id": "his"
|
||||
},
|
||||
{
|
||||
"type_name": "全区排行",
|
||||
"type_id": "rank"
|
||||
},
|
||||
{
|
||||
"type_name": "全区排行(汽车)",
|
||||
"type_id": "carRank"
|
||||
},
|
||||
{
|
||||
"type_name": "全区排行(科技)",
|
||||
"type_id": "kejiRank"
|
||||
},
|
||||
{
|
||||
"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": "动物世界"
|
||||
}
|
||||
]
|
||||
|
||||
}
|
Binary file not shown.
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 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
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
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
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,534 @@
|
|||
/**
|
||||
* live2cms.js
|
||||
* 配置设置 {"key":"Live2CMS","name":"直播转点播V2","type":3,"api":"{{host}}/libs/live2cms.js","searchable":2,"quickSearch":0,"filterable":0,"ext":"{{host}}/txt/json/live2mv_data.json"}
|
||||
* live2mv_data.json
|
||||
* 支持m3u类直播,支持线路归并。支持筛选切换显示模式
|
||||
[
|
||||
{"name": "甜蜜", "url": "http://zdir.kebedd69.repl.co/public/live.txt"},
|
||||
{"name": "俊于", "url": "http://home.jundie.top:81/Cat/tv/live.txt"},
|
||||
{"name": "菜妮丝", "url": "http://xn--ihqu10cn4c.xn--z7x900a.love:63/TV/tvzb.txt"},
|
||||
{"name": "布里m3u", "url": "http://jiexi.bulisite.top/m3u.php"},
|
||||
{"name": "吾爱", "url": "http://52bsj.vip:81/api/v3/file/get/763/live.txt?sign=87BTGT1_6AOry7FPwy_uuxFTv2Wcb9aDMj46rDdRTD8%3D%3A0"},
|
||||
{"name": "饭太硬", "url": "http://ftyyy.tk/live.txt"}
|
||||
]
|
||||
|
||||
* 提示 ext文件格式为json列表,name,url参数
|
||||
* 取消加密,减少性能问题
|
||||
*/
|
||||
String.prototype.rstrip = function (chars) {
|
||||
let regex = new RegExp(chars + "$");
|
||||
return this.replace(regex, "");
|
||||
};
|
||||
const request_timeout = 5000;
|
||||
const RKEY = 'live2cms'; // 源的唯一标识
|
||||
const VERSION = 'live2cms 20230619';
|
||||
const UA = 'Mozilla/5.0'; //默认请求ua
|
||||
const __ext = {data_dict:{}};
|
||||
const tips = `\n道长直播转点播js-当前版本${VERSION}`;
|
||||
const def_pic = 'https://avatars.githubusercontent.com/u/58679624?s=400&u=246b55fcda2b4850b444aebd6b8f8d6a12883f8c&v=4';
|
||||
|
||||
/**
|
||||
* 存在数据库配置表里, key字段对应值value,没有就新增,有就更新,调用此方法会清除key对应的内存缓存
|
||||
* @param k 键
|
||||
* @param v 值
|
||||
*/
|
||||
function setItem(k,v){
|
||||
local.set(RKEY,k,v);
|
||||
console.log(`规则${RKEY}设置${k} => ${v}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据库配置表对应的key字段的value,没有这个key就返回value默认传参.需要有缓存,第一次获取后会存在内存里
|
||||
* @param k 键
|
||||
* @param v 值
|
||||
* @returns {*}
|
||||
*/
|
||||
function getItem(k,v){
|
||||
return local.get(RKEY,k) || v;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除数据库key对应的一条数据,并清除此key对应的内存缓存
|
||||
* @param k
|
||||
*/
|
||||
function clearItem(k){
|
||||
local.delete(RKEY,k);
|
||||
}
|
||||
|
||||
var showMode = getItem('showMode','groups'); // groups按组分类显示 all全部一条线路展示
|
||||
var groupDict = JSON.parse(getItem('groupDict','{}')); // 搜索分组字典
|
||||
|
||||
/**
|
||||
* 打印日志
|
||||
* @param any 任意变量
|
||||
*/
|
||||
function print(any){
|
||||
any = any||'';
|
||||
if(typeof(any)=='object'&&Object.keys(any).length>0){
|
||||
try {
|
||||
any = JSON.stringify(any);
|
||||
console.log(any);
|
||||
}catch (e) {
|
||||
// console.log('print:'+e.message);
|
||||
console.log(typeof(any)+':'+any.length);
|
||||
}
|
||||
}else if(typeof(any)=='object'&&Object.keys(any).length<1){
|
||||
console.log('null object');
|
||||
}else{
|
||||
console.log(any);
|
||||
}
|
||||
}
|
||||
|
||||
/*** js自封装的方法 ***/
|
||||
|
||||
/**
|
||||
* 获取链接的host(带http协议的完整链接)
|
||||
* @param url 任意一个正常完整的Url,自动提取根
|
||||
* @returns {string}
|
||||
*/
|
||||
function getHome(url){
|
||||
if(!url){
|
||||
return ''
|
||||
}
|
||||
let tmp = url.split('//');
|
||||
url = tmp[0] + '//' + tmp[1].split('/')[0];
|
||||
try {
|
||||
url = decodeURIComponent(url);
|
||||
}catch (e) {}
|
||||
return url
|
||||
}
|
||||
|
||||
/**
|
||||
* m3u直播格式转一般直播格式
|
||||
* @param m3u
|
||||
* @returns {string}
|
||||
*/
|
||||
function convertM3uToNormal(m3u) {
|
||||
try {
|
||||
const lines = m3u.split('\n');
|
||||
let result = '';
|
||||
let TV='';
|
||||
// let flag='#genre#';
|
||||
let flag='#m3u#';
|
||||
let currentGroupTitle = '';
|
||||
lines.forEach((line) => {
|
||||
if (line.startsWith('#EXTINF:')) {
|
||||
const groupTitle = line.split('"')[1].trim();
|
||||
TV= line.split('"')[2].substring(1);
|
||||
if (currentGroupTitle !== groupTitle) {
|
||||
currentGroupTitle = groupTitle;
|
||||
result += `\n${currentGroupTitle},${flag}\n`;
|
||||
}
|
||||
} else if (line.startsWith('http')) {
|
||||
const splitLine = line.split(',');
|
||||
result += `${TV}\,${splitLine[0]}\n`;
|
||||
}
|
||||
});
|
||||
return result.trim();
|
||||
}catch (e) {
|
||||
print(`m3u直播转普通直播发生错误:${e.message}`);
|
||||
return m3u
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 线路归类
|
||||
* @param arr
|
||||
* @returns {*[][]}
|
||||
*/
|
||||
function merge(arr) {
|
||||
var parse = arguments[1] ? arguments[1] : '';
|
||||
var p = [];
|
||||
if (parse !== '' && typeof(parse)=="function") {
|
||||
p = arr.map(parse);
|
||||
}
|
||||
const createEmptyArrays = (length) => Array.from({
|
||||
length
|
||||
}, () => []);
|
||||
let lists = createEmptyArrays(arr.length);
|
||||
let sl = createEmptyArrays(arr.length);
|
||||
(p.length ? p : arr).forEach((k, index) => {
|
||||
var i = 0;
|
||||
while (sl[i].includes(k)) {
|
||||
i = i + 1
|
||||
}
|
||||
sl[i].push(k);
|
||||
lists[i].push(arr[index]);
|
||||
})
|
||||
lists=lists.filter(x=>x.some(k=>k.length));
|
||||
return lists
|
||||
}
|
||||
|
||||
/**
|
||||
* 线路归类/小棉袄算法
|
||||
* @param arr 数组
|
||||
* @param parse 解析式
|
||||
* @returns {[[*]]}
|
||||
*/
|
||||
function splitArray(arr,parse) {
|
||||
parse = parse&&typeof(parse)=='function'?parse:'';
|
||||
let result = [[arr[0]]];
|
||||
for (let i = 1; i < arr.length; i++) {
|
||||
let index = -1;
|
||||
for (let j = 0; j < result.length; j++) {
|
||||
if (parse&&result[j].map(parse).includes(parse(arr[i]))) {
|
||||
index = j;
|
||||
}else if((!parse) && result[j].includes(arr[i])){
|
||||
index = j;
|
||||
}
|
||||
}
|
||||
if (index >= result.length - 1) {
|
||||
result.push([]);
|
||||
result[result.length - 1].push(arr[i]);
|
||||
} else {
|
||||
result[index + 1].push(arr[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 搜索结果生成分组字典
|
||||
* @param arr
|
||||
* @param parse x=>x.split(',')[0]
|
||||
* @returns {{}}
|
||||
*/
|
||||
function gen_group_dict(arr,parse){
|
||||
let dict = {};
|
||||
arr.forEach((it)=>{
|
||||
let k = it.split(',')[0];
|
||||
if(parse && typeof(parse)==='function'){
|
||||
k = parse(k);
|
||||
}
|
||||
if(!dict[k]){
|
||||
dict[k] = [it]
|
||||
}else{
|
||||
dict[k].push(it);
|
||||
}
|
||||
});
|
||||
return dict
|
||||
}
|
||||
|
||||
const http = function (url, options = {}) {
|
||||
if(options.method ==='POST' && options.data){
|
||||
options.body = JSON.stringify(options.data);
|
||||
options.headers = Object.assign({'content-type':'application/json'}, options.headers);
|
||||
}
|
||||
options.timeout = request_timeout;
|
||||
if(!options.headers){
|
||||
options.headers = {};
|
||||
}
|
||||
let keys = Object.keys(options.headers).map(it=>it.toLowerCase());
|
||||
if(!keys.includes('referer')){
|
||||
options.headers['Referer'] = getHome(url);
|
||||
}
|
||||
if(!keys.includes('user-agent')){
|
||||
options.headers['User-Agent'] = UA;
|
||||
}
|
||||
console.log(JSON.stringify(options.headers));
|
||||
try {
|
||||
const res = req(url, options);
|
||||
// if(options.headers['Authorization']){
|
||||
// console.log(res.content);
|
||||
// }
|
||||
res.json = () => res&&res.content ? JSON.parse(res.content) : null;
|
||||
res.text = () => res&&res.content ? res.content:'';
|
||||
return res
|
||||
}catch (e) {
|
||||
return {
|
||||
json() {
|
||||
return null
|
||||
}, text() {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
["get", "post"].forEach(method => {
|
||||
http[method] = function (url, options = {}) {
|
||||
return http(url, Object.assign(options, {method: method.toUpperCase()}));
|
||||
}
|
||||
});
|
||||
|
||||
function init(ext) {
|
||||
console.log("当前版本号:"+VERSION);
|
||||
let data;
|
||||
if (typeof ext == 'object'){
|
||||
data = ext;
|
||||
print('live ext:object');
|
||||
} else if (typeof ext == 'string') {
|
||||
if (ext.startsWith('http')) {
|
||||
let ext_paramas = ext.split(';');
|
||||
let data_url = ext_paramas[0];
|
||||
print(data_url);
|
||||
data = http.get(data_url).json();
|
||||
}
|
||||
}
|
||||
print(data);
|
||||
__ext.data = data;
|
||||
print('init执行完毕');
|
||||
}
|
||||
|
||||
function home(filter) {
|
||||
let classes = __ext.data.map(it => ({
|
||||
type_id: it.url,
|
||||
type_name: it.name,
|
||||
}));
|
||||
print("----home----");
|
||||
let filter_dict = {};
|
||||
let filters = [
|
||||
{'key': 'show', 'name': '播放展示', 'value': [{'n': '多线路分组', 'v': 'groups'},{'n': '单线路', 'v': 'all'}]}
|
||||
];
|
||||
classes.forEach(it=>{
|
||||
filter_dict[it.type_id] = filters;
|
||||
});
|
||||
print(classes);
|
||||
return JSON.stringify({ 'class': classes,'filters': filter_dict});
|
||||
}
|
||||
|
||||
function homeVod(params) {
|
||||
let _get_url = __ext.data[0].url;
|
||||
let html;
|
||||
if(__ext.data_dict[_get_url]){
|
||||
html = __ext.data_dict[_get_url];
|
||||
}else{
|
||||
html = http.get(_get_url).text();
|
||||
if(/#EXTM3U/.test(html)){
|
||||
html = convertM3uToNormal(html);
|
||||
}
|
||||
__ext.data_dict[_get_url] = html;
|
||||
}
|
||||
// let arr = html.match(/.*?,#[\s\S].*?#/g);
|
||||
let arr = html.match(/.*?[,,]#[\s\S].*?#/g); // 可能存在中文逗号
|
||||
let _list = [];
|
||||
try {
|
||||
arr.forEach(it=>{
|
||||
let vname = it.split(/[,,]/)[0];
|
||||
let vtab = it.match(/#(.*?)#/)[0];
|
||||
_list.push({
|
||||
vod_name:vname,
|
||||
vod_id:_get_url+'$'+vname,
|
||||
vod_pic:def_pic,
|
||||
vod_remarks:vtab,
|
||||
});
|
||||
});
|
||||
}catch (e) {
|
||||
print('Live2cms获取首页推荐发送错误:'+e.message);
|
||||
}
|
||||
return JSON.stringify({ 'list': _list });
|
||||
}
|
||||
|
||||
function category(tid, pg, filter, extend) {
|
||||
let fl = filter?extend:{};
|
||||
if(fl.show){
|
||||
showMode = fl.show;
|
||||
setItem('showMode',showMode);
|
||||
}
|
||||
if(parseInt(pg)>1){
|
||||
return JSON.stringify({
|
||||
'list': [],
|
||||
});
|
||||
}
|
||||
let _get_url = tid;
|
||||
let html;
|
||||
if(__ext.data_dict[_get_url]){
|
||||
html = __ext.data_dict[_get_url];
|
||||
}else{
|
||||
html = http.get(_get_url).text();
|
||||
if(/#EXTM3U/.test(html)){
|
||||
html = convertM3uToNormal(html);
|
||||
}
|
||||
__ext.data_dict[_get_url] = html;
|
||||
}
|
||||
// let arr = html.match(/.*?[,,]#[\s\S].*?#/g);
|
||||
let arr = html.match(/.*?[,,]#[\s\S].*?#/g); // 可能存在中文逗号
|
||||
let _list = [];
|
||||
try {
|
||||
arr.forEach(it=>{
|
||||
let vname = it.split(/[,,]/)[0];
|
||||
let vtab = it.match(/#(.*?)#/)[0];
|
||||
_list.push({
|
||||
// vod_name:it.split(',')[0],
|
||||
vod_name:vname,
|
||||
vod_id:_get_url+'$'+vname,
|
||||
vod_pic:def_pic,
|
||||
vod_remarks:vtab,
|
||||
});
|
||||
});
|
||||
}catch (e) {
|
||||
print('Live2cms获取一级分类页发生错误:'+e.message);
|
||||
}
|
||||
|
||||
return JSON.stringify({
|
||||
'page': 1,
|
||||
'pagecount': 1,
|
||||
'limit': _list.length,
|
||||
'total': _list.length,
|
||||
'list': _list,
|
||||
});
|
||||
}
|
||||
|
||||
function detail(tid) { // ⛵ 港•澳•台
|
||||
let _get_url = tid.split('$')[0];
|
||||
let _tab = tid.split('$')[1];
|
||||
if(tid.includes('#search#')){
|
||||
let vod_name = _tab.replace('#search#','');
|
||||
let vod_play_from = '来自搜索';
|
||||
vod_play_from+=`:${_get_url}`;
|
||||
|
||||
// let vod_play_url = vod_name+'$'+_get_url;
|
||||
// print(vod_play_url);
|
||||
|
||||
let vod_play_url = groupDict[_get_url].map(x=>x.replace(',','$')).join('#');
|
||||
|
||||
return JSON.stringify({
|
||||
list: [{
|
||||
vod_id: tid,
|
||||
vod_name: '搜索:'+vod_name,
|
||||
type_name: "直播列表",
|
||||
vod_pic: def_pic,
|
||||
vod_content: tid,
|
||||
vod_play_from: vod_play_from,
|
||||
vod_play_url: vod_play_url,
|
||||
vod_director: tips,
|
||||
vod_remarks: `道长直播转点播js-当前版本${VERSION}`,
|
||||
}]
|
||||
});
|
||||
}
|
||||
let html;
|
||||
if(__ext.data_dict[_get_url]){
|
||||
html = __ext.data_dict[_get_url];
|
||||
}else{
|
||||
html = http.get(_get_url).text();
|
||||
if(/#EXTM3U/.test(html)){
|
||||
html = convertM3uToNormal(html);
|
||||
}
|
||||
__ext.data_dict[_get_url] = html;
|
||||
}
|
||||
// let a = new RegExp(`.*?${_tab},#[\\s\\S].*?#`);
|
||||
let a = new RegExp(`.*?${_tab.replace('(','\\(').replace(')','\\)')}[,,]#[\\s\\S].*?#`);
|
||||
let b = html.match(a)[0];
|
||||
let c = html.split(b)[1];
|
||||
if(c.match(/.*?[,,]#[\s\S].*?#/)){
|
||||
let d = c.match(/.*?[,,]#[\s\S].*?#/)[0];
|
||||
c = c.split(d)[0];
|
||||
}
|
||||
let arr = c.trim().split('\n');
|
||||
let _list = [];
|
||||
arr.forEach((it)=>{
|
||||
if(it.trim()){
|
||||
let t = it.trim().split(',')[0];
|
||||
let u = it.trim().split(',')[1];
|
||||
_list.push(t+'$'+u);
|
||||
}
|
||||
});
|
||||
|
||||
let vod_name = __ext.data.find(x=>x.url===_get_url).name;
|
||||
let vod_play_url;
|
||||
let vod_play_from;
|
||||
|
||||
if(showMode==='groups'){
|
||||
let groups = splitArray(_list,x=>x.split('$')[0]);
|
||||
let tabs = [];
|
||||
for(let i=0;i<groups.length;i++){
|
||||
if(i===0){
|
||||
tabs.push(vod_name+'1')
|
||||
}else{
|
||||
tabs.push(` ${i+1} `)
|
||||
}
|
||||
}
|
||||
vod_play_url = groups.map(it=>it.join('#')).join('$$$');
|
||||
vod_play_from = tabs.join('$$$');
|
||||
}else{
|
||||
vod_play_url = _list.join('#');
|
||||
vod_play_from = vod_name;
|
||||
}
|
||||
let vod = {
|
||||
vod_id: tid,
|
||||
vod_name: vod_name+'|'+_tab,
|
||||
type_name: "直播列表",
|
||||
vod_pic: def_pic,
|
||||
vod_content: tid,
|
||||
vod_play_from: vod_play_from,
|
||||
vod_play_url: vod_play_url,
|
||||
vod_director: tips,
|
||||
vod_remarks: `道长直播转点播js-当前版本${VERSION}`,
|
||||
};
|
||||
|
||||
return JSON.stringify({
|
||||
list: [vod]
|
||||
});
|
||||
}
|
||||
|
||||
function play(flag, id, flags) {
|
||||
let vod = {
|
||||
'parse': /m3u8/.test(id)?0:1,
|
||||
'playUrl': '',
|
||||
'url': id
|
||||
};
|
||||
print(vod);
|
||||
return JSON.stringify(vod);
|
||||
}
|
||||
|
||||
function search(wd, quick) {
|
||||
let _get_url = __ext.data[0].url;
|
||||
let html;
|
||||
if(__ext.data_dict[_get_url]){
|
||||
html = __ext.data_dict[_get_url];
|
||||
}else{
|
||||
html = http.get(_get_url).text();
|
||||
if(/#EXTM3U/.test(html)){
|
||||
html = convertM3uToNormal(html);
|
||||
}
|
||||
__ext.data_dict[_get_url] = html;
|
||||
}
|
||||
let str='';
|
||||
Object.keys(__ext.data_dict).forEach(()=>{
|
||||
str+=__ext.data_dict[_get_url];
|
||||
});
|
||||
let links = str.split('\n').filter(it=>it.trim() && it.includes(',') && it.split(',')[1].trim().startsWith('http'));
|
||||
links = links.map(it=>it.trim());
|
||||
let plays = Array.from(new Set(links));
|
||||
print('搜索关键词:'+wd);
|
||||
print('过滤前:'+plays.length);
|
||||
plays = plays.filter(it=>it.includes(wd));
|
||||
print('过滤后:'+plays.length);
|
||||
print(plays);
|
||||
let new_group = gen_group_dict(plays);
|
||||
groupDict = Object.assign(groupDict,new_group);
|
||||
// 搜索分组结果存至本地方便二级调用
|
||||
setItem('groupDict',JSON.stringify(groupDict));
|
||||
let _list = [];
|
||||
|
||||
|
||||
// plays.forEach((it)=>{
|
||||
// _list.push({
|
||||
// 'vod_name':it.split(',')[0],
|
||||
// 'vod_id':it.split(',')[1].trim()+'$'+it.split(',')[0].trim()+'#search#',
|
||||
// 'vod_pic':def_pic,
|
||||
// })
|
||||
// });
|
||||
|
||||
Object.keys(groupDict).forEach((it)=>{
|
||||
_list.push({
|
||||
'vod_name':it,
|
||||
'vod_id':it+'$'+wd+'#search#',
|
||||
'vod_pic':def_pic,
|
||||
});
|
||||
});
|
||||
return JSON.stringify({
|
||||
'list': _list
|
||||
});
|
||||
}
|
||||
|
||||
// 导出函数对象
|
||||
export default {
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
search: search
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
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
|
@ -0,0 +1,301 @@
|
|||
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=**',
|
||||
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',
|
||||
推荐:'.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};
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"aliToken": "",
|
||||
"quarkCookie": "",
|
||||
"ucCookie": "",
|
||||
"115Cookie": "",
|
||||
"pwdRb115": "",
|
||||
"goServerUrl": "http://127.0.0.1:9966",
|
||||
"ydAuth": ""
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
各网盘ck配置可以参考alist里的网盘添加
|
||||
|
||||
配置"pwdRb115": "" 115安全删除密码后 会自动删除转的文件 空间大的留空就行
|
||||
阿里源的原画 为阿里秒传115 (115不限速 非会员限制5g以下秒传)
|
||||
网盘集合.json 支持根据share_index名进行聚合(不同网盘也可以随意聚合)以减少分类数目 分类更加清晰 可以参考网盘集合.json写法
|
||||
|
||||
|
||||
|
||||
|
||||
今日更新
|
||||
1.更改bili 配置到tv 优先级逻辑为扫码大于本地大于配置
|
||||
2.增加youtube(简易版) 可手动选择节点
|
||||
|
||||
|
||||
1.修复阿里扫码不显示bug
|
||||
2.增强jar 安全
|
||||
3.新增小纸条
|
||||
|
||||
|
||||
|
||||
1.优化jar验证机制 减少闪退
|
||||
2.网盘合集夸克 uc增加对share_name的检索
|
||||
3.建议升级到最新版
|
||||
|
||||
|
||||
|
||||
1.配置中心 增加singbox(端口:1072 tg搜已写死1072端口) 可输入订阅地址或者直接用hiddify导出的配置 导入到jar
|
||||
有些订阅地址限制浏览器直接访问的 需要用到hiddify导出的配置 导入到jar 下载地址:https://hiddify.com/app/
|
||||
2.增加singbox ui
|
||||
3.阿里云盘弃用alist授权 稳定性更高
|
||||
|
||||
|
||||
1.增加tg搜(本地 需科学上网)
|
||||
|
||||
|
||||
|
||||
1.增加115秒传阿里(玩玩就行)
|
||||
2.增加豆瓣源,bili(需扫码登陆)
|
||||
3.修玩偶表哥系翻页
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1.配置中心增加网盘iso原盘调用外部播放器 开关
|
||||
2.配置中心增加网盘下载 开关
|
||||
3.网盘支持内置下载器下载
|
||||
4.继续优化夸克 会员默认线程改为14 如果以前设置过32 可以调回14 非会员64线程
|
||||
|
||||
1.打开 阿里秒传115 自动删除转存文件功能
|
||||
2.修复115 文件排序
|
||||
3.优化下配置中心
|
||||
4.115原盘 使用外置播放器打开
|
||||
5.优化列表文件显示
|
||||
|
||||
|
||||
1.配置中心增加uc、夸克、阿里扫码、网盘排序等(壳子需先获取外部存储权限)
|
||||
2.阿里、夸克根据是否会员自适应播放(夸克非会员线程默认64 可适当往上加)
|
||||
3.支持win 安卓模拟器使用
|
||||
|
||||
本包仅供技术学习交流
|
||||
|
||||
|
|
@ -0,0 +1,892 @@
|
|||
{
|
||||
"1": [
|
||||
{
|
||||
"key": "3",
|
||||
"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": "惊悚"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "11",
|
||||
"name": "年代",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
},
|
||||
{
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
},
|
||||
{
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
},
|
||||
{
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
},
|
||||
{
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
},
|
||||
{
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "1",
|
||||
"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": "其他"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2": [
|
||||
{
|
||||
"key": "3",
|
||||
"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": "惊悚"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "11",
|
||||
"name": "年代",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
},
|
||||
{
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
},
|
||||
{
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
},
|
||||
{
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
},
|
||||
{
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
},
|
||||
{
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "1",
|
||||
"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": "其他"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3": [
|
||||
{
|
||||
"key": "11",
|
||||
"name": "年代",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
},
|
||||
{
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
},
|
||||
{
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
},
|
||||
{
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
},
|
||||
{
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
},
|
||||
{
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "1",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "大陆",
|
||||
"v": "大陆"
|
||||
},
|
||||
{
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
},
|
||||
{
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
},
|
||||
{
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
},
|
||||
{
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
},
|
||||
{
|
||||
"n": "法国",
|
||||
"v": "法国"
|
||||
},
|
||||
{
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4": [
|
||||
{
|
||||
"key": "11",
|
||||
"name": "年代",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
},
|
||||
{
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
},
|
||||
{
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
},
|
||||
{
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
},
|
||||
{
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
},
|
||||
{
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "1",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "大陆",
|
||||
"v": "大陆"
|
||||
},
|
||||
{
|
||||
"n": "中国香港",
|
||||
"v": "香港"
|
||||
},
|
||||
{
|
||||
"n": "中国台湾",
|
||||
"v": "台湾"
|
||||
},
|
||||
{
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
},
|
||||
{
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
},
|
||||
{
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
},
|
||||
{
|
||||
"n": "西班牙",
|
||||
"v": "西班牙"
|
||||
},
|
||||
{
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
},
|
||||
{
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5": [
|
||||
{
|
||||
"key": "5",
|
||||
"name": "字母",
|
||||
"value": [
|
||||
{
|
||||
"n": "A",
|
||||
"v": "A"
|
||||
},
|
||||
{
|
||||
"n": "B",
|
||||
"v": "B"
|
||||
},
|
||||
{
|
||||
"n": "C",
|
||||
"v": "C"
|
||||
},
|
||||
{
|
||||
"n": "D",
|
||||
"v": "D"
|
||||
},
|
||||
{
|
||||
"n": "E",
|
||||
"v": "E"
|
||||
},
|
||||
{
|
||||
"n": "F",
|
||||
"v": "F"
|
||||
},
|
||||
{
|
||||
"n": "G",
|
||||
"v": "G"
|
||||
},
|
||||
{
|
||||
"n": "H",
|
||||
"v": "H"
|
||||
},
|
||||
{
|
||||
"n": "I",
|
||||
"v": "I"
|
||||
},
|
||||
{
|
||||
"n": "J",
|
||||
"v": "J"
|
||||
},
|
||||
{
|
||||
"n": "K",
|
||||
"v": "K"
|
||||
},
|
||||
{
|
||||
"n": "L",
|
||||
"v": "L"
|
||||
},
|
||||
{
|
||||
"n": "M",
|
||||
"v": "M"
|
||||
},
|
||||
{
|
||||
"n": "N",
|
||||
"v": "N"
|
||||
},
|
||||
{
|
||||
"n": "O",
|
||||
"v": "O"
|
||||
},
|
||||
{
|
||||
"n": "P",
|
||||
"v": "P"
|
||||
},
|
||||
{
|
||||
"n": "Q",
|
||||
"v": "Q"
|
||||
},
|
||||
{
|
||||
"n": "R",
|
||||
"v": "R"
|
||||
},
|
||||
{
|
||||
"n": "S",
|
||||
"v": "S"
|
||||
},
|
||||
{
|
||||
"n": "T",
|
||||
"v": "T"
|
||||
},
|
||||
{
|
||||
"n": "U",
|
||||
"v": "U"
|
||||
},
|
||||
{
|
||||
"n": "V",
|
||||
"v": "V"
|
||||
},
|
||||
{
|
||||
"n": "W",
|
||||
"v": "W"
|
||||
},
|
||||
{
|
||||
"n": "X",
|
||||
"v": "X"
|
||||
},
|
||||
{
|
||||
"n": "Y",
|
||||
"v": "Y"
|
||||
},
|
||||
{
|
||||
"n": "Z",
|
||||
"v": "Z"
|
||||
},
|
||||
{
|
||||
"n": "0-9",
|
||||
"v": "0-9"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6": [
|
||||
{
|
||||
"key": "11",
|
||||
"name": "年代",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "5",
|
||||
"name": "字母",
|
||||
"value": [
|
||||
{
|
||||
"n": "A",
|
||||
"v": "A"
|
||||
},
|
||||
{
|
||||
"n": "B",
|
||||
"v": "B"
|
||||
},
|
||||
{
|
||||
"n": "C",
|
||||
"v": "C"
|
||||
},
|
||||
{
|
||||
"n": "D",
|
||||
"v": "D"
|
||||
},
|
||||
{
|
||||
"n": "E",
|
||||
"v": "E"
|
||||
},
|
||||
{
|
||||
"n": "F",
|
||||
"v": "F"
|
||||
},
|
||||
{
|
||||
"n": "G",
|
||||
"v": "G"
|
||||
},
|
||||
{
|
||||
"n": "H",
|
||||
"v": "H"
|
||||
},
|
||||
{
|
||||
"n": "I",
|
||||
"v": "I"
|
||||
},
|
||||
{
|
||||
"n": "J",
|
||||
"v": "J"
|
||||
},
|
||||
{
|
||||
"n": "K",
|
||||
"v": "K"
|
||||
},
|
||||
{
|
||||
"n": "L",
|
||||
"v": "L"
|
||||
},
|
||||
{
|
||||
"n": "M",
|
||||
"v": "M"
|
||||
},
|
||||
{
|
||||
"n": "N",
|
||||
"v": "N"
|
||||
},
|
||||
{
|
||||
"n": "O",
|
||||
"v": "O"
|
||||
},
|
||||
{
|
||||
"n": "P",
|
||||
"v": "P"
|
||||
},
|
||||
{
|
||||
"n": "Q",
|
||||
"v": "Q"
|
||||
},
|
||||
{
|
||||
"n": "R",
|
||||
"v": "R"
|
||||
},
|
||||
{
|
||||
"n": "S",
|
||||
"v": "S"
|
||||
},
|
||||
{
|
||||
"n": "T",
|
||||
"v": "T"
|
||||
},
|
||||
{
|
||||
"n": "U",
|
||||
"v": "U"
|
||||
},
|
||||
{
|
||||
"n": "V",
|
||||
"v": "V"
|
||||
},
|
||||
{
|
||||
"n": "W",
|
||||
"v": "W"
|
||||
},
|
||||
{
|
||||
"n": "X",
|
||||
"v": "X"
|
||||
},
|
||||
{
|
||||
"n": "Y",
|
||||
"v": "Y"
|
||||
},
|
||||
{
|
||||
"n": "Z",
|
||||
"v": "Z"
|
||||
},
|
||||
{
|
||||
"n": "0-9",
|
||||
"v": "0-9"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"class": [
|
||||
{
|
||||
"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": "动物世界"
|
||||
}
|
||||
]
|
||||
|
||||
}
|
|
@ -0,0 +1,180 @@
|
|||
[
|
||||
{
|
||||
"share_index": "115&uc&夸克",
|
||||
"share_name": "115-电影大包,21t",
|
||||
"share_id": "swz8hp033xj",
|
||||
"share_pwd":"0000",
|
||||
"share_type":"115"
|
||||
},
|
||||
{
|
||||
"share_index": "115&uc&夸克",
|
||||
"share_name": "115-豆瓣电影Top250_12.65TB",
|
||||
"share_id": "swz8h1h33xj",
|
||||
"share_pwd":"0000",
|
||||
"share_type":"115"
|
||||
},
|
||||
{
|
||||
"share_index": "115&uc&夸克",
|
||||
"share_name": "115-整理好蓝光和4K_2.24PB",
|
||||
"share_id": "swzew4m3nc6",
|
||||
"share_pwd":"i0d7",
|
||||
"share_type":"115"
|
||||
},
|
||||
{
|
||||
"share_index": "UC",
|
||||
"share_name": "总资源",
|
||||
"share_id": "f4782ecce4eb4"
|
||||
},
|
||||
{
|
||||
"share_index": "115&uc&夸克",
|
||||
"share_name": "微凉夸克剧集",
|
||||
"share_id": "e20958b1ad9b"
|
||||
},
|
||||
{
|
||||
"share_index": "115&uc&夸克",
|
||||
"share_name": "微凉夸克国漫",
|
||||
"share_id": "fb6d4c39c83f"
|
||||
},
|
||||
{
|
||||
"share_index": "115&uc&夸克",
|
||||
"share_name": "全球夸克短剧",
|
||||
"share_id": "b9bb20e86c54"
|
||||
},
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "夸克热播剧",
|
||||
"share_id": "657d8c2b550f"
|
||||
},
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "夸克新电影",
|
||||
"share_id": "0a6d22042d07"
|
||||
},
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "晚风夸克合集",
|
||||
"share_id": "3efb8fb706bf"
|
||||
},
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "MTV精选1万首夸克",
|
||||
"share_id": "3e458103b556"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "NBA阿里",
|
||||
"share_id": "hVAgTmqUELD"
|
||||
},
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "夸克MV",
|
||||
"share_id": "e10ef5a111e5"
|
||||
},
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "GRT最新电影夸克",
|
||||
"share_id": "2b2216c8d8da"
|
||||
},
|
||||
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "短剧夸克",
|
||||
"share_id": "6a200a0487c4"
|
||||
},
|
||||
{
|
||||
"share_index": "夸克",
|
||||
"share_name": "短剧夸克2",
|
||||
"share_id": "5173a250c8f7"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "NBA阿里",
|
||||
"share_id": "uWa9gbM3RJ7"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "老湿傅阿里",
|
||||
"share_id": "5bsnAp5fbCW"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "优品阁",
|
||||
"share_id": "uWa9gbM3RJ7"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "阿里1T",
|
||||
"share_id": "mxAfB6eRgY4"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "GRT总链接",
|
||||
"share_id": "MtGFAWrTWx1"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "YYDS更新",
|
||||
"share_id": "73MzTG111kL"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "全球分享",
|
||||
"share_id": "zS888Dm8arT"
|
||||
},{
|
||||
"share_index": "阿里",
|
||||
"share_name": "老司机",
|
||||
"share_id": "5bsnAp5fbCW"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "平凡中的",
|
||||
"share_id": "4ydLxf7VgH7"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "短剧",
|
||||
"share_id": "5Fzz7JFuQyg"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "GRT剧集",
|
||||
"share_id": "PqYwaGCmY78"
|
||||
},
|
||||
{
|
||||
"share_name": "GRT易和谐电影",
|
||||
"share_id": "6LvWZoQo3nS"
|
||||
},
|
||||
{
|
||||
"share_name": "tacit0924",
|
||||
"share_id": "wbrhqM5HkSV",
|
||||
"share_pwd":"6666"
|
||||
},
|
||||
{
|
||||
"share_name": "黄妈",
|
||||
"share_id": "4bGRVUdUtct"
|
||||
},
|
||||
{
|
||||
"share_name": "YYDSVIP",
|
||||
"share_id": "dieULBdYP3D"
|
||||
},
|
||||
{
|
||||
"share_name": "YYDSHD",
|
||||
"share_id": "M6rD2CJXpRb"
|
||||
},
|
||||
{
|
||||
"share_name": "优源阁",
|
||||
"share_id": "RnjUi1urdb2"
|
||||
}, {
|
||||
"share_name": "风流动漫",
|
||||
"share_id": "WdaaeX7HK44"
|
||||
},
|
||||
{
|
||||
"share_name": "风流剧集",
|
||||
"share_id": "BLu6RUwRrLb"
|
||||
},
|
||||
{
|
||||
"share_index": "阿里",
|
||||
"share_name": "xiaaluo",
|
||||
"share_id": "sg8CdGUwmUr"
|
||||
}
|
||||
]
|
Loading…
Reference in New Issue