示例#1
0
 def search(self, page = {}):
     page = Page.from_obj(page)
     session = self.current_session()
     search_result = Search(page, session).run_and_wait()
     tracks = LoadTrack.from_list(search_result.tracks(), session)
     
     return Model(tracks = self.model_factory.to_track_list_model(tracks, session), page = page)
示例#2
0
    def playlist_tracks(self, page = {}):
        page = Page.from_obj(page)
        playlist_link = link.create_from_string(page.identifier)        
        session = self.current_session()
        linked_playlist = Playlist(playlist.create(session, playlist_link))

        return self.tracks_model(linked_playlist, page, session)        
示例#3
0
        def wrapped_f(*args):
            cache_storage = args[0].cache_storage
            cache = cache_storage.get_cache(self.key)
            item_key = Cached.GLOBAL_KEY

            if len(args) > 1:
                arg = args[1]
                print arg
                if type(arg) == type({}):
                    page = Page.from_obj(arg)
                    item_key = page.cache_key()
                else:
                    item_key = arg

            result = cache.get(item_key)

            if result is not None:
                print 'Cache hit for item ', item_key, ' and cache ', self.key
                return result
            else:
                print 'Cache miss. Calling function and filling cache item ', item_key, ' and cache ', self.key
                result = f(*args)
                cache.update(item_key, result)

            return f(*args)
示例#4
0
        def wrapped_f(*args):
            cache_storage = args[0].cache_storage
            cache = cache_storage.get_cache(self.key)
            item_key = Cached.GLOBAL_KEY

            if len(args) > 1:
                arg = args[1]
                print arg
                if type(arg) == type({}):
                    page = Page.from_obj(arg)
                    item_key = page.cache_key()
                else:
                    item_key = arg
                
            result = cache.get(item_key)
            
            if result is not None:
                print 'Cache hit for item ', item_key, ' and cache ', self.key
                return result
            else:
                print 'Cache miss. Calling function and filling cache item ', item_key, ' and cache ', self.key
                result = f(*args)
                cache.update(item_key, result)
                
            return f(*args)            
示例#5
0
 def starred(self, page = {}):
     session = self.current_session()
     playlist = LoadStarred(session).run_and_wait()
     page = Page.from_obj(page)
     
     return self.tracks_model(playlist, page, session)
示例#6
0
 def get_playlist(self, args, path):
     tracks_model = Model.from_object(self.server.playlist_tracks(args))
     self.ui_helper.create_list_of_tracks(Model.from_object_list(tracks_model.tracks), Page.from_obj(tracks_model.page), path)        
     self.ui_helper.end_directory()
示例#7
0
 def search(self, args, path):        
     if args.identifier == '':
         query = self.ui_helper.keyboardText()
     else:
         query = args.identifier
     if query is not None and query is not '':
         tracks_model = Model.from_object(self.server.search(Page(args.start, args.offset, args.max_items, query)))
         self.ui_helper.create_list_of_tracks(Model.from_object_list(tracks_model.tracks), Page.from_obj(tracks_model.page), path)
     self.ui_helper.end_directory()