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
Exemple #2
0
 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')
Exemple #3
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
Exemple #4
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
Exemple #6
0
    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
Exemple #8
0
 def get_channel_programs(self, channel_id):
     programs = cache.get(globosat.Indexer().get_channel_programs, 1,
                          channel_id)
     self.programs_directory(programs)
Exemple #9
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)