def get_channels(self): live = [] threads = [] if control.is_globoplay_available(): threads.append(workers.Thread(self.append_result, globoplay.Indexer().get_live_channels, live)) if control.is_globosat_available(): threads.append(workers.Thread(self.append_result, globosat.Indexer().get_live, live)) if control.show_adult_content: threads.append(workers.Thread(self.append_result, sexyhotplay.Indexer().get_live_channels, live)) if control.is_oiplay_available(): threads.append(workers.Thread(self.append_result, oiplay.get_live_channels, live)) if control.is_tntplay_available(): threads.append(workers.Thread(self.append_result, tntplay.get_live_channels, live)) if control.is_nowonline_available(): threads.append(workers.Thread(self.append_result, netnow.get_live_channels, live)) [i.start() for i in threads] [i.join() for i in threads] live = sorted(live, key=lambda k: k['sorttitle']) # live = sorted(live, key=lambda k: '1' if 'isFolder' in k and k['isFolder'] == 'true' else '0') live = sorted(live, key=lambda k: k['dateadded'] if 'dateadded' in k else None, reverse=True) # shuffle(live) self.channel_directory(live) return live
def get_fighter_videos(self, slug, page): videos, next_page, total_pages = cache.get( globosat.Indexer().get_fighter_videos, 1, slug, page) self.episodes_directory(videos, next_page=next_page, total_pages=total_pages, next_action='openfighter&slug=%s' % slug, provider='globosat')
def get_channels(self): live = [] threads = [] if control.is_globoplay_available(): threads.append( workers.Thread(self.append_result, globoplay.Indexer().get_live_channels, live)) if control.is_globosat_available(): threads.append( workers.Thread(self.append_result, globosat.Indexer().get_live, live)) threads.append( workers.Thread(self.append_result, futuraplay.get_live_channels, live)) [i.start() for i in threads] [i.join() for i in threads] # live.append({ # 'slug': 'bandnews', # 'name': 'Bandnews', # 'title': 'Bandnews', # 'sorttitle': 'Bandnews', # 'logo': os.path.join(control.artPath(), 'logo_bandnews.png'), # # 'clearlogo': os.path.join(control.artPath(), 'logo_bandnews.png'), # 'color': None, # 'fanart': os.path.join(control.artPath(), 'fanart_bandnews.jpg'), # 'thumb': None, # 'playable': 'true', # 'plot': None, # 'id': -1, # 'channel_id': -1, # 'duration': None, # 'url': 'http://evcv.mm.uol.com.br:1935/band/bandnews/playlist.m3u8' # }) # control.addSortMethod(int(sys.argv[1]), control.SORT_METHOD_LABEL_IGNORE_FOLDERS) live = sorted(live, key=lambda k: k['sorttitle']) live = sorted(live, key=lambda k: '1' if 'isFolder' in k and k['isFolder'] == 'true' else '0') live = sorted(live, key=lambda k: k['dateadded'] if 'dateadded' in k else None, reverse=True) # shuffle(live) self.channel_directory(live) return live
def __get_vod_channels(self): channels = [] if self.__isGlobosatAvailable(): channels += globosat.Indexer().get_vod() if self.__isGloboplayAvailable(): channels += globoplay.Indexer().get_vod() channels = sorted(channels, key=lambda k: k['name']) return channels
def __get_vod_channels(self): channels = [] if control.is_globosat_available(): channels += globosat.Indexer().get_vod() if control.is_globoplay_available(): channels += globoplay.Indexer().get_vod() channels = sorted(channels, key=lambda k: k['name']) return channels
def get_fighters(self, letter): fighters = cache.get(globosat.Indexer().get_fighters, 1, letter) sysaddon = sys.argv[0] syshandle = int(sys.argv[1]) for fighter in fighters: label = fighter['title'] slug = fighter['slug'] thumb = fighter['thumb'] if 'thumb' in fighter else None meta = { 'mediatype': 'episode', 'overlay': 6, 'title': label, 'slug': slug, 'url': fighter['url'] } url = '%s?action=openfighter&slug=%s' % (sysaddon, slug) item = control.item(label=label) art = { 'icon': thumb, 'thumb': thumb, 'fanart': thumb, 'poster': thumb, 'banner': thumb, 'landscape': thumb } item.setProperty('Fanart_Image', thumb) item.setArt(art) item.setProperty('IsPlayable', "false") item.setInfo(type='video', infoLabels=meta) control.addItem(handle=syshandle, url=url, listitem=item, isFolder=True) control.addSortMethod(int(sys.argv[1]), control.SORT_METHOD_LABEL_IGNORE_FOLDERS) control.content(syshandle, 'episodes') control.directory(syshandle, cacheToDisc=False)
def get_subitems_pfc(self, meta): live = globosat.Indexer().get_pfc(meta) self.channel_directory(live) return live
def get_channel_programs(self, channel_id): programs = cache.get(globosat.Indexer().get_channel_programs, 1, channel_id) self.programs_directory(programs)
def search(self, q, page=1): results = [] threads = [] if self.__isGloboplayAvailable(): threads.append( workers.Thread(self.add_search_results, globoplay.Indexer().search, results, q, page)) if self.__isGlobosatAvailable(): threads.append( workers.Thread(self.add_search_results, globosat.Indexer().search, results, q, page)) [i.start() for i in threads] [i.join() for i in threads] sysaddon = sys.argv[0] syshandle = int(sys.argv[1]) refreshMenu = control.lang(32072).encode('utf-8') results = sorted(results, key=lambda k: k['brplayprovider'] if 'brplayprovider' in k else '') for result in results: label = result['label'] meta = { 'id': result['id'], 'title': result['title'], 'plot': result['plot'], 'duration': result['duration'], 'thumb': result['thumb'], 'fanart': result['fanart'], 'mediatype': 'episode' } meta.update({'mediatype': 'video'}) meta.update({'overlay': 6}) meta.update({'title': label}) meta.update({'live': False}) if 'tvshowtitle' in result: meta.update({'tvshowtitle': result['tvshowtitle']}) sysmeta = urllib.quote_plus(json.dumps(meta)) provider = result[ 'brplayprovider'] if 'brplayprovider' in result else 'globoplay' url = '%s?action=playvod&provider=%s&id_globo_videos=%s&meta=%s' % ( sysaddon, provider, result['id'], sysmeta) item = control.item(label=label) fanart = meta['fanart'] if 'fanart' in meta else GLOBO_FANART clearlogo = meta['clearlogo'] if 'clearlogo' in meta else None art = { 'thumb': result['thumb'], 'fanart': fanart, 'clearlogo': clearlogo } item.setProperty('Fanart_Image', fanart) if 'duration' in meta: duration = float(meta['duration']) if 'duration' in meta else 0 duration = duration * 1000.0 item.setProperty('totaltime', str(duration)) item.setArt(art) item.setProperty('IsPlayable', "true") item.setInfo(type='video', infoLabels=meta) cm = [] cm.append((refreshMenu, 'RunPlugin(%s?action=refresh)' % sysaddon)) item.addContextMenuItems(cm) item.setMimeType("application/vnd.apple.mpegurl") control.addItem(handle=syshandle, url=url, listitem=item, isFolder=False) # if next_page: # label = 'Next Page (%s/%s)' % (nextpage, total_pages) label = 'More Videos' meta = {} meta.update({'mediatype': 'video'}) meta.update({'overlay': 6}) meta.update({'title': label}) url = '%s?action=search&q=%s&provider=%s&page=%s' % ( sysaddon, q, 'globoplay', int(page) + 1) item = control.item(label=label) art = {'icon': NEXT_ICON, 'thumb': NEXT_ICON} # item.setProperty('Fanart_Image', GLOBO_FANART) item.setArt(art) item.setProperty('IsPlayable', "false") item.setInfo(type='video', infoLabels=meta) control.addItem(handle=syshandle, url=url, listitem=item, isFolder=True) control.content(syshandle, 'episodes') control.directory(syshandle, cacheToDisc=True)