Exemplo n.º 1
0
def resolve_player(player, lister, params):
    results = []
    for command_group in player.commands:
        if xbmc.Monitor().abortRequested() or not Lister().is_active():
            return
        command_group_results = []
        for command in command_group:
            if xbmc.Monitor().abortRequested() or not Lister().is_active():
                return
            lang = command.get('language', 'en')
            if not lang in params:
                continue
            parameters = params[lang]

            #CHANGES		link = text.apply_parameters(text.to_unicode(command['link']), parameters)
            #			link = text.apply_parameters(text.to_unicode(command['link']), parameters).replace(' & ','%20%26%20')
            #modified the following line to replace " & " with " and "
            link = text.apply_parameters(text.to_unicode(command['link']),
                                         parameters).replace(' & ', ' and ')
            #			xbmc.log(link, level=4)

            if link == 'movies' and player.media == 'movies':
                video = tools.get_movie_from_library(parameters['imdb'])
                if video:
                    command_group_results.append(video)
            elif link == 'tvshows' and player.media == 'tvshows':
                video = tools.get_episode_from_library(parameters['id'],
                                                       parameters['season'],
                                                       parameters['episode'])
                if not video:
                    video = tools.get_episode_from_library(
                        parameters['tmdb'], parameters['season'],
                        parameters['episode'])
                if video:
                    command_group_results.append(video)
            elif not command.get('steps'):
                command_group_results.append({
                    'label':
                    player.title,
                    'path':
                    text.urlencode_path(link),
                    'action':
                    command.get('action', 'PLAY')
                })
            else:
                steps = [text.to_unicode(step) for step in command['steps']]
                files, dirs = Lister().get(link, steps, parameters)
                if files:
                    command_group_results += [{
                        'label':
                        f['label'],
                        'path': (f['path']),
                        'action':
                        command.get('action', 'PLAY')
                    } for f in files]
            if command_group_results:
                break
        results += command_group_results
    if results:
        return player.title, results
Exemplo n.º 2
0
def resolve_player(player, lister, params):
    #	xbmc.log(str('def resolve_player(player, lister, params):')+'===>OPENMETA', level=xbmc.LOGNOTICE)
    results = []
    for command_group in player.commands:
        if xbmc.Monitor().abortRequested() or not lister.is_active():
            return
        command_group_results = []
        for command in command_group:
            if xbmc.Monitor().abortRequested() or not lister.is_active():
                return
            lang = command.get('language', 'en')
            if not lang in params:
                continue
            parameters = params[lang]
            link = text.apply_parameters(text.to_unicode(command['link']),
                                         parameters)
            if link == 'movies' and player.media == 'movies':
                video = tools.get_movie_from_library(parameters['imdb'])
                if video:
                    command_group_results.append(video)
            elif link == 'tvshows' and player.media == 'tvshows':
                video = tools.get_episode_from_library(parameters['id'],
                                                       parameters['season'],
                                                       parameters['episode'])
                if not video:
                    video = tools.get_episode_from_library(
                        parameters['tmdb'], parameters['season'],
                        parameters['episode'])
                if video:
                    command_group_results.append(video)
            elif not command.get('steps'):
                command_group_results.append({
                    'label':
                    player.title,
                    'path':
                    text.urlencode_path(link),
                    'action':
                    command.get('action', 'PLAY')
                })
            else:
                steps = [text.to_unicode(step) for step in command['steps']]
                files, dirs = lister.get(link, steps, parameters)
                if files:
                    command_group_results += [{
                        'label':
                        f['label'],
                        'path':
                        player.postprocess(f['path']),
                        'action':
                        command.get('action', 'PLAY')
                    } for f in files]
            if command_group_results:
                break
        results += command_group_results
    if results:
        return player.title, results