예제 #1
0
    def add_date(self):

        input_date = control.inputDialog(type=control.input_date)

        input_date = ''.join(input_date.split('/')[::-1]).replace(' ',  '0')

        directory.run_builtin(action='matches', query=input_date)
예제 #2
0
def activate_audio_addon(url, query=None):

    from tulip import directory

    directory.run_builtin(addon_id=url,
                          action=query if query is not None else None,
                          content_type='audio')
예제 #3
0
    def search(self):

        input_str = control.inputDialog()

        try:
            input_str = cleantitle.strip_accents(input_str.decode('utf-8'))
        except (UnicodeEncodeError, UnicodeDecodeError, AttributeError):
            input_str = cleantitle.strip_accents(input_str)

        input_str = quote(input_str.encode('utf-8'))

        directory.run_builtin(action='listing', url=self.search_link.format(input_str))
예제 #4
0
def activate_other_addon(url, query=None):

    if not url.startswith('plugin://'):
        url = ''.join(['plugin://', url, '/'])

    parsed = urlparse(url)

    if not control.condVisibility('System.HasAddon({0})'.format(
            parsed.netloc)):
        control.execute('InstallAddon({0})'.format(parsed.netloc))

    params = dict(parse_qsl(parsed.query))
    action = params.get('action')
    url = params.get('url')

    directory.run_builtin(addon_id=parsed.netloc,
                          action=action,
                          url=url,
                          content_type=query)
    def search(self, media=True, override=False, query=None):

        if media:
            choices = [
                control.lang(30003),
                control.lang(30005),
                control.lang(30155),
                control.lang(30010)
            ]
        else:
            choices = [
                control.lang(30003),
                control.lang(30005),
                control.lang(30010)
            ]

        if control.setting('history.bool') == 'false':
            del choices[-1]

        if control.setting('window.action') == '0' or override:

            if media:

                if not override:
                    choice = control.selectDialog(choices)
                else:
                    choice = None

                if choice == 0 or query == 'quick':

                    search_link = url_generator()

                elif choice == 1 or query == 'advanced':

                    search_link = url_generator(advanced=True)

                elif choice == 2 or query == 'domain':

                    q = control.dialog.input(control.name())

                    search_link = url_generator(query=q)

                elif choice == 3 or query == 'history':

                    if not read_from_history(history_media):
                        return

                    queries = read_from_history(history_media)

                    if control.setting('window.action') == '0':

                        choice = control.selectDialog(queries)

                        if choice <= len(read_from_history(
                                history_media)) and not choice == -1:
                            search_link = url_generator(
                                read_from_history(history_media)[choice],
                                history=True)
                        else:
                            control.execute('Dialog.Close(all)')
                            return

                    else:

                        self.list = [{
                            'title': q,
                            'url': url_generator(q, history=True),
                            'action': 'search',
                            'query': q,
                            'isFolder': 'False',
                            'isPlayable': 'False'
                        } for q in queries]

                        for i in self.list:

                            bookmark = dict((k, v) for k, v in iteritems(i)
                                            if not k == 'next')
                            bm_object = json.dumps(bookmark)
                            add_bm_cm = {
                                'title': 30023,
                                'query': {
                                    'action': 'addBookmark',
                                    'url': bm_object
                                }
                            }
                            i.update({'cm': [add_bm_cm]})

                        directory.add(self.list)
                        return

                elif query:

                    # Can convert a query directly to listing for display

                    search_link = url_generator(query, history=True)

                else:

                    control.execute('Dialog.Close(all)')
                    return

                directory.run_builtin(action='listing', url=search_link)

            else:

                if not override:
                    del choices[1]
                    choice = control.selectDialog(choices)
                else:
                    choice = None

                if choice == 0 or query == 'quick':

                    search_link = url_generator(media=False)

                elif choice == 1 or query == 'history':

                    if not read_from_history(history_subrs):
                        return

                    queries = read_from_history(history_subrs)

                    if control.setting('window.action') == '0':

                        choice = control.selectDialog(queries)

                        if choice <= len(read_from_history(
                                history_media)) and not choice == -1:
                            search_link = url_generator(
                                read_from_history(history_subrs)[choice],
                                media=False,
                                history=True)
                        else:
                            control.execute('Dialog.Close(all)')
                            return

                    else:

                        self.list = [{
                            'title':
                            q,
                            'url':
                            url_generator(q, media=False, history=True),
                            'action':
                            'search',
                            'query':
                            q,
                            'isFolder':
                            'False',
                            'isPlayable':
                            'False'
                        } for q in queries]

                        directory.add(self.list)
                        return

                elif query:

                    # Can convert a query directly to listing for display

                    search_link = url_generator(query=query,
                                                media=False,
                                                history=True)

                else:

                    control.execute('Dialog.Close(all)')
                    return

                directory.run_builtin(action='listing', url=search_link)

        else:

            self.list = [{
                'title': control.lang(30003),
                'action': 'search',
                'query': 'quick',
                'url': 'media' if media else 'subreddits'
            }]

            if media:

                self.list.append({
                    'title': control.lang(30005),
                    'action': 'search',
                    'query': 'advanced',
                    'url': 'media'
                })

                self.list.append({
                    'title': control.lang(30155),
                    'action': 'search',
                    'query': 'domain',
                    'url': 'media'
                })

            for i in self.list:
                i.update({'isFolder': 'False', 'isPlayable': 'False'})

            if control.setting('history.bool') == 'true':

                self.list.append({
                    'title': control.lang(30010),
                    'action': 'search',
                    'query': 'history',
                    'url': 'media' if media else 'subreddits'
                })

        directory.add(self.list)
예제 #6
0
    novasports.Indexer().event(url)

elif action == 'add_date':
    novasports.Indexer().add_date()

elif action == 'webtv':
    novasports.Indexer().webtv()

elif action == 'teams_index':
    novasports.Indexer().teams_index()

elif action == 'categories':
    novasports.Indexer().categories()

elif action == 'switch':
    novasports.Indexer().switch()

elif action == 'bookmarks':
    novasports.Indexer().bookmarks()

elif action == 'go_to_root':
    from tulip.directory import run_builtin
    run_builtin(action='root', path_history='replace')

elif action == 'play':
    novasports.Indexer().play(url)

elif action == 'cache_clear':
    from tulip import cache
    cache.FunctionCache().reset_cache(notify=True)
예제 #7
0
def player(url, params):

    global skip_directory

    if url is None:
        log_debug('Nothing playable was found')
        return

    if url.startswith('alivegr://'):
        log_debug('Attempting pseudo live playback')
        skip_directory = True
        pseudo_live(url)
        return

    url = url.replace('&amp;', '&')
    skip_directory = params.get('action') == 'play_skipped'

    directory_boolean = MOVIES in url or SHORTFILMS in url or THEATER in url or GK_BASE in url or (
        'episode' in url and GM_BASE in url)

    if directory_boolean and control.setting(
            'action_type') == '1' and not skip_directory:
        directory.run_builtin(action='directory', url=url)
        return

    log_debug('Attempting to play this url: ' + url)

    if params.get('action') == 'play_resolved':
        stream = url
    elif params.get('query') and control.setting('check_streams') == 'true':
        sl = json.loads(params.get('query'))
        index = int(control.infoLabel('Container.CurrentItem')) - 1
        stream = check_stream(sl,
                              False,
                              start_from=index,
                              show_pd=True,
                              cycle_list=False)
    else:
        stream = conditionals(url)

    if not stream:

        log_debug('Failed to resolve this url: {0}'.format(url))

        return

    try:
        plot = params.get('plot').encode('latin-1')
    except (UnicodeEncodeError, UnicodeDecodeError, AttributeError):
        plot = params.get('plot')

    if not plot and 'greek-movies.com' in url:
        plot = gm_source_maker(url).get('plot')

    dash, m3u8_dash, mimetype, manifest_type = dash_conditionals(stream)

    if not m3u8_dash and control.setting(
            'm3u8_quality_picker') == '1' and '.m3u8' in stream:

        try:

            stream = m3u8_picker(stream)

        except TypeError:

            pass

    if stream != url:

        log_debug('Stream has been resolved: ' + stream)

    else:

        log_debug('Attempting direct playback: ' + stream)

    # process headers if necessary:
    if '|' in stream:

        stream, sep, headers = stream.rpartition('|')

        headers = dict(parse_qsl(headers))

        log_debug('Appending custom headers: ' + repr(headers))

        stream = sep.join([stream, urlencode(headers)])

    try:

        image = params.get('image').encode('latin-1')
        title = params.get('title').encode('latin-1')

    except (UnicodeEncodeError, UnicodeDecodeError, AttributeError):

        image = params.get('image')
        title = params.get('title')

    meta = {'title': title}

    if plot:

        meta.update({'plot': plot})

    try:

        directory.resolve(stream,
                          meta=meta,
                          icon=image,
                          dash=dash,
                          manifest_type=manifest_type,
                          mimetype=mimetype)

        if url.startswith('iptv://') or 'kineskop.tv' in url:
            control.execute('PlayerControl(RepeatOne)')

    except:

        control.execute('Dialog.Close(all)')
        control.infoDialog(control.lang(30112))
예제 #8
0
def mags_addon():

    directory.run_builtin('plugin.video.Toronto-Channels', content_type='image')
예제 #9
0
elif content == 'image':

    news.Indexer().papers_index()

elif content == 'executable':

    settings.Indexer().menu()

elif action is None:

    navigator.Indexer().root()

elif action == 'root':

    run_builtin(content_type='video')

elif action == 'live_tv':

    live.Indexer().live_tv()

elif action == 'pvr_client':

    kodi.pvr_client(query)

elif action == 'networks':

    networks.Indexer().networks()

elif action == 'news':
예제 #10
0
    def search(self, action, query=None):

        if query is not None:
            choice = list(QUERY_MAP.keys()).index(query.split(',')[0])
            str_input = query.split(',')[1]
        else:
            choice = None
            str_input = None

        if choice is None:

            choices = [
                control.lang(30096),
                control.lang(30031),
                control.lang(30030),
                control.lang(30063),
                control.lang(30068),
                control.lang(30097),
                control.lang(30101)
            ]

            choice = control.selectDialog(heading=control.lang(30095),
                                          list=choices)

        if choice == 0:

            if str_input is None:

                str_input = control.dialog.input(
                    heading=control.lang(30095).partition(' ')[0] +
                    control.lang(30100) + control.lang(30096))

                if not str_input:
                    return

            add_to_history(u"Live TV Channel,{0}".format(str_input))

            if action == 'add_to_history':
                control.refresh()
                return

            self.list = live.Indexer().live_tv(zapping=False,
                                               query=str_input.lower())

            if query:
                directory.add(self.list)
            else:
                directory.run_builtin(action='generic_index',
                                      query=quote_plus(json.dumps(self.list)))

        elif choice == 1:

            if str_input is None:

                str_input = control.dialog.input(
                    heading=control.lang(30095).partition(' ')[0] +
                    control.lang(30100) + control.lang(30031))

                try:
                    str_input = cleantitle.strip_accents(
                        str_input.decode('utf-8'))
                except (UnicodeEncodeError, UnicodeDecodeError,
                        AttributeError):
                    str_input = cleantitle.strip_accents(str_input)

            if not str_input:
                return

            add_to_history(u"Movie,{0}".format(str_input))

            if action == 'add_to_history':
                control.refresh()
                return

            self.list = self.wrapper(str_input, 'movies')

            if query:
                directory.add(self.list, content='movies')
            else:
                directory.run_builtin(action='generic_index',
                                      query=quote_plus(json.dumps(self.list)))

        elif choice == 2:

            if str_input is None:

                str_input = control.dialog.input(
                    heading=control.lang(30095).partition(' ')[0] +
                    control.lang(30100) + control.lang(30030))

                if not str_input:

                    return

                try:
                    str_input = cleantitle.strip_accents(
                        str_input.decode('utf-8'))
                except (UnicodeEncodeError, UnicodeDecodeError,
                        AttributeError):
                    str_input = cleantitle.strip_accents(str_input)

            add_to_history(u"TV Serie,{0}".format(str_input))

            if action == 'add_to_history':
                control.refresh()
                return

            self.list = self.wrapper(str_input, 'series')

            if query is not None:
                directory.add(self.list, content='tvshows')
            else:
                directory.run_builtin(action='generic_index',
                                      query=quote_plus(json.dumps(self.list)))

        elif choice == 3:

            if not str_input:

                str_input = control.dialog.input(
                    heading=control.lang(30095).partition(' ')[0] +
                    control.lang(30100) + control.lang(30063))

                if not str_input:

                    return

                try:
                    str_input = cleantitle.strip_accents(
                        str_input.decode('utf-8'))
                except (UnicodeEncodeError, UnicodeDecodeError,
                        AttributeError):
                    str_input = cleantitle.strip_accents(str_input)

            add_to_history(u"TV Show,{0}".format(str_input))

            if action == 'add_to_history':
                control.refresh()
                return

            self.list = self.wrapper(str_input, 'shows')

            if query is not None:
                directory.add(self.list, content='tvshows')
            else:
                directory.run_builtin(action='generic_index',
                                      query=quote_plus(json.dumps(self.list)))

        elif choice == 4:

            if str_input is None:

                str_input = control.dialog.input(
                    heading=control.lang(30095).partition(' ')[0] +
                    control.lang(30100) + control.lang(30068))

                if not str_input:

                    return

                try:
                    str_input = cleantitle.strip_accents(
                        str_input.decode('utf-8'))
                except (UnicodeEncodeError, UnicodeDecodeError,
                        AttributeError):
                    str_input = cleantitle.strip_accents(str_input)

            add_to_history(u"Theater,{0}".format(str_input))

            if action == 'add_to_history':
                control.refresh()
                return

            self.list = self.wrapper(str_input, 'theater')

            if query is not None:
                directory.add(self.list, content='movies')
            else:
                directory.run_builtin(action='generic_index',
                                      query=quote_plus(json.dumps(self.list)))

        elif choice == 5:

            if str_input is None:
                str_input = control.dialog.input(
                    heading=control.lang(30095).partition(' ')[0] +
                    control.lang(30100) + control.lang(30097))

                if not str_input:

                    return

                try:
                    str_input = cleantitle.strip_accents(
                        str_input.decode('utf-8'))
                except (UnicodeEncodeError, UnicodeDecodeError,
                        AttributeError):
                    str_input = cleantitle.strip_accents(str_input)

            add_to_history(u"Cartoon,{0}".format(str_input))

            if action == 'add_to_history':
                control.refresh()
                return

            self.list = self.wrapper(str_input, 'animation')

            if query is not None:
                directory.add(self.list, content='tvshows')
            else:
                directory.run_builtin(action='generic_index',
                                      query=quote_plus(json.dumps(self.list)))

        elif choice == 6:

            if str_input is None:

                str_input = control.dialog.input(
                    heading=control.lang(30095).partition(' ')[0] +
                    control.lang(30100) + control.lang(30101))

                if not str_input:

                    return

                try:
                    str_input = cleantitle.strip_accents(
                        str_input.decode('utf-8'))
                except (UnicodeEncodeError, UnicodeDecodeError,
                        AttributeError):
                    str_input = cleantitle.strip_accents(str_input)

            add_to_history(u"Person,{0}".format(str_input))

            if action == 'add_to_history':
                control.refresh()
                return

            self.list = self.wrapper(str_input, 'person')

            if query is not None:
                directory.add(self.list)
            else:
                directory.run_builtin(action='generic_index',
                                      query=quote_plus(json.dumps(self.list)))

        else:

            control.close_all()