def get_channel_categories(self, slug='globo'): if slug == 'combate': categories = cache.get(scraper_combate.get_combate_categories, 1) self.category_combate_directory(categories) else: categories = cache.get(globoplay.Indexer().get_channel_categories, 1) extras = cache.get(globoplay.Indexer().get_extra_categories, 1) self.category_directory(categories, extras)
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_program_dates(self, program_id, poster=None, provider='globoplay'): days = globoplay.Indexer().get_program_dates(program_id) if days == None or len(days) == 0: control.idle() ; sys.exit() sysaddon = sys.argv[0] syshandle = int(sys.argv[1]) for day in days: label = day meta = {} meta.update({'mediatype': 'video'}) meta.update({'overlay': 6}) meta.update({'title': label}) url = '%s?action=openvideos&provider=%s&program_id=%s&date=%s' % (sysaddon, provider, program_id, day) item = control.item(label=label) art = {'poster': poster} item.setArt(art) # item.setProperty('Fanart_Image', GLOBO_FANART) 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=False)
def get_videos_by_category(self, category, page=1, poster=None): episodes, next_page, total_pages = globoplay.Indexer( ).get_videos_by_category(category, page) self.episodes_directory(episodes, category, next_page, total_pages, 'openextra', poster=poster)
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_videos_by_program_date(self, program_id, date, poster=None, provider=None): episodes = cache.get(globoplay.Indexer().get_videos_by_program_date, 1, program_id, date) self.episodes_directory(episodes, program_id, poster=poster, provider=provider)
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_videos_by_program(self, program_id, page=1, poster=None, provider=None): episodes, nextpage, total_pages, days = cache.get( globoplay.Indexer().get_videos_by_program, 1, program_id, page) self.episodes_directory(episodes, program_id, nextpage, total_pages, days=days, poster=poster, provider=provider)
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)
def get_programs_by_categories(self, category): categories = cache.get(globoplay.Indexer().get_category_programs, 1, category) self.programs_directory(categories)
def get_programs_by_region(self, region): programs = cache.get(globoplay.Indexer().get_programs_by_region, 1, region) self.programs_directory(programs)
def get_regions(self, state): regions = cache.get(globoplay.Indexer().get_regions, 1, state) self.region_directory(regions)
def get_4k(self): programs = cache.get(globoplay.Indexer().get_4k, 1) self.programs_directory(programs)
def get_states(self): states = cache.get(globoplay.Indexer().get_states, 1) self.state_directory(states)