parseArtists function

List parseArtists(
  1. List<JsonMap> results, {
  2. bool uploaded = false,
})

Parses artist from results.

Implementation

List parseArtists(List<JsonMap> results, {bool uploaded = false}) {
  final List artists = [];

  for (final result in results) {
    final data = result[MRLIR];
    final artist = <String, dynamic>{};
    artist['browseId'] = nav(data, NAVIGATION_BROWSE_ID);
    artist['artist'] = getItemText(data as JsonMap, 0);
    final pageType = nav(
      data,
      NAVIGATION_BROWSE + PAGE_TYPE,
      nullIfAbsent: true,
    );

    if (pageType == 'MUSIC_PAGE_TYPE_USER_CHANNEL') {
      artist['type'] = 'channel';
    } else if (pageType == 'MUSIC_PAGE_TYPE_ARTIST') {
      artist['type'] = 'artist';
    }

    parseMenuPlaylists(data, artist);

    if (uploaded) {
      artist['songs'] = (getItemText(data, 1) ?? '').split(' ')[0];
    } else {
      final subtitle = getItemText(data, 1);
      if (subtitle != null) {
        artist['subscribers'] = subtitle.split(' ')[0];
      }
    }

    artist['thumbnails'] = nav(data, THUMBNAILS, nullIfAbsent: true);
    artists.add(artist);
  }

  return artists;
}