更新线路

整体线路:v08.27
潇洒线路:v08.27(20)
This commit is contained in:
Liu
2025-08-28 10:27:36 +08:00
parent 459a67d55b
commit 1d042a8341
9 changed files with 1295 additions and 2140 deletions

View File

@@ -1,5 +1,5 @@
# tvboxtg # tvboxtg
# #
整体更新25.08.24 整体更新25.08.27
# #
The resources are sourced from the internet and are only used for learning purposes. Please delete them yourself 24 hours after using them for learning. The resources are sourced from the internet and are only used for learning purposes. Please delete them yourself 24 hours after using them for learning.

View File

@@ -134,33 +134,26 @@
"type": "rect", "type": "rect",
"ratio": 1.333 "ratio": 1.333
}, },
"ext": "" "ext": "https://ka1dfj.slsw6.com"
},
{
"key": "AppQi1",
"name": "🎴爱盈┃小米",
"type": 3,
"api": "csp_AppQi",
"changeable": "0",
"quickSearch": 0,
"filterable": 1,
"ext": "BciM/oLDYQqSU++RAsI5xz2Dmz98Blyw0pp0T+0QPiq/bSU1IhcLmPsn25NijfG6B3fLoAmVGEL0/tWb+o0nZYn1u5i3pWNxWaYYmNV1x0c="
}, },
{ {
"key": "鲸鱼", "key": "鲸鱼",
"name": "🐋鲸鱼┃测试", "name": "🐋鲸鱼┃小米",
"quickSearch": 0, "quickSearch": 0,
"searchable": 1, "searchable": 1,
"type": 3, "type": 3,
"api": "./api/getapp3.4.2.py", "api": "csp_AppQi",
"ext": { "ext": "rP+4azM8YFgp3eAhyeALtUUEFpbkqmzGj2V5VZryxRbpkSjlsHbarRCZPOInvId4s3WK9rZ2YJsDy8NvMqQKQXowVmh33j+qD55VxmvMzzffqLi7UXvCKdy6PzbDhzFq"
"host": "https://jingyu4k-1312635929.cos.ap-nanjing.myqcloud.com/1.json",
"datakey": "AAdgrdghjfgswerA",
"api": 2
}
},
{
"key": "爱影视",
"name": "🎴爱盈┃测试",
"quickSearch": 0,
"searchable": 1,
"type": 3,
"api": "./api/getapp3.4.2.py",
"ext": {
"host": "https://aysappto.oss-cn-chengdu.aliyuncs.com/qj1.txt",
"datakey": "dksvndkaAjekakcE",
"api": 2
}
}, },
{ {
"key": "娱乐", "key": "娱乐",
@@ -235,8 +228,8 @@
"type": 3, "type": 3,
"searchable": 1, "searchable": 1,
"quickSearch": 0, "quickSearch": 0,
"api": "csp_AppGet", "api": "csp_AppQi",
"ext": "rP+4azM8YFgp3eAhyeALtUUEFpbkqmzGj2V5VZryxRbpkSjlsHbarRCZPOInvId4s3WK9rZ2YJsDy8NvMqQKQXowVmh33j+qD55VxmvMzzfiJ2fHkCRZg4+8NFWs+b1X" "ext": "9ee0oa0Y30GapSvZ2C2RVE2HwH08KKvP0VhAZCVWpnluXpZNLRZrNCMeKyCWw1JOj3jlA6tSdRPHvvTyBCuIMzwlKeODvXst4zEi0DFYqmEXOu+cG8rF7/kIckBMVYvn"
}, },
{ {
"key": "麻花", "key": "麻花",
@@ -244,8 +237,8 @@
"type": 3, "type": 3,
"quickSearch": 0, "quickSearch": 0,
"searchable": 1, "searchable": 1,
"api": "csp_AppGet", "api": "csp_AppQi",
"ext": "8DBhgTHlwsdde1V+XNnHWDUo96bisLPlXXWowe/BjAkFTByXVW8rl6nRNIr6DTC0" "ext": "lo54N2bJ4DtrhxC9P676hHekMnvMvX1mNNhVKf3kE5Wgy3H/b30VkkDKAYauTqZsDdvpB5GqFDm8YyeyiKclJTSLQ/tOARL2p/dbX8OIae9/PHnAUKONnpKuoD52E5AT"
}, },
{ {
"key": "QD4K", "key": "QD4K",
@@ -261,33 +254,6 @@
"apisignkey": "lvdoutv-1.0.0" "apisignkey": "lvdoutv-1.0.0"
} }
}, },
{
"key": "比迪",
"name": "🐕比迪┃影视",
"type": 3,
"quickSearch": 0,
"playerType": 1,
"searchable": 1,
"api": "csp_AppQi",
"ext": "HM+RJliOAzVbMKoUegXt5SVTp6lV507+wK0S5QCxiEEA9zs/swmgAb3z+F5RUY21tC1US86Wo/2RunTWZsPUxuLk0B4X5G0RneEJEfEV4CWzDmIx8mdFYBlSJiwJcoNYioDEVsg76bXpsGDfXTT4Mb092SQ1oS22g2A1GUtEcn8="
},
{
"key": "咖啡",
"name": "☕咖啡┃影视",
"type": 3,
"quickSearch": 0,
"searchable": 1,
"api": "csp_AppQi",
"ext": "iCAfNu0lnzDbPNyRZNPADkQjEsRXYXbhzP+dNzKN1SEfbPPIOKvEKGUJbNHH/Enk8UofJl+f8LL+N/h69EZDaFMMPeCDLq9N1TV0aTDfIY89NkrX+nhIaX9d//xiiVns"
},
{
"key": "鲸鱼影视",
"name": "🐟鲸鱼┃APP",
"type": 3,
"api": "csp_AppGet",
"quickSearch": 0,
"ext": "4+puQ2fxsNJWd5UauYRtFWna9fnlt5dkKL3x9lhE4fvCfvUo8e8W9xdW1SgtEluDq2x7Lwe3quIjIBtAOG2UJw=="
},
{ {
"key": "大豆", "key": "大豆",
"name": "✅大豆┃影视", "name": "✅大豆┃影视",
@@ -316,17 +282,6 @@
"api": "csp_AppMuou", "api": "csp_AppMuou",
"ext": "ewogICJTaXRlVXJsIjogImh0dHBzOi8vbXVvdS53bGJicS54eXoiLAogICJFeHQiOiAiaXA5K1dadnQ5ODNzUzAwOGtyTktobno4Q2Fzb2d3QjlLYkp2U0FmNGJRZEg5aUlGVHE4Y0tGM3Y4RFBicnphUiIsCiAgIkluZm8iOiAiaHR0cHM6Ly9tdW91aHQuZ2d0dmIuY2MiCn0=" "ext": "ewogICJTaXRlVXJsIjogImh0dHBzOi8vbXVvdS53bGJicS54eXoiLAogICJFeHQiOiAiaXA5K1dadnQ5ODNzUzAwOGtyTktobno4Q2Fzb2d3QjlLYkp2U0FmNGJRZEg5aUlGVHE4Y0tGM3Y4RFBicnphUiIsCiAgIkluZm8iOiAiaHR0cHM6Ly9tdW91aHQuZ2d0dmIuY2MiCn0="
}, },
{
"key": "公公",
"name": "🎬️公共┃影视",
"type": 3,
"searchable": 1,
"quickSearch": 0,
"api": "csp_Muou",
"jar": "./jars/巧技.jar",
"playerType": 2,
"ext": "7lj763gg402i7942463ji4qiaojijjh456889il6k6i35kj995h4j18li7kl2870klhg8hi647j5707k4ki7ig6953kj"
},
{ {
"key": "牛牛", "key": "牛牛",
"name": "🍁牛牛┃影视", "name": "🍁牛牛┃影视",

View File

@@ -1,316 +0,0 @@
# coding = utf-8
# !/usr/bin/python
# 新时代青年 2025.06.25 getApp第三版
import re,sys,uuid,json,base64,urllib3
from Crypto.Cipher import AES
from base.spider import Spider
from Crypto.Util.Padding import pad,unpad
sys.path.append('..')
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
class Spider(Spider):
xurl,key,iv,init_data,search_verify = '','','','',''
header = {'User-Agent': 'okhttp/3.14.9'}
def getName(self):
return "首页"
def init(self, extend=''):
ext = json.loads(extend.strip())
host = ext['host']
if not re.match(r'^https?:\/\/[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(:\d+)?(\/)?$', host):
host = self.fetch(host, headers=self.header, timeout=10, verify=False).text.rstrip('/')
ua = ext.get('ua')
if ua:
self.header['User-Agent'] = ua
api = ext.get('api', '/api.php/getappapi')
if str(api) == '2':
api = '/api.php/qijiappapi'
self.xurl = host + api
self.key = ext['datakey']
self.iv = ext.get('dataiv', self.key)
res = self.fetch(self.xurl + '.index/initV119', headers=self.header, verify=False).json()
encrypted_data = res['data']
response = self.decrypt(encrypted_data)
init_data = json.loads(response)
self.init_data = init_data
self.search_verify = init_data['config'].get('system_search_verify_status', False)
def homeContent(self, filter):
kjson = self.init_data
result = {"class": [], "filters": {}}
for i in kjson['type_list']:
if not(i['type_name'] in {'全部', 'QQ', 'juo.one'} or '企鹅群' in i['type_name']):
result['class'].append({
"type_id": i['type_id'],
"type_name": i['type_name']
})
name_mapping = {'class': '类型', 'area': '地区', 'lang': '语言', 'year': '年份', 'sort': '排序'}
filter_items = []
for filter_type in i.get('filter_type_list', []):
filter_name = filter_type.get('name')
values = filter_type.get('list', [])
if not values:
continue
value_list = [{"n": value, "v": value} for value in values]
display_name = name_mapping.get(filter_name, filter_name)
key = 'by' if filter_name == 'sort' else filter_name
filter_items.append({
"key": key,
"name": display_name,
"value": value_list
})
type_id = i.get('type_id')
if filter_items:
result["filters"][str(type_id)] = filter_items
return result
def homeVideoContent(self):
videos = []
kjson = self.init_data
for i in kjson['type_list']:
for item in i['recommend_list']:
vod_id = item['vod_id']
name = item['vod_name']
pic = item['vod_pic']
remarks = item['vod_remarks']
video = {
"vod_id": vod_id,
"vod_name": name,
"vod_pic": pic,
"vod_remarks": remarks
}
videos.append(video)
return {'list': videos}
def categoryContent(self, cid, pg, filter, ext):
videos = []
payload = {
'area': ext.get('area','全部'),
'year': ext.get('year','全部'),
'type_id': cid,
'page': str(pg),
'sort': ext.get('sort','最新'),
'lang': ext.get('lang','全部'),
'class': ext.get('class','全部')
}
url = f'{self.xurl}.index/typeFilterVodList'
res = self.post(url=url, headers=self.header, data=payload, verify=False).json()
encrypted_data = res['data']
kjson = self.decrypt(encrypted_data)
kjson1 = json.loads(kjson)
for i in kjson1['recommend_list']:
id = i['vod_id']
name = i['vod_name']
pic = i['vod_pic']
remarks = i['vod_remarks']
video = {
"vod_id": id,
"vod_name": name,
"vod_pic": pic,
"vod_remarks": remarks
}
videos.append(video)
return {'list': videos, 'page': pg, 'pagecount': 9999, 'limit': 90, 'total': 999999}
def detailContent(self, ids):
did = ids[0]
payload = {
'vod_id': did,
}
api_endpoints = ['vodDetail', 'vodDetail2']
for endpoint in api_endpoints:
url = f'{self.xurl}.index/{endpoint}'
response = self.post(url=url, headers=self.header, data=payload, verify=False)
if response.status_code == 200:
response_data = response.json()
encrypted_data = response_data['data']
kjson1 = self.decrypt(encrypted_data)
kjson = json.loads(kjson1)
break
videos = []
play_form = ''
play_url = ''
lineid = 1
name_count = {}
for line in kjson['vod_play_list']:
keywords = {'防走丢', '', '防失群', '官网'}
player_show = line['player_info']['show']
if any(keyword in player_show for keyword in keywords):
player_show = f'{lineid}线'
line['player_info']['show'] = player_show
count = name_count.get(player_show, 0) + 1
name_count[player_show] = count
if count > 1:
line['player_info']['show'] = f"{player_show}{count}"
play_form += line['player_info']['show'] + '$$$'
parse = line['player_info']['parse']
parse_type = line['player_info']['parse_type']
player_parse_type = line['player_info']['player_parse_type']
kurls = ""
for vod in line['urls']:
token = 'token+' + vod['token']
kurls += f"{str(vod['name'])}${parse},{vod['url']},{token},{player_parse_type},{parse_type}#"
kurls = kurls.rstrip('#')
play_url += kurls + '$$$'
lineid += 1
play_form = play_form.rstrip('$$$')
play_url = play_url.rstrip('$$$')
videos.append({
"vod_id": did,
"vod_name": kjson['vod']['vod_name'],
"vod_actor": kjson['vod']['vod_actor'].replace('演员', ''),
"vod_director": kjson['vod'].get('vod_director', '').replace('导演', ''),
"vod_content": kjson['vod']['vod_content'],
"vod_remarks": kjson['vod']['vod_remarks'],
"vod_year": kjson['vod']['vod_year'] + '',
"vod_area": kjson['vod']['vod_area'],
"vod_play_from": play_form,
"vod_play_url": play_url
})
return {'list': videos}
def playerContent(self, flag, id, vipFlags):
url = ''
aid = id.split(',')
uid = aid[0]
kurl = aid[1]
token = aid[2].replace('token+', '')
player_parse_type = aid[3]
parse_type = aid[4]
if parse_type == '0':
res = {"parse": 0, "url": kurl, "header": {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 14; 23113RK12C Build/SKQ1.231004.001)'}}
elif parse_type == '2':
res = {"parse": 1, "url": uid+kurl, "header": {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 14; 23113RK12C Build/SKQ1.231004.001)'}}
elif player_parse_type == '2':
response = self.fetch(url=f'{uid}{kurl}',headers=self.header, verify=False)
if response.status_code == 200:
kjson1 = response.json()
res = {"parse": 0, "url": kjson1['url'], "header": {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 14; 23113RK12C Build/SKQ1.231004.001)'}}
else:
id1 = self.encrypt(kurl)
payload = {
'parse_api': uid,
'url': id1,
'player_parse_type': player_parse_type,
'token': token
}
url1 = f"{self.xurl}.index/vodParse"
response = self.post(url=url1, headers=self.header, data=payload, verify=False)
if response.status_code == 200:
response_data = response.json()
encrypted_data = response_data['data']
kjson = self.decrypt(encrypted_data)
kjson1 = json.loads(kjson)
kjson2 = kjson1['json']
kjson3 = json.loads(kjson2)
url = kjson3['url']
res = {"parse": 0, "playUrl": '', "url": url, "header": {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 14; 23113RK12C Build/SKQ1.231004.001)'}}
return res
def searchContent(self, key, quick, pg="1"):
videos = []
if 'xiaohys.com' in self.xurl:
host = self.xurl.split('api.php')[0]
data = self.fetch(f'{host}index.php/ajax/suggest?mid=1&wd={key}').json()
for i in data['list']:
videos.append({
"vod_id": i['id'],
"vod_name": i['name'],
"vod_pic": i.get('pic')
})
else:
payload = {
'keywords': key,
'type_id': "0",
'page': str(pg)
}
if self.search_verify:
verifi = self.verification()
if verifi is None:
return {'list':[]}
payload['code'] = verifi['code']
payload['key'] = verifi['uuid']
url = f'{self.xurl}.index/searchList'
res = self.post(url=url, data=payload, headers=self.header, verify=False).json()
if not res.get('data'):
return {'list':[] ,'msg': res.get('msg')}
encrypted_data = res['data']
kjson = self.decrypt(encrypted_data)
kjson1 = json.loads(kjson)
for i in kjson1['search_list']:
id = i['vod_id']
name = i['vod_name']
pic = i['vod_pic']
remarks = i['vod_year'] + ' ' + i['vod_class']
videos.append({
"vod_id": id,
"vod_name": name,
"vod_pic": pic,
"vod_remarks": remarks
})
return {'list': videos, 'page': pg, 'pagecount': 9999, 'limit': 90, 'total': 999999}
def localProxy(self, params):
if params['type'] == "m3u8":
return self.proxyM3u8(params)
elif params['type'] == "media":
return self.proxyMedia(params)
elif params['type'] == "ts":
return self.proxyTs(params)
return None
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def decrypt(self, encrypted_data_b64):
key_bytes = self.key.encode('utf-8')
iv_bytes = self.iv.encode('utf-8')
encrypted_data = base64.b64decode(encrypted_data_b64)
cipher = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
decrypted_padded = cipher.decrypt(encrypted_data)
decrypted = unpad(decrypted_padded, AES.block_size)
return decrypted.decode('utf-8')
def encrypt(self, sencrypted_data):
key_bytes = self.key.encode('utf-8')
iv_bytes = self.iv.encode('utf-8')
data_bytes = sencrypted_data.encode('utf-8')
padded_data = pad(data_bytes, AES.block_size)
cipher = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
encrypted_bytes = cipher.encrypt(padded_data)
encrypted_data_b64 = base64.b64encode(encrypted_bytes).decode('utf-8')
return encrypted_data_b64
def ocr(self, base64img):
dat2 = self.post("http://154.222.22.188:9898/ocr/b64/text", data=base64img, headers=self.header, verify=False).text
if dat2:
return dat2
else:
return None
def verification(self):
random_uuid = str(uuid.uuid4())
dat = self.fetch(f'{self.xurl}.verify/create?key={random_uuid}', headers=self.header, verify=False).content
base64_img = base64.b64encode(dat).decode('utf-8')
if not dat:
return None
code = self.ocr(base64_img)
if not code:
return None
code = self.replace_code(code)
if not (len(code) == 4 and code.isdigit()):
return None
return {'uuid': random_uuid, 'code': code}
def replace_code(self, text):
replacements = {'y': '9', '': '0', 'q': '0', 'u': '0', 'o': '0', '>': '1', 'd': '0', 'b': '8', '': '2','D': '0', '': '5'}
if len(text) == 3:
text = text.replace('566', '5066')
text = text.replace('066', '1666')
return ''.join(replacements.get(c, c) for c in text)

Binary file not shown.

View File

@@ -20,7 +20,7 @@
}, },
{ {
"key": "豆瓣1", "key": "豆瓣1",
"name": "📢公告❤更新:8/17❤", "name": "📢公告❤更新:8/26❤",
"type": 3, "type": 3,
"api": "csp_Notice", "api": "csp_Notice",
"searchable": 0, "searchable": 0,
@@ -45,7 +45,7 @@
], ],
"url_key": "woog", "url_key": "woog",
"threadinfo": { "threadinfo": {
"chunksize": 217, "chunksize": 246,
"threads": 16 "threads": 16
} }
} }
@@ -74,7 +74,7 @@
], ],
"url_key": "UC", "url_key": "UC",
"threadinfo": { "threadinfo": {
"chunksize": 213, "chunksize": 287,
"threads": 60 "threads": 60
} }
} }
@@ -105,7 +105,7 @@
], ],
"url_key": "woog2", "url_key": "woog2",
"threadinfo": { "threadinfo": {
"chunksize": 291, "chunksize": 253,
"threads": 16 "threads": 16
} }
} }
@@ -142,7 +142,8 @@
"key": "荐片", "key": "荐片",
"name": "💡荐片|影视", "name": "💡荐片|影视",
"api": "csp_Jianpian", "api": "csp_Jianpian",
"type": 3 "type": 3,
"ext": "https://ij1men.slsw6.com"
}, },
{ {
"key": "移动", "key": "移动",
@@ -341,20 +342,6 @@
"version": "119" "version": "119"
} }
}, },
{
"key": "爱看",
"name": "👑爱看|弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://154.37.220.65",
"dataKey": "uI1TkPJC8B46AyN3",
"dataIv": "uI1TkPJC8B46AyN3",
"deviceId": "2112fc5eac600314ba95c4d65da9286b3",
"version": "120"
}
},
{ {
"key": "蓝光", "key": "蓝光",
"name": "👑蓝光|弹幕", "name": "👑蓝光|弹幕",
@@ -425,32 +412,6 @@
"key3": "73f330328cc0fe67" "key3": "73f330328cc0fe67"
} }
}, },
{
"key": "星河",
"name": "👑星河|弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppSy",
"ext": {
"url": "http://192.140.161.171:2563",
"key1": "aassddwwxxllsx1x",
"key2": "aassddwwxxllsx1x",
"key3": "aassddwwxxllsx1x"
}
},
{
"key": "爱影",
"name": "👑爱影|弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppSy",
"ext": {
"url": "http://110.42.7.59:11822",
"key1": "aassddwwxxllsx1x",
"key2": "1e765e9b09b4dbba",
"key3": "1e765e9b09b4dbba"
}
},
{ {
"key": "加菲", "key": "加菲",
"name": "👑加菲|弹幕", "name": "👑加菲|弹幕",
@@ -559,21 +520,6 @@
"version": "120" "version": "120"
} }
}, },
{
"key": "鲸鱼",
"name": "👑鲸鱼|弹幕",
"type": 3,
"quickSearch": 1,
"api": "csp_AppQi",
"ext": {
"url": "",
"site": "https://jingyu4k-1312635929.cos.ap-nanjing.myqcloud.com/1.json",
"dataKey": "AAdgrdghjfgswerA",
"dataIv": "AAdgrdghjfgswerA",
"deviceId": "",
"version": ""
}
},
{ {
"key": "1905", "key": "1905",
"name": "🧿1905影视", "name": "🧿1905影视",
@@ -1096,20 +1042,6 @@
"version": "" "version": ""
} }
}, },
{
"key": "次元动漫",
"name": "🤣次元|动漫",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://jjjj.nilinili.org",
"dataKey": "672263e98f232a05",
"dataIv": "672263e98f232a05",
"deviceId": "",
"version": "170"
}
},
{ {
"key": "派对动漫", "key": "派对动漫",
"name": "🤣派对|动漫", "name": "🤣派对|动漫",
@@ -1125,17 +1057,32 @@
} }
}, },
{ {
"key": "黑猫动漫", "key": "咕咕动漫",
"name": "🤣黑猫|动漫", "name": "🤣咕咕|动漫",
"type": 3, "type": 3,
"quickSearch": 1, "quickSearch": 1,
"api": "csp_AppGet", "api": "csp_AppGet",
"ext": { "ext": {
"url": "https://dm.xxdm123.top:9991", "url": "https://www.gugu3.com",
"dataKey": "0fe3b5781782c621", "dataKey": "nKfZ8KX6JTNWRzTD",
"dataIv": "0fe3b5781782c621", "dataIv": "nKfZ8KX6JTNWRzTD",
"deviceId": "", "deviceId": "",
"version": "203" "version": ""
}
},
{
"key": "多多动漫",
"name": "🤣多多|动漫",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "",
"site": "https://app.cf4k.xyz/1.txt",
"dataKey": "qqqqqqqqqqqqqqqq",
"dataIv": "qqqqqqqqqqqqqqqq",
"deviceId": "",
"version": ""
} }
}, },
{ {

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -208,6 +208,36 @@
"version": "" "version": ""
} }
}, },
{
"key": "迪吧",
"name": "迪吧APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://154.37.152.97:5211",
"site": "",
"dataKey": "685bf108bc47b67d",
"dataIv": "685bf108bc47b67d",
"deviceId": "",
"version": ""
}
},
{
"key": "橙飞",
"name": "橙飞APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "http://172.247.189.145:8989",
"site": "",
"dataKey": "6d1061a50b656564",
"dataIv": "6d1061a50b656564",
"deviceId": "",
"version": ""
}
},
{ {
"key": "云端", "key": "云端",
"name": "云端APP", "name": "云端APP",
@@ -1266,6 +1296,21 @@
"version": "" "version": ""
} }
}, },
{
"key": "米饭",
"name": "米饭APP",
"type": 3,
"quickSearch": 1,
"api": "csp_AppGet",
"ext": {
"url": "https://get.mymifun.com",
"site": "",
"dataKey": "GETMIFUNGEIMIFUN",
"dataIv": "GETMIFUNGEIMIFUN",
"deviceId": "",
"version": ""
}
},
{ {
"key": "樱花动漫", "key": "樱花动漫",
"name": "樱花|动漫", "name": "樱花|动漫",

Binary file not shown.