Files
tvbox_collect/jaychouqq/yingshi/py5/AppV2².py
T
2026-06-29 03:41:14 +00:00

118 lines
3.7 KiB
Python

"""
@header({
searchable: 1,
filterable: 1,
quickSearch: 1,
title: 'AppV2²',
lang: 'hipy'
})
"""
# by @嗷呜
import json
import re
import sys
from Crypto.Util.Padding import unpad
sys.path.append('..')
try:
# from base.spider import Spider as BaseSpider
from base.spider import BaseSpider
except ImportError:
from t4.base.spider import BaseSpider
class Spider(BaseSpider):
def __init__(self, query_params=None, t4_api=None):
super().__init__(query_params=query_params, t4_api=t4_api)
def init(self, extend=""):
'''
example:
{
"key": "py_appV2",
"name": "xxx",
"type": 3,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"api": "./py/appV2.py",
"ext": "http://cmsyt.lyyytv.cn"
}
'''
self.host = self.extend.strip()
pass
def getName(self):
return 'AppV2²'
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
headers = {
'User-Agent': 'okhttp/4.12.0',
}
def homeContent(self, filter):
data = self.fetch(f"{self.host}//api.php/app/nav?token=", headers=self.headers).json()
keys = ["class", "area", "lang", "year", "letter", "by", "sort"]
filters = {}
classes = []
for item in data['list']:
has_non_empty_field = False
jsontype_extend = item["type_extend"]
classes.append({"type_name": item["type_name"], "type_id": item["type_id"]})
for key in keys:
if key in jsontype_extend and jsontype_extend[key].strip() != "":
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["type_id"])] = []
for dkey in jsontype_extend:
if dkey in keys and jsontype_extend[dkey].strip() != "":
values = jsontype_extend[dkey].split(",")
value_array = [{"n": value.strip(), "v": value.strip()} for value in values if
value.strip() != ""]
filters[str(item["type_id"])].append({"key": dkey, "name": dkey, "value": value_array})
result = {}
result["class"] = classes
result["filters"] = filters
return result
def homeVideoContent(self):
data = self.fetch(f"{self.host}/api.php/app/index_video?token=", headers=self.headers).json()
videos = []
for item in data['list']: videos.extend(item['vlist'])
return {'list': videos}
def categoryContent(self, tid, pg, filter, extend):
params = {'tid': tid, 'class': extend.get('class', ''), 'area': extend.get('area', ''),
'lang': extend.get('lang', ''), 'year': extend.get('year', ''), 'limit': '18', 'pg': pg}
data = self.fetch(f"{self.host}/api.php/app/video", params=params, headers=self.headers).json()
return data
def detailContent(self, ids):
data = self.fetch(f"{self.host}/api.php/app/video_detail?id={ids[0]}", headers=self.headers).json()
return {'list': [data['data']]}
def searchContent(self, key, quick, pg="1"):
data = self.fetch(f"{self.host}/api.php/app/search?text={key}&pg={pg}", headers=self.headers).json()
videos = data['list']
for item in data['list']:
item.pop('type', None)
return {'list': videos, 'page': pg}
def playerContent(self, flag, id, vipFlags):
return {'jx': 1, 'playUrl': '', 'parse': 1, 'url': id, 'header': self.headers}
def localProxy(self, param):
pass