def add_trakt(title, year=''):
    trakt_api = Trakt_API(kodi.get_setting('trakt_oauth_token'), kodi.get_setting('use_https') == 'true', timeout=int(kodi.get_setting('trakt_timeout')))
    results = trakt_api.search(SECTIONS.MOVIES, title)
    try: results = [result for result in results if result['year'] is not None and int(result['year']) - 1 <= int(year) <= int(result['year'] + 1)]
    except: pass
    if not results:
        kodi.notify(msg=i18n('no_movie_found'))
        return
    
    if len(results) == 1:
        index = 0
    else:
        pick_list = [movie['title'] if movie['year'] is None else '%s (%s)' % (movie['title'], movie['year']) for movie in results]
        index = xbmcgui.Dialog().select(i18n('pick_a_movie'), pick_list)
        
    if index > -1:
        slug = kodi.get_setting('default_slug')
        name = kodi.get_setting('default_list')
        if not slug:
            result = utils.choose_list(Trakt_API, translations)
            if result is None:
                return
            else:
                slug, name = result
        
        item = {'trakt': results[index]['ids']['trakt']}
        if slug == WATCHLIST_SLUG:
            trakt_api.add_to_watchlist(SECTIONS.MOVIES, item)
        elif slug:
            trakt_api.add_to_list(SECTIONS.MOVIES, slug, item)
            
        movie = results[index]
        label = movie['title'] if movie['year'] is None else '%s (%s)' % (movie['title'], movie['year'])
        kodi.notify(msg=i18n('added_to_list') % (label, name))
        kodi.refresh_container()
Пример #2
0
def choose_deck():
    """Display options and return user deck choice."""
    deck_prompt = "What deck would you like to play?"
    choice = utils.choose_list(utils.DECKLIST, deck_prompt)
    deck = dicts.ALL_DECKS[choice]
    os.system('clear')
    return deck
Пример #3
0
def no_name():
    """
    Exception handler when load fails because User not found.

    Output:
    User: user, if new selected. Else load_player()
    """
    noname_prompt = "Sorry, I can't find that file. Would you like to:"
    ans_list = ["Try a different name", "Start a new save"]
    response = utils.choose_list(ans_list, noname_prompt)
    if response == ans_list[0]:
        return load_player()
    elif response == ans_list[1]:
        user = new_player()
        return user
Пример #4
0
def add_trakt(title, year=''):
    trakt_api = Trakt_API(kodi.get_setting('trakt_oauth_token'),
                          kodi.get_setting('use_https') == 'true',
                          timeout=int(kodi.get_setting('trakt_timeout')))
    results = trakt_api.search(SECTIONS.MOVIES, title)
    try:
        results = [
            result for result in results
            if result['year'] is not None and int(result['year']) -
            1 <= int(year) <= int(result['year'] + 1)
        ]
    except:
        pass
    if not results:
        kodi.notify(msg=i18n('no_movie_found'))
        return

    if len(results) == 1:
        index = 0
    else:
        pick_list = [
            movie['title'] if movie['year'] is None else '%s (%s)' %
            (movie['title'], movie['year']) for movie in results
        ]
        index = xbmcgui.Dialog().select(i18n('pick_a_movie'), pick_list)

    if index > -1:
        slug = kodi.get_setting('default_slug')
        name = kodi.get_setting('default_list')
        if not slug:
            result = utils.choose_list(Trakt_API, translations)
            if result is None:
                return
            else:
                slug, name = result

        item = {'trakt': results[index]['ids']['trakt']}
        if slug == WATCHLIST_SLUG:
            trakt_api.add_to_watchlist(SECTIONS.MOVIES, item)
        elif slug:
            trakt_api.add_to_list(SECTIONS.MOVIES, slug, item)

        movie = results[index]
        label = movie['title'] if movie['year'] is None else '%s (%s)' % (
            movie['title'], movie['year'])
        kodi.notify(msg=i18n('added_to_list') % (label, name))
        kodi.refresh_container()
Пример #5
0
def set_list():
    result = utils.choose_list(Trakt_API, translations)
    if result is not None:
        slug, name = result
        kodi.set_setting('default_list', name)
        kodi.set_setting('default_slug', slug)
Пример #6
0
        return False


def m_play_again(user, deck):
    """
    Ask user to play again, then restart or quit.

    This function asks the user if they want to play again
    if yes, restart memory, if no then exit. Name is such to distinguish
    from play_again normally run through menu.py.

    Input:
    User: user
    Output:
    No output, but can restart the game
    """
    print(f"{user.name},\n\tWould you like to play again?")
    print("Enter 'y' or 'n'")
    if input('>')[0].lower() != 'n':
        memory(user, deck)


if __name__ == '__main__':
    # user = mu.get_player()
    user = utils.User('Player')
    deck_prompt = "What deck would you like to play?"
    deck = utils.choose_list(utils.DECKLIST, deck_prompt)
    os.system('clear')
    memory(user, deck)
    m_play_again(user, deck)
def set_list():
    result = utils.choose_list(Trakt_API, translations)
    if result is not None:
        slug, name = result
        kodi.set_setting('default_list', name)
        kodi.set_setting('default_slug', slug)
Пример #8
0
    Input:
    user -- the User instance for current player.
    """
    print(f"{user.name},\n\tWould you like to play again?")
    print("Enter 'y' or 'n'\n")
    if input('>')[0].lower() != 'n':
        print()
        play_memory(user, session_cards, deck)


if __name__ == '__main__':
    os.system('clear')
    player = get_player()
    games_list = ['Player Stats', 'Memory']
    game_prompt = "What game would you like to play?"
    game = utils.choose_list(games_list, game_prompt)
    ################
    ##  Fix this  ##
    ################
    if game == 'Player Stats':
        print("No stats yet")
        input('Press enter to quit.')
        sys.exit()
    elif game == 'Memory':
        session_cards = []
        deck = choose_deck()
        player.add_deck(deck)
        play_memory(player, session_cards, deck)
        return_stats(player, set(session_cards), deck)
    save_player(player)