How to use the pylast.Album function in pylast

To help you get started, we’ve selected a few pylast examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github pylast / pylast / tests / test_track.py View on Github external
def test_album_tracks(self):
        # Arrange
        album = pylast.Album("Test Artist", "Test", self.network)

        # Act
        tracks = album.get_tracks()
        url = tracks[0].get_url()

        # Assert
        assert isinstance(tracks, list)
        assert isinstance(tracks[0], pylast.Track)
        assert len(tracks) == 1
        assert url.startswith("https://www.last.fm/music/test")
github pylast / pylast / tests / test_album.py View on Github external
def test_album_wiki_content(self):
        # Arrange
        album = pylast.Album("Test Artist", "Test Album", self.network)

        # Act
        wiki = album.get_wiki_content()

        # Assert
        self.assertIsNotNone(wiki)
        self.assertGreaterEqual(len(wiki), 1)
github pylast / pylast / tests / test_album.py View on Github external
def test_album_wiki_published_date(self):
        # Arrange
        album = pylast.Album("Test Artist", "Test Album", self.network)

        # Act
        wiki = album.get_wiki_published_date()

        # Assert
        assert wiki is not None
        assert len(wiki) >= 1
github pylast / pylast / tests / test_user.py View on Github external
def helper_get_assert_charts(self, thing, date):
        # Arrange
        album_chart, track_chart = None, None
        (from_date, to_date) = date

        # Act
        artist_chart = thing.get_weekly_artist_charts(from_date, to_date)
        if type(thing) is not pylast.Tag:
            album_chart = thing.get_weekly_album_charts(from_date, to_date)
            track_chart = thing.get_weekly_track_charts(from_date, to_date)

        # Assert
        self.helper_assert_chart(artist_chart, pylast.Artist)
        if type(thing) is not pylast.Tag:
            self.helper_assert_chart(album_chart, pylast.Album)
            self.helper_assert_chart(track_chart, pylast.Track)
github beetbox / beets / beetsplug / lastgenre / __init__.py View on Github external
def _tags_for(self, obj, min_weight=None):
        """Core genre identification routine.

        Given a pylast entity (album or track), return a list of
        tag names for that entity. Return an empty list if the entity is
        not found or another error occurs.

        If `min_weight` is specified, tags are filtered by weight.
        """
        # Work around an inconsistency in pylast where
        # Album.get_top_tags() does not return TopItem instances.
        # https://github.com/pylast/pylast/issues/86
        if isinstance(obj, pylast.Album):
            obj = super(pylast.Album, obj)

        try:
            res = obj.get_top_tags()
        except PYLAST_EXCEPTIONS as exc:
            self._log.debug(u'last.fm error: {0}', exc)
            return []
        except Exception as exc:
            # Isolate bugs in pylast.
            self._log.debug(u'{}', traceback.format_exc())
            self._log.error(u'error in pylast library: {0}', exc)
            return []

        # Filter by weight (optionally).
        if min_weight:
            res = [el for el in res if (int(el.weight or 0)) >= min_weight]
github maxexcloo / LastDown / pylast.py View on Github external
def get_weekly_album_charts(self, from_date = None, to_date = None):
        """Returns the weekly album charts for the week starting from the from_date value to the to_date value."""
        
        params = self._get_params()
        if from_date and to_date:
            params["from"] = from_date
            params["to"] = to_date
        
        doc = self._request("user.getWeeklyAlbumChart", True, params)
        
        seq = []
        for node in doc.getElementsByTagName("album"):
            item = Album(_extract(node, "artist"), _extract(node, "name"), self.network)
            weight = _number(_extract(node, "playcount"))
            seq.append(TopItem(item, weight))
        
        return seq
github asermax / lastfm_extension / pylast.py View on Github external
If no artist is specified, it will return all, sorted by playcount descendingly.
        If limit==None it will return all (may take a while)
        """
        
        params = self._get_params()
        if artist:
            params["artist"] = artist
        
        seq = []
        for node in _collect_nodes(limit, self, "library.getAlbums", True, params):
            name = _extract(node, "name")
            artist = _extract(node, "name", 1)
            playcount = _number(_extract(node, "playcount"))
            tagcount = _number(_extract(node, "tagcount"))
            
            seq.append(LibraryItem(Album(artist, name, self.network), playcount, tagcount))
        
        return seq
github clinton-hall / nzbToMedia / libs / beetsplug / lastgenre / __init__.py View on Github external
def _tags_for(self, obj, min_weight=None):
        """Core genre identification routine.

        Given a pylast entity (album or track), return a list of
        tag names for that entity. Return an empty list if the entity is
        not found or another error occurs.

        If `min_weight` is specified, tags are filtered by weight.
        """
        # Work around an inconsistency in pylast where
        # Album.get_top_tags() does not return TopItem instances.
        # https://code.google.com/p/pylast/issues/detail?id=85
        if isinstance(obj, pylast.Album):
            obj = super(pylast.Album, obj)

        try:
            res = obj.get_top_tags()
        except PYLAST_EXCEPTIONS as exc:
            self._log.debug(u'last.fm error: {0}', exc)
            return []
        except Exception as exc:
            # Isolate bugs in pylast.
            self._log.debug(u'{}', traceback.format_exc())
            self._log.error(u'error in pylast library: {0}', exc)
            return []

        # Filter by weight (optionally).
        if min_weight:
            res = [el for el in res if (int(el.weight or 0)) >= min_weight]
github asermax / lastfm_extension / pylast.py View on Github external
o PERIOD_6MONTHS
          o PERIOD_12MONTHS 
        """
        
        params = self._get_params()
        params['period'] = period
        
        doc = self._request('user.getTopAlbums', True, params)
        
        seq = []
        for album in doc.getElementsByTagName('album'):
            name = _extract(album, 'name')
            artist = _extract(album, 'name', 1)
            playcount = _extract(album, "playcount")
            
            seq.append(TopItem(Album(artist, name, self.network), playcount))
        
        return seq
github maxexcloo / LastDown / pylast.py View on Github external
If no artist is specified, it will return all, sorted by playcount descendingly.
        If limit==None it will return all (may take a while)
        """
        
        params = self._get_params()
        if artist:
            params["artist"] = artist
        
        seq = []
        for node in _collect_nodes(limit, self, "library.getAlbums", True, params):
            name = _extract(node, "name")
            artist = _extract(node, "name", 1)
            playcount = _number(_extract(node, "playcount"))
            tagcount = _number(_extract(node, "tagcount"))
            
            seq.append(LibraryItem(Album(artist, name, self.network), playcount, tagcount))
        
        return seq