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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
    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
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
 def get_programs_by_categories(self, category):
     categories = cache.get(globoplay.Indexer().get_category_programs, 1,
                            category)
     self.programs_directory(categories)
Ejemplo n.º 12
0
 def get_programs_by_region(self, region):
     programs = cache.get(globoplay.Indexer().get_programs_by_region, 1,
                          region)
     self.programs_directory(programs)
Ejemplo n.º 13
0
 def get_regions(self, state):
     regions = cache.get(globoplay.Indexer().get_regions, 1, state)
     self.region_directory(regions)
Ejemplo n.º 14
0
 def get_4k(self):
     programs = cache.get(globoplay.Indexer().get_4k, 1)
     self.programs_directory(programs)
Ejemplo n.º 15
0
 def get_states(self):
     states = cache.get(globoplay.Indexer().get_states, 1)
     self.state_directory(states)