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
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