Example #1
0
    def load_album_info(self, index, album):
        #Directly discard unavailable albums
        if not album.is_available():
            self.__album_data[index] = {
                'available_tracks': 0,
                'type': self._get_album_type(album),
            }

        #Otherwise load it's data
        else:
            #A checker for a single condition? Overkill!
            checker = BulkConditionChecker()
            cb = AlbumCallbacks(checker)
            album_info = albumbrowse.Albumbrowse(self.__session, album, cb)

            #Now wait until it's loaded
            self._wait_for_album_info(album_info, checker)

            #Populate it's data
            self.__album_data[index] = {
                'available_tracks': self._num_available_tracks(album_info),
                'type': self._get_album_type(album),
            }

            #Tell that we've done
            self.__checker.check_conditions()
Example #2
0
    def load_album_info(self, index, album):

        # Directly discard unavailable albums
        if not album.is_available():
            self.__album_data[index] = {
                'available_tracks': 0,
                'type': self._get_album_type(album),
            }

        # Otherwise load its data
        else:
            cb = AlbumCallbacks(current_task())
            album_info = albumbrowse.Albumbrowse(self.__session, album, cb)

            # Now wait until it's loaded
            self._wait_for_album_info(album_info)

            # Populate its data
            self.__album_data[index] = {
                'available_tracks': self._num_available_tracks(album_info),
                'type': self._get_album_type(album),
            }

            # Tell that we're done
            self.check()
Example #3
0
    def get_album_info(self, index):
        album = self.__artistbrowse.album(index)
        checker = BulkConditionChecker()
        cb = AlbumCallbacks(checker)
        album_info = albumbrowse.Albumbrowse(self.__session, album, cb)

        #Wait until it's loaded
        self._wait_for_album_info(album_info, checker)

        return album_info
Example #4
0
    def _load_album(self, id):
        import time
        full_id = "spotify:album:%s" % id
        checker = BulkConditionChecker()

        #All the album loading stuff
        link_obj = link.create_from_string(full_id)
        album_obj = link_obj.as_album()

        #Now the albumbrowse object
        callbacks = AlbumbrowseLoadCallbacks(checker)
        albumbrowse_obj = albumbrowse.Albumbrowse(self._session, album_obj,
                                                  callbacks)
        checker.add_condition(albumbrowse_obj.is_loaded)
        checker.complete_wait(10)

        return album_obj, albumbrowse_obj
Example #5
0
 def __init__(self, session, album):
     self.__list_rendered = False
     self.__update_lock = threading.Lock()
     cb = AlbumCallbacks()
     self.__albumbrowse = albumbrowse.Albumbrowse(session, album, cb)