def get_search(self, keyword, page=0, url=[], page_size=25): # 搜索 if page == 0: return util.GetHttpData( self.API + 'search/get_search_video?key={0}&page_size={1}&page_num=0&tabid=0&format=json&search_type=1&pay_filter=0&version=0' .format(keyword, page_size)) else: return util.GetHttpData('http://' + self.HOST + url[page - 1], use_qua=False)
def get_playinfo(self, vid): if not xbmc.getCondVisibility('system.platform.Android'): return '[{"url":"C:/Download/20160810-111059351.mkv","ft":0}]' return util.GetHttpData( 'http://127.0.0.1:6666/pivos/getVideoURL?vid={vid}'.format( vid=vid), use_qua=False)
def get_still(self, cid): # 剧照 if self.LOCAL_DEBUG: json_query = open(os.path.join(ADDON_PATH, 'get_video_detail.txt')).read() else: json_query = util.GetHttpData( 'http://live.play.t002.ottcn.com/json/qzmovie/still/{0}/{1}.json' .format(cid[0], cid), None, None, False) return json_query[26:-2]
def get_channel_list(self, channel, route, sort, filter_name, settype, page, pagenum): # 频道列表 url = self.API + 'video_list/get_video_list?platform=8&site={site}&filter={filter}&list_route_type={route}&sortby={sort}&fieldset={settype}&page={page}&pagesize={pagenum}&otype=json' url = url.format(site=channel, filter=filter_name, route=route, settype=settype, sort=sort, page=page, pagenum=pagenum) return util.GetHttpData(url)
def get_cctv_playinfo(self, vid): url = self.CCTV_PLAY_API + "{vid}?token&serverId={serverId}&channel_version={channel_version}&userId={userId}&mac={mac}&launcher_version={launcher_version}&sn={sn}&client_id={client_id}&home_version={home_version}&from=lunbo" url = url.format(vid=vid, serverId=102, channel_version=102, userId=9130180, mac=self.MAC_ADDRESS, launcher_version="9000.1.05", sn="not_found", client_id=1080109, home_version=110) return util.GetHttpData(url)
def get_video_relate(self, cid): url = self.RELATEAPI + 'recommend?appplt={appplt}&appid={appid}&appver={appver}&src={src}&video={video}&uid={uid}&num={num}&ppi={ppi}&extraFields={extraFields}&userLevel={userLevel}&vipUser={vipUser}&format=json' url = url.format( appplt="launcher", appid="pptvLauncher", appver="4.0.4", src="34", video=cid, uid="pptv", num=7, ppi=self.PPI, extraFields= "douBanScore,isPay,vt,vipPrice,coverPic,isVip,score,epgCatas", userLevel="1", vipUser="******") return util.GetHttpData(url)
def get_video_detail(self, cid): url = self.DETAILAPI + 'detail.api?auth={auth}&virtual={virtual}&ppi={ppi}&token={token}&appplt={appplt}&appid={appid}&appver={appver}&username={username}&type={type}&platform={platform}&vid={vid}&ver={ver}&lang={lang}&vvid={vvid}&gslbversion={gslbversion}&userLevel={userLevel}&coverPre={coverPre}&format=json' url = url.format(auth="1", virtual="0", ppi=self.PPI, token="", appplt="launcher", appid="com.pptv.launcher", appver="4.0.3", username="", type="ppbox.launcher", platform="launcher", vid=cid, ver="3", lang="zh_CN", vvid="90f1d8a5-106c-48d4-b806-fec3e5fa58fe", gslbversion="2", userLevel="0", coverPre="sp423") return util.GetHttpData(url)
def get_channel_list_config(self, typeId, pn, ps, str_filter, sortType): url = self.LISTAPI + 'newList.api?auth={auth}&appver={appver}&canal={canal}&appid={appid}&appplt={appplt}&hasVirtual={hasVirtual}&typeId={typeId}&ps={ps}&pn={pn}&sortType={sortType}&contype={contype}&coverPre={coverPre}&ppi={ppi}&format={format}&isShowNav={isShowNav}&cannelSource={cannelSource}&ver={ver}' url = url.format(auth="1", appver="4.0.4", canal="CIBN", appid="PPTVLauncherSafe", appplt="launcher", hasVirtual=False, typeId=typeId, ps=ps, pn=pn, sortType=sortType, contype=0, coverPre="sp160", ppi=self.PPI, format="json", isShowNav="true", cannelSource="VST", ver="1") if str_filter: url = url + '&' + str_filter return util.GetHttpData(url, use_qua=False)
def get_topic_detail(self, tid): # 专题详情 return util.GetHttpData( self.API + 'topic_detail/qtv_get_topic_detail?tid={0}&format=json&licence=icntv' .format(tid))
def get_episodelist(self, cid, index): # 剧集列表 return util.GetHttpData( self.API + 'cover_details/get_cover_videos?tv_cgi_ver=1.0&format=json&req_from=TCL_WX&page_type=forward&page_start={0}&page_size=128&video_filter=all&cid={1}' .format(index, cid))
def get_home_content(self): return util.GetHttpData( self.HOMEAPI + 'four/home?version={version}&channel_id={channel_id}&ppi={ppi}'. format(version="4.0.3", channel_id="1110141", ppi=self.PPI))
def get_sport_config(self): return util.GetHttpData(self.HOMEAPI + 'sportNav?version=4.0.3', use_qua=False)
def get_finance_combol(self): # 精选推荐 return util.GetHttpData( 'http://aniuapi.dzcj.tv:8083/aniuapi/ottapi/v1/1905/videolist?productid={productid}&devid={devid}' .format(productid="10001", devid="200004"), use_qua=False)
def get_channel_recommended(self, channel): return util.GetHttpData( self.API + 'home_page/get_home_page?tv_cgi_ver=1.0&format=json&req_from=TCL_WX&req_type=get&channel_selector=specify&channel_ids={channel}&content_selector=all' .format(channel=channel))
def search(text): API = "https://movie.douban.com/j/subject_suggest?q=%s" % text data = util.GetHttpData(API) return simplejson.loads(data)
def get_channel_config(self): return util.GetHttpData( self.HOMEAPI + 'channel_config?version={version}&channel_id={channel_id}&ppi={ppi}' .format(version="4.0.3", channel_id="1110141", ppi=self.PPI), use_qua=False)
def get_play_info(self, cid): url = self.API + 'get_play_info?format=json&cid={0}'.format(cid) return util.GetHttpData(url)
def get_userinfo(self): if not xbmc.getCondVisibility('system.platform.Android'): return '{"token": "baioHxWw7aoKgFgkQLKuZft9YzUwONazKPnAG8ZATRCr1lEKBsc5MJsA0Yi4Nu9KBPlGYNNxCxlv\nCoXFfLaS7QNBE8x7sEZz9vjlXW7UjtttKPloeqUJ6yxzaElK_vzhkHMUHq9Rpq9K5CQNMLPv9q6Q\nRjF6xmzFiZeZRXoIuXs\n", "username": "******", "vipgrade": 0, "face": ""}' return util.GetHttpData( 'http://127.0.0.1:6667/pivos/getUserInfo?vid=1234')
def get_channel_index(self): # 频道索引 return util.GetHttpData( self.API + 'channel_list/get_channel_list?tv_cgi_ver=1.0&format=json&req_from=PVS_APK&channel_types=all' )
def get_finance_playinfo(self, contentid): return util.GetHttpData( 'http://aniuapi.dzcj.tv:8083/aniuapi/api/v1/tv/ottplayinfo?contentid={contentid}&devid={devid}' .format(contentid=contentid, devid="200004"))
def get_special_recommended(self, channel): return util.GetHttpData( self.API + 'special_channel/get_special_channel?tv_cgi_ver=1.0&format=json&req_from=PVS_APK&req_type=get&channel_selector={channel}&content_selector=all' .format(channel=channel))
def get_variety_review(self, cid, pagesize=10, pagenum=0): # 综艺往期 return util.GetHttpData( self.API + 'column_info/get_column_info?column_id={0}&page_size={1}&page_num={2}&format=json&type=10' .format(cid, pagesize, pagenum))
def get_channel_filter(self, channel): # 频道筛选列表 return util.GetHttpData( self.API + 'channel_filter/get_filter?tv_cgi_ver=1.0&format=json&req_from=PVS_APK&channel_selector={0}&filter_selector=single' .format(channel))
def get_video_detail(self, cid): # 专辑详情 return util.GetHttpData( self.API + 'cover_details/get_cover_basic?tv_cgi_ver=1.0&format=json&req_from=TCL_WX&start_type=head&video_num=0&video_filter=all&cid=' + cid)
def get_like_recommend(self, cid): # 猜你喜欢 return util.GetHttpData( self.API + 'recommend/get_recommend_j?tv_cgi_ver=1.0&format=json&req_from=PVS_APK&cover_id={0}&req_num=10&pay_filter=0' .format(cid))
def get_video_topic(self, tid): return util.GetHttpData( self.TOPICAPI + tid + '?version={version}&channel_id={channel_id}&user_level={user_level}' .format(version="4.0.3", channel_id="200026", user_level="0"))
def get_search_rank(self): return util.GetHttpData(self.API + 'search/get_search_rank?format=json')
def get_shopping_config(self): return util.GetHttpData(self.SHOPAPI + 'getGoods', use_qua=False)
def get_finance_detail(self, prgid): # 精选详情 return util.GetHttpData( 'http://aniuapi.dzcj.tv:8083/aniuapi/ottapi/v1/1905/morevideo?productid={productid}&prgid={prgid}&devid={devid}' .format(productid="10001", prgid=prgid, devid="200004"))
def get_trailer(self, cid): # 预告片 return util.GetHttpData( self.API + 'get_trailer?version=1.0&format=json&platform=8&subplatform=41&cid=' + cid)