예제 #1
0
def MainMenu():
    oc = ObjectContainer(no_cache=True)
    oc.add(PrefsObject(title="Preferences"))
    # Attempt to log in
    logged_in = Account.LoggedIn()
    if not logged_in:
        logged_in = Account.TryLogIn()
    if logged_in:
        access_token = FlickRAuthToken.from_string(Dict['accesstoken'])
        request = FlickRRequest()
        defaults = {
            'api_key': FLICKR_KEY,
            'format': 'rest',
            'method': 'flickr.photosets.getList',
            'primary_photo_extras': 'url_m'
        }
        response = request.make_query(
            access_token=access_token,
            query='https://api.flickr.com/services/rest',
            params=defaults,
            returnURL=False)
        photosets = ET.fromstring(response.read())
        for item in photosets.findall('.//photoset'):
            title = item.find('./title').text
            thumb = item.find('./primary_photo_extras').attrib['url_m']
            photosetid = item.find('.').attrib['id']
            oc.add(
                DirectoryObject(key=Callback(PhotoSet, id=photosetid),
                                title=title,
                                thumb=thumb))
    return oc
예제 #2
0
def MainMenu():
    # Attempt to log in
    logged_in = Account.LoggedIn()
    if not logged_in:
        logged_in = Account.TryLogIn()

    oc = ObjectContainer(no_cache=True, title1="Netflix UK")

    if logged_in:

        # Search
        oc.add(
            InputDirectoryObject(key=Callback(Search),
                                 title="Search",
                                 prompt="Search for a Movie or TV Show..."))

        # Recently Added Movies
        oc.add(
            DirectoryObject(key=Callback(MenuItem,
                                         url=MOVIE_URL % "recent",
                                         title="Recently Added Movies",
                                         content=ContainerContent.Movies),
                            title="Recently Added Movies",
                            thumb=R("nfx_new.png")))

        # Recently Added TV
        oc.add(
            DirectoryObject(key=Callback(MenuItem,
                                         url=TV_URL % "recent",
                                         title="Recent Added TV Programmes",
                                         content=ContainerContent.Shows),
                            title="Recent Added TV Programmes",
                            thumb=R("nfx_new.png")))

        # List Genres
        data = JSON.ObjectFromURL(GENRE_URL % "")
        if data["status"]["code"] == 200:
            for item in data["results"]:
                url = GENRE_URL % item["id"]
                title = item["genre"]
                thumb = "nfx_genre_%s.png" % item["id"]
                oc.add(
                    DirectoryObject(key=Callback(
                        MenuItem,
                        url=url,
                        title=title,
                        content=ContainerContent.Mixed),
                                    title=title,
                                    thumb=R(thumb)))

    else:

        # The user has not yet provided valid credentials. Therefore, we should allow them to be redirected
        # to sign up for a free trial.
        if Client.Platform in ("MacOSX", "Windows"):
            oc.add(
                DirectoryObject(key=Callback(FreeTrial),
                                title="Sign up for free trial"))

    oc.add(PrefsObject(title="Preferences", thumb=R("nfx_preferences.png")))

    return oc