getSimilar method
Get the similar tracks for this track on Last.fm, based on listening data.
Implementation
Future<List<Track>?> getSimilar({
String? track,
String? artist,
String? mbid,
int? limit,
bool autoCorrect = false,
}) async {
if ((track == null || artist == null) && mbid == null) {
return Future.error(
ScrobblenautException(
description:
'At least mbid is required. '
'Can be used also track and artist.',
),
);
}
final parameters = {
'track': track,
'artist': artist,
'mbid': mbid,
'limit': limit,
'autocorrect': (autoCorrect ? 1 : 0),
};
final request = Request(
api: _api,
method: 'track.getSimilar',
parameters: parameters,
);
final response = await request.send(mode: RequestMode.GET);
final similarTracks = response['similartracks']['track'];
return similarTracks == null
? null
: List.generate(
(similarTracks as List).length,
(i) => Track.fromJson(similarTracks[i]),
);
}