# -*- coding: utf-8 -*- # by @嗷呜 import sys sys.path.append('..') from base.spider import Spider class Spider(Spider): 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=extend pass def getName(self): pass 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