getWeeklyTrackChart method

Future<List<Track>?> getWeeklyTrackChart({
  1. required String user,
  2. DateTime? fromDate,
  3. DateTime? toDate,
})

Get a track chart for a user profile, for a given date range. If no date range is supplied, it will return the most recent track chart for this user.

NOTE: the output list is already ordered by rank.

https://www.last.fm/api/show/user.getWeeklyTrackChart

Implementation

Future<List<Track>?> getWeeklyTrackChart({
  required String user,
  DateTime? fromDate,
  DateTime? toDate,
}) async {
  final parameters = {
    'user': user,
    'from': LastFMValueNormalizer.DateTimeToUnixTime(fromDate),
    'to': LastFMValueNormalizer.DateTimeToUnixTime(toDate),
  };

  // TODO: is the rank necessary!?

  final request = Request(
    api: _api,
    method: 'user.getWeeklyTrackChart',
    parameters: parameters,
  );

  final response = await request.send(mode: RequestMode.GET);

  final weeklyTrackChart = response['weeklytrackchart']['track'];

  return parseLastFMList<Track>(weeklyTrackChart, (i) => Track.fromJson(i));
}