提交 dae8612d 编写于 作者: H hjdhnx

发布新版本,处理解析问题

上级 7f7b1dae
......@@ -4,6 +4,9 @@
{
"spider": "{{host}}/files/custom_spider.jar",
"parses":[
{"name":"keyu","type":1,"url":"http://newjiexi.gotka.top/keyu3.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","mgtv","芒果","letv","乐视","pptv","PPTV","sohu","bilibili","哔哩哔哩","哔哩"],"header":{"User-Agent":"okhttp/4.1.0"}}},
],
"drives": [{"name":"阿里","password":"43886374072944a2bcc55a0ed129ab48","type":"alidrive"}],
# "lives":[{"group":"redirect","channels":[{"name":"我的直播","urls":["proxy://do=live&type=txt&ext={{host}}/txt/直播.txt"]}]}],
"sites":[
......
......@@ -5,16 +5,20 @@
并发,Parallel,2
# 聚合,Demo,3
钢铁侠,https://json.freejx.in/?url=,1
绿叶,https://hc.izny.cn/json.php?url=,1
# 快看,http://api.8a5.cn/parse/kuaikan/de.php?url=,1
# 钢铁侠,https://json.freejx.in/?url=,1
# 绿叶,https://hc.izny.cn/json.php?url=,1
无名1,http://api.ckflv.cn/?url=,1
llq,https://hc.izny.cn/json.php?url=,1
BT5V,https://rx.bt5v.com/json/jsonindex.php/?url=,1
# 查询,https://chaxun.truechat365.com/?url= # 这个解析真的牛逼,只能电脑看
# llq,https://hc.izny.cn/json.php?url=,1
江湖,http://211.99.99.236:4567/jhjson/ceshi.php?url=,1
左岸,https://jx.bozrc.com:4433/player/?url=
GGTV搜集,https://play.fuqizhishi.com/juhe/API.php?appkey=caijijuhe220902&url=,1
ggtv,https://play.fuqizhishi.com/jx/API.php?appkey=xiaobai888&url=,1
# ggtv,https://play.fuqizhishi.com/jx/API.php?appkey=xiaobai888&url=,1
# 爱酷,https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url=,1
ok解析,https://okjx.cc/?url=
全民1,http://api.wpsseo.cn/?v=
m3u8tv,https://jx.m3u8.tv/jiexi/?url=
Fosi,https://play.fositv.com/?url=
诺讯,https://www.nxflv.com/?url=
......@@ -22,7 +26,7 @@ Fosi,https://play.fositv.com/?url=
208,https://v.2080kk.com/home/api?type=ys&uid=1308653&key=behnpstwxBCHJMQ029&url=,1
8090,https://www.8090.la/8090/?url=
365,https://chaxun.truechat365.com/?url=
爱酷,https://jx.zhanlangbu.com/API.php?appkey=53df3aa2fdb66bcbc4d05730b6fbfc71&url=,1
# 爱酷,https://jx.zhanlangbu.com/API.php?appkey=53df3aa2fdb66bcbc4d05730b6fbfc71&url=,1
插萝莉,http://chaloli.cn/home/api?type=ys&uid=1&key=dklsuzIKNPRVW14568&url=,1
无名2,https://h5.freejson.xyz/player/?url=
无名3,https://freejx.rx88.top:1234/?url=
......@@ -30,7 +34,6 @@ Fosi,https://play.fositv.com/?url=
真聊,https://chaxun.truechat365.com/?url=
猪蹄,https://jx.iztyy.com/svip/?url=
m2090,https://m2090.com/?url=
BT5V,https://rx.bt5v.com/json/jsonindex.php/?url=,1
# b = a.map(it=>it.name+','+it.url+','+it.type).join('\n');console.log(b);
# 思古解析,https://jsap.attakids.com/?url=
# 云解析,https://jx.ppflv.com/?url=
......
......@@ -52,6 +52,7 @@
- [X] 3.v3.7.6 新增优酷源(pluto专用)
- [X] 4.v3.7.7 新增酷云77源(pluto专用),新增猫了个咪源,优化request等方法的post参数传递,增加rc函数
- [X] 5.v3.7.8 增加单一搜索无匹配关键字自动打印源码,注释进入二级详情页的日志打印
- [X] 6.v3.7.9 增加了用户解析合并功能并处理了几个坏的解析(准备跑路,原因是感觉海阔又牛逼了)
###### 2022/09/22
- [X] 1.v3.7.3修复静态文件阿里token没渲染的bug,修复数据库升级bug,优化app.py
- [X] 2.v3.7.4修复自定义drives合并配置报错问题
......
......@@ -6,6 +6,7 @@ from base.spider import Spider
import json
import re
import difflib
import urllib
class Spider(Spider): # 元类 默认的元类 type
def getName(self):
......@@ -24,9 +25,13 @@ class Spider(Spider): # 元类 默认的元类 type
def homeContent(self, filter):
result = {}
cateManual = {
"七米蓝": "https://al.chirmyram.com",
"资源小站": "https://960303.xyz"
"七米蓝": "https://al.chirmyram.com/",
"梅花盘": "https://pan.142856.xyz/OneDrive",
"触光云盘": "https://pan.ichuguang.com",
# "小孟资源": "https://8023.haohanba.cn/小孟丨资源大合集/无损音乐",
"资源小站": "https://960303.xyz/ali",
"轻弹浅唱": "https://g.xiang.lol",
"小兵组网盘视频": "https://6vv.app"
}
classes = []
for k in cateManual:
......@@ -66,7 +71,10 @@ class Spider(Spider): # 元类 默认的元类 type
def categoryContent(self, tid, pg, filter, extend):
result = {}
if self.ver == '' or self.baseurl == '':
if tid.count('/') == 2:
tid = tid + '/'
nurl = re.findall(r"http.*://.*?/", tid)[0]
if self.ver == '' or self.baseurl != nurl:
self.getVersion(tid)
ver = self.ver
baseurl = self.baseurl
......@@ -85,6 +93,7 @@ class Spider(Spider): # 元类 默认的元类 type
jo = json.loads(rsp.text)
vodList = jo['data']['content']
videos = []
cid = ''
for vod in vodList:
if ver == 2:
img = vod['thumbnail']
......@@ -100,20 +109,9 @@ class Spider(Spider): # 元类 默认的元类 type
if vod['type'] == 1:
tag = "folder"
remark = "文件夹"
cid = baseurl + aid + vod['name']
#计算文件大小
else:
vname = re.findall(r"(.*)\.", vod['name'])[0]
vtpye = vod['name'].replace(vname,"")
if vtpye == '.mkv' or vtpye == '.mp4':
vstr = re.findall(r"\'name\': \'(.*?)\'", str(vodList))
if len(vstr) == 2:
suball = vstr
else:
suball = difflib.get_close_matches(vname, vstr, len(vodList), cutoff=0.8)
for sub in suball:
stype1 = sub.endswith(".ass")
stype2 = sub.endswith(".srt")
if stype1 is True or stype2 is True:
subt = '@@@'+aid + sub
size = vod['size']
if size > 1024 * 1024 * 1024 * 1024.0:
fs = "TB"
......@@ -127,15 +125,58 @@ class Spider(Spider): # 元类 默认的元类 type
elif size > 1024.0:
fs = "KB"
sz = round(size / (1024.0), 2)
else:
fs = "KB"
sz = round(size / (1024.0), 2)
tag = "file"
remark = str(sz) + fs
ifsubt = 'subt' in locals().keys()
if ifsubt is False:
aid = baseurl + aid + vod['name']
else:
aid = baseurl + aid + vod['name'] + subt
# 开始爬视频与字幕
srtvodList = str(vodList)
foldernum = srtvodList.count('\'type\': 1')
filename = len(vodList) - foldernum
if filename < 60:
if 'mp4' in vod['name'] or 'mkv' in vod['name'] or 'TS' in vod['name'] or 'flv' in vod[
'name'] or 'rmvb' in vod['name'] or 'mp3' in vod['name'] or 'flac' in vod['name'] or 'wav' in \
vod['name'] or 'wma' in vod['name'] or 'wma' in vod['name']:
cid = ''
for temvod in vodList:
if 'mp4' in temvod['name'] or 'mkv' in temvod['name'] or 'TS' in temvod['name'] or 'flv' in \
temvod['name'] or 'rmvb' in temvod['name'] or 'mp3' in temvod['name'] or 'flac' in \
temvod['name'] or 'wav' in temvod['name'] or 'wma' in temvod['name'] or 'wma' in \
temvod['name']:
vurl = baseurl + aid + temvod['name']
# 开始爬字幕
subname = re.findall(r"(.*)\.", temvod['name'])[0]
substr = re.findall(r"\'name\': \'(.*?)\'", str(vodList))
if len(substr) == 2:
suball = substr
else:
suball = difflib.get_close_matches(subname, substr, len(vodList), cutoff=0.8)
for sub in suball:
if sub.endswith(".ass") or sub.endswith(".srt"):
subt = '@@@' + baseurl + aid + sub
ifsubt = 'subt' in locals().keys()
if ifsubt is False:
cid = cid + '{0}${1}#'.format(temvod['name'], vurl)
else:
cid = cid + '{0}${1}{2}#'.format(temvod['name'], vurl, subt)
else:
cid = cid
if cid == '':
cid = baseurl + aid + vod['name']
else:
subname = re.findall(r"(.*)\.", vod['name'])[0]
substr = re.findall(r"\'name\': \'(.*?)\'", str(vodList))
if subname + '.ass' in substr:
subt = '@@@' + baseurl + aid + subname + '.ass'
cid = baseurl + aid + vod['name'] + subt
elif subname + '.srt' in substr:
subt = '@@@' + baseurl + aid + subname + '.srt'
cid = baseurl + aid + vod['name'] + subt
else:
cid = baseurl + aid + vod['name']
videos.append({
"vod_id": aid,
"vod_id": cid,
"vod_name": vod['name'],
"vod_pic": img,
"vod_tag": tag,
......@@ -150,79 +191,26 @@ class Spider(Spider): # 元类 默认的元类 type
def detailContent(self, array):
id = array[0]
ifsub = '@@@' in id
if ifsub is True:
ids = id.split('@@@')
vurl = ids[0]
if '$' in id:
ids = id.split('$')[1].split('#')[0].split('@@@')
url = ids[0]
else:
vurl = id
url = id
if self.ver == '' or self.baseurl == '':
self.getVersion(vurl)
ver = self.ver
self.getVersion(url)
baseurl = self.baseurl
if ifsub is True:
ids = id.split('@@@')
fileName = ids[0].replace(baseurl, "")
if '$' in id:
vid = re.findall(r"(.*)/", url.replace(baseurl, ""))[0].replace(baseurl, "")
else:
fileName = id.replace(baseurl, "")
param = {
"path": '/' + fileName,
"password": "",
"page_num": 1,
"page_size": 100
}
if ver == 2:
rsp = self.postJson(baseurl + 'api/public/path', param)
jo = json.loads(rsp.text)
vodList = jo['data']['files'][0]
if ifsub is True:
sparam = {
"path": '/' + ids[1],
"password": "",
"page_num": 1,
"page_size": 100
}
srsp = self.postJson(baseurl + 'api/public/path', sparam)
sjo = json.loads(srsp.text)
sList = sjo['data']['files'][0]
sub = '@@@' + sList['url']
elif ver == 3:
rsp = self.postJson(baseurl + 'api/fs/get', param)
jo = json.loads(rsp.text)
vodList = jo['data']
if ifsub is True:
sparam = {
"path": '/' + ids[1],
"password": "",
"page_num": 1,
"page_size": 100
}
srsp = self.postJson(baseurl + 'api/fs/get', sparam)
sjo = json.loads(srsp.text)
sList = sjo['data']
sub = '@@@' + sList['raw_url']
if ver == 2:
url = vodList['url']
pic = vodList['thumbnail']
elif ver == 3:
url = vodList['raw_url']
pic = vodList['thumb']
if ifsub is True:
purl = url + sub
else:
purl = url
vId = fileName
name = vodList['name']
tag = "file"
if vodList['type'] == 1:
tag = "folder"
vid = url.replace(re.findall(r".*/", url)[0], "")
id = vid + '$' + id
vod = {
"vod_id": vId,
"vod_name": name,
"vod_pic": pic,
"vod_tag": tag,
"vod_id": vid,
"vod_name": vid,
"vod_pic": '',
"vod_tag": '',
"vod_play_from": "播放",
"vod_play_url": name + '$' + purl
"vod_play_url": id
}
result = {
'list': [
......@@ -242,13 +230,88 @@ class Spider(Spider): # 元类 默认的元类 type
ifsub = '@@@' in id
if ifsub is True:
ids = id.split('@@@')
url = ids[0]
result['subt'] = ids[1]
if self.ver == '' or self.baseurl == '':
self.getVersion(ids[1])
ver = self.ver
baseurl = self.baseurl
fileName = ids[1].replace(baseurl, "")
vfileName = ids[0].replace(baseurl, "")
param = {
"path": '/' + fileName,
"password": "",
"page_num": 1,
"page_size": 100
}
vparam = {
"path": '/' + vfileName,
"password": "",
"page_num": 1,
"page_size": 100
}
if ver == 2:
rsp = self.postJson(baseurl + 'api/public/path', param)
jo = json.loads(rsp.text)
vodList = jo['data']['files'][0]
subturl = vodList['url']
vrsp = self.postJson(baseurl + 'api/public/path', vparam)
vjo = json.loads(vrsp.text)
vList = vjo['data']['files'][0]
url = vList['url']
elif ver == 3:
rsp = self.postJson(baseurl + 'api/fs/get', param)
jo = json.loads(rsp.text)
vodList = jo['data']
subturl = vodList['raw_url']
vrsp = self.postJson(baseurl + 'api/fs/get', vparam)
vjo = json.loads(vrsp.text)
vList = vjo['data']
url = vList['raw_url']
if subturl.startswith('http') is False:
head = re.findall(r"h.*?:", baseurl)[0]
subturl = head + subturl
if url.startswith('http') is False:
head = re.findall(r"h.*?:", baseurl)[0]
url = head + url
urlfileName = urllib.parse.quote(fileName)
subturl = subturl.replace(fileName, urlfileName)
urlvfileName = urllib.parse.quote(vfileName)
url = url.replace(vfileName, urlvfileName)
result['subt'] = subturl
else:
url = id
if self.ver == '' or self.baseurl == '':
self.getVersion(id)
ver = self.ver
baseurl = self.baseurl
vfileName = id.replace(baseurl, "")
vparam = {
"path": '/' + vfileName,
"password": "",
"page_num": 1,
"page_size": 100
}
if ver == 2:
vrsp = self.postJson(baseurl + 'api/public/path', vparam)
vjo = json.loads(vrsp.text)
vList = vjo['data']['files'][0]
driver = vList['driver']
url = vList['url']
elif ver == 3:
vrsp = self.postJson(baseurl + 'api/fs/get', vparam)
vjo = json.loads(vrsp.text)
vList = vjo['data']
url = vList['raw_url']
driver = vList['provider']
if url.startswith('http') is False:
head = re.findall(r"h.*?:", baseurl)[0]
url = head + url
urlvfileName = urllib.parse.quote(vfileName)
url = url.replace(vfileName, urlvfileName)
if driver == 'Baidu.Disk':
result["header"] = {"User-Agent": "pan.baidu.com"}
result["parse"] = 0
result["playUrl"] = ''
result["url"] = url
return result
config = {
......
#coding=utf-8
#!/usr/bin/python
import sys
sys.path.append('..')
from base.spider import Spider
import json
class Spider(Spider): # 元类 默认的元类 type
def getName(self):
return "快看影视"
def init(self,extend=""):
print("============{0}============".format(extend))
pass
def homeContent(self,filter):
result = {}
cateManual = {
"电视剧":"2",
"电影":"1",
"综艺":"3",
"动漫":"4",
"纪录片": "5"
}
classes = []
for k in cateManual:
classes.append({
'type_name':k,
'type_id':cateManual[k]
})
result['class'] = classes
if(filter):
result['filters'] = self.config['filter']
return result
def homeVideoContent(self):
rsp = self.fetch("http://api.8a5.cn/parse/kuaikan/py.php?do=homeVideoContent")
alists = json.loads(rsp.text)
alist = alists['list']
result = {
'list':alist
}
return result
def categoryContent(self,tid,pg,filter,extend):
result = {}
urlParams = []
params = ''
for key in extend:
urlParams.append(str(key) + '=' + extend[key])
params = '&'.join(urlParams)
url = 'http://api.8a5.cn/parse/kuaikan/py.php?do=categoryContent&tid={0}&page={1}&{2}'.format(tid, pg,params)
rsp = self.fetch(url)
alists = json.loads(rsp.text)
alist = alists['list']
result['list'] = alist
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self,array):
tid = array[0]
url = 'http://api.8a5.cn/parse/kuaikan/py.php?do=detailContent&id={0}'.format(tid)
rsp = self.fetch(url)
alists = json.loads(rsp.text)
vod = alists['vod']
result = {
'list':[
vod
]
}
return result
def searchContent(self,key,quick):
url = 'http://api.8a5.cn/parse/kuaikan/py.php?do=searchContent&wd={0}'.format(key)
rsp = self.fetch(url)
alists = json.loads(rsp.text)
list = alists['list']
result = {
'list':list
}
return result
def playerContent(self,flag,id,vipFlags):
result = {}
if 'api.8a5.cn' in id:
rsp = self.fetch(id)
alists = json.loads(rsp.text)
id = alists['url']
result["parse"] = 0
result["playUrl"] = ''
result["url"] = id
return result
config = {
"player": {},
"filter":{"2":[{"key":"area","name":"地区","value":[{"n":"全部","v":0},{"n":"内地","v":1},{"n":"中国香港","v":2},{"n":"中国台湾","v":3},{"n":"韩国","v":4},{"n":"日本","v":5},{"n":"泰国","v":6},{"n":"美国","v":7},{"n":"英国","v":8},{"n":"新加坡","v":9},{"n":"法国","v":10},{"n":"德国","v":11},{"n":"印度","v":12},{"n":"欧美","v":13},{"n":"其他","v":14}]},{"key":"year","name":"年份","value":[{"n":"全部","v":0},{"n":"2022","v":20},{"n":"2021","v":19},{"n":"2020","v":18},{"n":"2019","v":17},{"n":"2018","v":16},{"n":"2017","v":15},{"n":"2016","v":14},{"n":"2015","v":13},{"n":"2014","v":12},{"n":"2013","v":11},{"n":"2012","v":10},{"n":"2011","v":9},{"n":"2010","v":8},{"n":"2009","v":7},{"n":"2008","v":6},{"n":"2007","v":5},{"n":"2006","v":4},{"n":"2005","v":3},{"n":"2004","v":2},{"n":"更早","v":1}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":0},{"n":"剧情","v":2},{"n":"爱情","v":21},{"n":"犯罪","v":23},{"n":"搞笑","v":34},{"n":"武侠","v":19},{"n":"都市","v":6},{"n":"家庭","v":16},{"n":"职场","v":42},{"n":"国产","v":112},{"n":"国产剧","v":113},{"n":"年代","v":110},{"n":"文化","v":84},{"n":"网络剧","v":114},{"n":"芒果出品","v":115},{"n":"言情","v":1},{"n":"古装","v":8},{"n":"青春","v":15},{"n":"偶像","v":7},{"n":"伦理","v":3},{"n":"喜剧","v":4},{"n":"悬疑","v":5},{"n":"神话","v":13},{"n":"警匪","v":10},{"n":"历史","v":11},{"n":"励志","v":12},{"n":"情感","v":38},{"n":"战争","v":25},{"n":"电影版","v":74},{"n":"其他","v":79},{"n":"谍战","v":14},{"n":"校园","v":61},{"n":"农村","v":88},{"n":"动作","v":17},{"n":"传记","v":29},{"n":"科幻","v":20},{"n":"惊悚","v":31},{"n":"冒险","v":56},{"n":"同性","v":111},{"n":"恋爱","v":58},{"n":"奇幻","v":24},{"n":"生活","v":39},{"n":"歌舞","v":30},{"n":"恐怖","v":22},{"n":"原创","v":86},{"n":"魔幻","v":85},{"n":"战斗","v":80},{"n":"军旅","v":104},{"n":"文艺","v":27},{"n":"音乐","v":41},{"n":"新番动画","v":77},{"n":"刑侦","v":87},{"n":"情景","v":18},{"n":"玄幻","v":60},{"n":"军事","v":9},{"n":"经典","v":55},{"n":"推理","v":57},{"n":"革命","v":109},{"n":"纪录","v":28},{"n":"运动","v":66},{"n":"热血","v":53},{"n":"竞技","v":70},{"n":"童话","v":69},{"n":"友情","v":72},{"n":"少儿","v":46},{"n":"真人秀","v":33},{"n":"动画","v":26},{"n":"灾难","v":103},{"n":"纪实","v":48},{"n":"机战","v":63},{"n":"治愈","v":59},{"n":"时尚","v":44},{"n":"脱口秀","v":32},{"n":"美食","v":43},{"n":"戏曲","v":108},{"n":"人文","v":83},{"n":"完结动画","v":78},{"n":"社会","v":71},{"n":"益智","v":68},{"n":"亲子","v":64},{"n":"访谈","v":37},{"n":"游戏","v":45},{"n":"晚会","v":40},{"n":"美少女","v":54},{"n":"动物","v":62},{"n":"真人版","v":73},{"n":"科学","v":92},{"n":"内地","v":117}]}],"1":[{"key":"area","name":"地区","value":[{"n":"全部","v":0},{"n":"中国","v":1},{"n":"中国香港","v":2},{"n":"中国台湾","v":3},{"n":"韩国","v":4},{"n":"日本","v":5},{"n":"泰国","v":6},{"n":"美国","v":7},{"n":"英国","v":8},{"n":"新加坡","v":9},{"n":"法国","v":10},{"n":"德国","v":11},{"n":"印度","v":12},{"n":"欧美","v":13},{"n":"其他","v":14}]},{"key":"year","name":"年份","value":[{"n":"全部","v":0},{"n":"2022","v":20},{"n":"2021","v":19},{"n":"2020","v":18},{"n":"2019","v":17},{"n":"2018","v":16},{"n":"2017","v":15},{"n":"2016","v":14},{"n":"2015","v":13},{"n":"2014","v":12},{"n":"2013","v":11},{"n":"2012","v":10},{"n":"2011","v":9},{"n":"2010","v":8},{"n":"2009","v":7},{"n":"2008","v":6},{"n":"2007","v":5},{"n":"2006","v":4},{"n":"2005","v":3},{"n":"2004","v":2},{"n":"更早","v":1}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":0},{"n":"言情","v":1},{"n":"动作","v":17},{"n":"惊悚","v":31},{"n":"剧情","v":2},{"n":"科幻","v":20},{"n":"喜剧","v":4},{"n":"冒险","v":56},{"n":"动画","v":26},{"n":"悬疑","v":5},{"n":"恐怖","v":22},{"n":"文艺","v":27},{"n":"纪实","v":48},{"n":"爱情","v":21},{"n":"历史","v":11},{"n":"犯罪","v":23},{"n":"战争","v":25},{"n":"青春","v":15},{"n":"家庭","v":16},{"n":"传记","v":29},{"n":"奇幻","v":24},{"n":"电影版","v":74},{"n":"古装","v":8},{"n":"纪录","v":28},{"n":"恋爱","v":58},{"n":"伦理","v":3},{"n":"歌舞","v":30},{"n":"音乐","v":41},{"n":"推理","v":57},{"n":"武侠","v":19},{"n":"警匪","v":10},{"n":"科普","v":102},{"n":"灾难","v":103},{"n":"军旅","v":104},{"n":"戏曲","v":108},{"n":"革命","v":109},{"n":"文化","v":84},{"n":"运动","v":66},{"n":"社会","v":71},{"n":"年代","v":110},{"n":"同性","v":111},{"n":"励志","v":12},{"n":"热血","v":53},{"n":"教育","v":90},{"n":"神话","v":13},{"n":"谍战","v":14},{"n":"搞笑","v":34},{"n":"情感","v":38},{"n":"治愈","v":59},{"n":"校园","v":61},{"n":"枪战","v":98},{"n":"玄幻","v":60},{"n":"魔幻","v":85},{"n":"友情","v":72},{"n":"少儿","v":46},{"n":"体育","v":47},{"n":"经典","v":55},{"n":"军事","v":9},{"n":"脱口秀","v":32},{"n":"刑侦","v":87},{"n":"农村","v":88},{"n":"美食","v":43},{"n":"竞技","v":70},{"n":"都市","v":6},{"n":"其他","v":79},{"n":"真人版","v":73},{"n":"战斗","v":80},{"n":"完结动画","v":78},{"n":"美少女","v":54},{"n":"亲子","v":64},{"n":"生活","v":39},{"n":"时尚","v":44},{"n":"美术","v":49},{"n":"动物","v":62},{"n":"自然","v":89},{"n":"旅游","v":82},{"n":"人文","v":83},{"n":"真人秀","v":33},{"n":"访谈","v":37},{"n":"晚会","v":40},{"n":"职场","v":42},{"n":"财经","v":50},{"n":"偶像","v":7},{"n":"科学","v":92},{"n":"解说","v":93},{"n":"新闻","v":96},{"n":"内地","v":117},{"n":"明星","v":116},{"n":"国产","v":112},{"n":"益智","v":68},{"n":"儿歌","v":65},{"n":"相声","v":81}]}],"3":[{"key":"area","name":"地区","value":[{"n":"全部","v":0},{"n":"内地","v":1},{"n":"中国香港","v":2},{"n":"中国台湾","v":3},{"n":"韩国","v":4},{"n":"日本","v":5},{"n":"泰国","v":6},{"n":"美国","v":7},{"n":"英国","v":8},{"n":"新加坡","v":9},{"n":"法国","v":10},{"n":"德国","v":11},{"n":"印度","v":12},{"n":"欧美","v":13},{"n":"其他","v":14}]},{"key":"year","name":"年份","value":[{"n":"全部","v":0},{"n":"2022","v":20},{"n":"2021","v":19},{"n":"2020","v":18},{"n":"2019","v":17},{"n":"2018","v":16},{"n":"2017","v":15},{"n":"2016","v":14},{"n":"2015","v":13},{"n":"2014","v":12},{"n":"2013","v":11},{"n":"2012","v":10},{"n":"2011","v":9},{"n":"2010","v":8},{"n":"2009","v":7},{"n":"2008","v":6},{"n":"2007","v":5},{"n":"2006","v":4},{"n":"2005","v":3},{"n":"2004","v":2},{"n":"更早","v":1}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":0},{"n":"游戏","v":45},{"n":"推理","v":57},{"n":"真人秀","v":33},{"n":"生活","v":39},{"n":"言情","v":1},{"n":"青春","v":15},{"n":"爱情","v":21},{"n":"情感","v":38},{"n":"恋爱","v":58},{"n":"都市","v":6},{"n":"家庭","v":16},{"n":"电影版","v":74},{"n":"育儿","v":100},{"n":"脱口秀","v":32},{"n":"少儿","v":46},{"n":"动画","v":26},{"n":"教育","v":90},{"n":"亲子","v":64},{"n":"竞赛","v":101},{"n":"搞笑","v":34},{"n":"原创","v":86},{"n":"文化","v":84},{"n":"科普","v":102},{"n":"体育","v":47},{"n":"灾难","v":103},{"n":"同性","v":111},{"n":"时实","v":103},{"n":"军事","v":9},{"n":"军旅","v":104},{"n":"战争","v":25},{"n":"启蒙","v":105},{"n":"舞蹈","v":106},{"n":"竞技","v":70},{"n":"采访","v":107},{"n":"访谈","v":37},{"n":"戏曲","v":108},{"n":"革命","v":109},{"n":"历史","v":11},{"n":"纪录","v":28},{"n":"文艺","v":27},{"n":"传记","v":29},{"n":"人文","v":83},{"n":"文献","v":91},{"n":"音乐","v":41},{"n":"励志","v":12},{"n":"选秀","v":35},{"n":"动作","v":17},{"n":"冒险","v":56},{"n":"偶像","v":7},{"n":"剧情","v":2},{"n":"农村","v":88},{"n":"神话","v":13},{"n":"奇幻","v":24},{"n":"经典","v":55},{"n":"谍战","v":14},{"n":"歌舞","v":30},{"n":"美术","v":49},{"n":"校园","v":61},{"n":"社会","v":71},{"n":"旅游","v":82},{"n":"喜剧","v":4},{"n":"伦理","v":3},{"n":"悬疑","v":5},{"n":"科幻","v":20},{"n":"犯罪","v":23},{"n":"惊悚","v":31},{"n":"古装","v":8},{"n":"恐怖","v":22},{"n":"警匪","v":10},{"n":"纪实","v":48},{"n":"美食","v":43},{"n":"动物","v":62},{"n":"友情","v":72},{"n":"儿歌","v":65},{"n":"热血","v":53},{"n":"治愈","v":59},{"n":"运动","v":66},{"n":"魔幻","v":85},{"n":"晚会","v":40},{"n":"真人版","v":73},{"n":"益智","v":68},{"n":"分享","v":98},{"n":"其他","v":79},{"n":"自然","v":89},{"n":"相声","v":81},{"n":"八卦","v":36},{"n":"播报","v":52},{"n":"时尚","v":44},{"n":"汽车","v":51},{"n":"职场","v":42},{"n":"新闻","v":96},{"n":"财经","v":50},{"n":"科学","v":92},{"n":"教学","v":99},{"n":"解说","v":93},{"n":"枪战","v":98},{"n":"宣传","v":97},{"n":"战斗","v":80},{"n":"刑侦","v":87},{"n":"童话","v":69},{"n":"怪物","v":67},{"n":"武侠","v":19},{"n":"演讲","v":95},{"n":"明星","v":116},{"n":"游戏竞技","v":124}]}],"4":[{"key":"area","name":"\u5730\u533a","value":[{"n":"\u5168\u90e8","v":0},{"n":"\u5185\u5730","v":1},{"n":"\u4e2d\u56fd\u9999\u6e2f","v":2},{"n":"\u4e2d\u56fd\u53f0\u6e7e","v":3},{"n":"\u97e9\u56fd","v":4},{"n":"\u65e5\u672c","v":5},{"n":"\u6cf0\u56fd","v":6},{"n":"\u7f8e\u56fd","v":7},{"n":"\u82f1\u56fd","v":8},{"n":"\u65b0\u52a0\u5761","v":9},{"n":"\u6cd5\u56fd","v":10},{"n":"\u5fb7\u56fd","v":11},{"n":"\u5370\u5ea6","v":12},{"n":"\u6b27\u7f8e","v":13},{"n":"\u5176\u4ed6","v":14}]},{"key":"year","name":"\u5e74\u4efd","value":[{"n":"\u5168\u90e8","v":0},{"n":"2022","v":20},{"n":"2021","v":19},{"n":"2020","v":18},{"n":"2019","v":17},{"n":"2018","v":16},{"n":"2017","v":15},{"n":"2016","v":14},{"n":"2015","v":13},{"n":"2014","v":12},{"n":"2013","v":11},{"n":"2012","v":10},{"n":"2011","v":9},{"n":"2010","v":8},{"n":"2009","v":7},{"n":"2008","v":6},{"n":"2007","v":5},{"n":"2006","v":4},{"n":"2005","v":3},{"n":"2004","v":2},{"n":"\u66f4\u65e9","v":1}]},{"key":"class","name":"\u5267\u60c5","value":[{"n":"\u5168\u90e8","v":0},{"n":"\u559c\u5267","v":4},{"n":"\u53e4\u88c5","v":8},{"n":"\u6b66\u4fa0","v":19},{"n":"\u52a8\u753b","v":26},{"n":"\u8a00\u60c5","v":1},{"n":"\u5386\u53f2","v":11},{"n":"\u641e\u7b11","v":34},{"n":"\u5192\u9669","v":56},{"n":"\u9b54\u5e7b","v":85},{"n":"\u52b1\u5fd7","v":12},{"n":"\u9752\u6625","v":15},{"n":"\u7231\u60c5","v":21},{"n":"\u6821\u56ed","v":61},{"n":"\u5bb6\u5ead","v":16},{"n":"\u5947\u5e7b","v":24},{"n":"\u7ecf\u5178","v":55},{"n":"\u4eb2\u5b50","v":64},{"n":"\u5267\u60c5","v":2},{"n":"\u604b\u7231","v":58},{"n":"\u7f8e\u5c11\u5973","v":54},{"n":"\u8fd0\u52a8","v":66},{"n":"\u52a8\u4f5c","v":17},{"n":"\u4f26\u7406","v":3},{"n":"\u70ed\u8840","v":53},{"n":"\u60ac\u7591","v":5},{"n":"\u6050\u6016","v":22},{"n":"\u60ca\u609a","v":31},{"n":"\u5076\u50cf","v":7},{"n":"\u7384\u5e7b","v":60},{"n":"\u5e7b\u60f3","v":60},{"n":"\u7535\u5f71\u7248","v":74},{"n":"\u79d1\u5e7b","v":20},{"n":"\u804c\u573a","v":42},{"n":"\u5176\u4ed6","v":79},{"n":"\u6cbb\u6108","v":59},{"n":"\u90fd\u5e02","v":6},{"n":"\u65b0\u756a\u52a8\u753b","v":77},{"n":"\u751f\u6d3b","v":39},{"n":"\u6218\u6597","v":80},{"n":"\u80b2\u513f","v":100},{"n":"\u76ca\u667a","v":68},{"n":"\u6587\u5316","v":84},{"n":"\u771f\u4eba\u7248","v":73},{"n":"\u79d1\u666e","v":102},{"n":"\u52a8\u7269","v":62},{"n":"\u821e\u8e48","v":106},{"n":"\u795e\u8bdd","v":13},{"n":"\u6218\u4e89","v":25},{"n":"\u771f\u4eba\u79c0","v":33},{"n":"\u5c11\u513f","v":46},{"n":"\u7ae5\u8bdd","v":69},{"n":"\u5b8c\u7ed3\u52a8\u753b","v":78},{"n":"\u6559\u80b2","v":90},{"n":"\u7ade\u6280","v":70},{"n":"\u4f53\u80b2","v":47},{"n":"\u673a\u6218","v":63},{"n":"\u539f\u521b","v":86},{"n":"\u63a8\u7406","v":57},{"n":"\u6587\u827a","v":27},{"n":"\u60c5\u611f","v":38},{"n":"\u7f8e\u98df","v":43},{"n":"\u97f3\u4e50","v":41},{"n":"\u513f\u6b4c","v":65},{"n":"\u602a\u7269","v":67},{"n":"\u793e\u4f1a","v":71},{"n":"\u53cb\u60c5","v":72},{"n":"\u72af\u7f6a","v":23},{"n":"\u6b4c\u821e","v":30},{"n":"\u707e\u96be","v":103},{"n":"\u519b\u65c5","v":104},{"n":"\u5e74\u4ee3","v":110},{"n":"\u6e38\u620f","v":45},{"n":"\u540c\u6027","v":111},{"n":"\u5211\u4fa6","v":87},{"n":"TV\u7248","v":76},{"n":"\u8c0d\u6218","v":14},{"n":"OVA\u7248","v":75},{"n":"\u7eaa\u5f55","v":28},{"n":"\u4f20\u8bb0","v":29},{"n":"\u7f8e\u672f","v":49},{"n":"\u64ad\u62a5","v":52},{"n":"\u516b\u5366","v":36},{"n":"\u542f\u8499","v":105},{"n":"\u67aa\u6218","v":98},{"n":"\u81ea\u7136","v":89},{"n":"\u8131\u53e3\u79c0","v":32},{"n":"\u9009\u79c0","v":35},{"n":"\u65c5\u6e38","v":82},{"n":"\u7eaa\u5b9e","v":48},{"n":"\u60c5\u666f","v":18},{"n":"\u665a\u4f1a","v":40},{"n":"\u8bbf\u8c08","v":37},{"n":"\u65f6\u5c1a","v":44},{"n":"\u79d1\u5b66","v":92},{"n":"\u519b\u4e8b","v":9},{"n":"\u6587\u732e","v":91},{"n":"\u519c\u6751","v":88},{"n":"\u89e3\u8bf4","v":93},{"n":"\u65b0\u95fb","v":96},{"n":"\u8d22\u7ecf","v":50},{"n":"\u6c7d\u8f66","v":51},{"n":"\u56fd\u4ea7","v":112}]}],"5":[{"key":"area","name":"\u5730\u533a","value":[{"n":"\u5168\u90e8","v":0},{"n":"\u5185\u5730","v":1},{"n":"\u4e2d\u56fd\u9999\u6e2f","v":2},{"n":"\u4e2d\u56fd\u53f0\u6e7e","v":3},{"n":"\u97e9\u56fd","v":4},{"n":"\u65e5\u672c","v":5},{"n":"\u7f8e\u56fd","v":7},{"n":"\u82f1\u56fd","v":8},{"n":"\u6cd5\u56fd","v":10},{"n":"\u5fb7\u56fd","v":11},{"n":"\u5370\u5ea6","v":12},{"n":"\u6b27\u7f8e","v":13},{"n":"\u5176\u4ed6","v":14}]},{"key":"year","name":"\u5e74\u4efd","value":[{"n":"\u5168\u90e8","v":0},{"n":"2022","v":20},{"n":"2021","v":19},{"n":"2020","v":18},{"n":"2019","v":17},{"n":"2018","v":16},{"n":"2017","v":15},{"n":"2016","v":14},{"n":"2015","v":13},{"n":"2014","v":12},{"n":"2013","v":11},{"n":"2012","v":10},{"n":"2011","v":9},{"n":"2010","v":8},{"n":"2009","v":7},{"n":"2008","v":6},{"n":"2007","v":5},{"n":"2006","v":4},{"n":"2005","v":3},{"n":"2004","v":2},{"n":"\u66f4\u65e9","v":1}]},{"key":"class","name":"\u5267\u60c5","value":[{"n":"\u5168\u90e8","v":0},{"n":"\u5386\u53f2","v":11},{"n":"\u52b1\u5fd7","v":12},{"n":"\u72af\u7f6a","v":23},{"n":"\u793e\u4f1a","v":71},{"n":"\u6218\u4e89","v":25},{"n":"\u7eaa\u5f55","v":28},{"n":"\u7eaa\u5b9e","v":48},{"n":"\u81ea\u7136","v":89},{"n":"\u6587\u5316","v":84},{"n":"\u4f20\u8bb0","v":29},{"n":"\u97f3\u4e50","v":41},{"n":"\u89e3\u8bf4","v":93},{"n":"\u79d1\u666e","v":102},{"n":"\u795e\u8bdd","v":13},{"n":"\u9752\u6625","v":15},{"n":"\u5bb6\u5ead","v":16},{"n":"\u5267\u60c5","v":2},{"n":"\u7f8e\u98df","v":43},{"n":"\u5c11\u513f","v":46},{"n":"\u8fd0\u52a8","v":66},{"n":"\u5176\u4ed6","v":79},{"n":"\u79d1\u5e7b","v":20},{"n":"\u60ca\u609a","v":31},{"n":"\u52a8\u753b","v":26},{"n":"\u5192\u9669","v":56},{"n":"\u6587\u827a","v":27},{"n":"\u8131\u53e3\u79c0","v":32},{"n":"\u65b0\u95fb","v":96},{"n":"\u771f\u4eba\u79c0","v":33},{"n":"\u751f\u6d3b","v":39},{"n":"\u4f53\u80b2","v":47},{"n":"\u8d22\u7ecf","v":50},{"n":"\u52a8\u7269","v":62},{"n":"\u60c5\u611f","v":38},{"n":"\u7535\u5f71\u7248","v":74},{"n":"\u65c5\u6e38","v":82},{"n":"\u4eba\u6587","v":83},{"n":"\u519b\u4e8b","v":9},{"n":"\u6559\u80b2","v":90},{"n":"\u559c\u5267","v":4},{"n":"\u60ac\u7591","v":5},{"n":"\u6821\u56ed","v":61},{"n":"\u91c7\u8bbf","v":107},{"n":"\u79d1\u5b66","v":92}]}]}
}
def isVideoFormat(self,url):
pass
def manualVideoCheck(self):
pass
def localProxy(self,param):
return [200, "video/MP2T", action, ""]
......@@ -81,7 +81,7 @@ def custom_merge(original:dict,custom:dict):
if key in new_keys:
updateObj[key] = custom[key]
for key in ['drives','sites','flags','ads']:
for key in ['drives','sites','flags','ads','parses']:
if key in new_keys:
extend_obj[key] = custom[key]
......@@ -93,7 +93,7 @@ def custom_merge(original:dict,custom:dict):
original[key].extend(extend_obj[key])
else:
original[key] = extend_obj[key]
logger.info(f'合并配置共有解析数量:{len(original.get("parses"))}')
return original
def getCustonDict(host,ali_token=''):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册