getInfo method
Get the metadata and tracklist for an album on Last.fm using the album name or a musicbrainz id.
Implementation
Future<Album> getInfo({
String? artist,
String? album,
String? mbid,
bool autoCorrect = false,
String? username,
Language language = Language.en,
}) async {
if ((album == null || artist == null) && mbid == null) {
return Future.error(
ScrobblenautException(
description:
'At least mbid is required. '
'Can be used also album and artist.',
),
);
}
final parameters = {
'artist': artist,
'album': album,
'mbid': mbid,
'autocorrect': (autoCorrect ? 1 : 0),
'username': username,
'lang': language.code,
};
final request = Request(
api: _api,
method: 'album.getInfo',
parameters: parameters,
);
final response = await request.send(mode: RequestMode.GET);
// This operation is necessary because the tracks have different duration
// from [track.getInfo].
var albumInfo = Album.fromJson(response['album']);
albumInfo.tracks?.forEach((Track track) {
track.duration = track.duration != null ? track.duration! * 1000 : null;
});
return albumInfo;
}