parsePlaylistHeader function

JsonMap parsePlaylistHeader(
  1. JsonMap response
)

Parses playlist header.

Implementation

JsonMap parsePlaylistHeader(JsonMap response) {
  final playlist = <String, dynamic>{};

  final editableHeader =
      nav(response, [
            ...HEADER,
            ...EDITABLE_PLAYLIST_DETAIL_HEADER,
          ], nullIfAbsent: true)
          as JsonMap?;
  playlist['owned'] = editableHeader != null;
  playlist['privacy'] = 'PUBLIC';

  JsonMap? header;

  if (editableHeader != null) {
    header = nav(editableHeader, HEADER_DETAIL) as JsonMap?;
    playlist['privacy'] =
        ((editableHeader['editHeader']
                as JsonMap)['musicPlaylistEditHeaderRenderer']
            as JsonMap)['privacy'];
  } else {
    header = nav(response, HEADER_DETAIL, nullIfAbsent: true) as JsonMap?;
    header ??=
        nav(response, [
              ...TWO_COLUMN_RENDERER,
              ...TAB_CONTENT,
              ...SECTION_LIST_ITEM,
              ...RESPONSIVE_HEADER,
            ])
            as JsonMap?;
  }

  playlist.addAll(parsePlaylistHeaderMeta(header!));

  if (playlist['thumbnails'] == null) {
    playlist['thumbnails'] = nav(header, THUMBNAIL_CROPPED, nullIfAbsent: true);
  }
  playlist['description'] = nav(header, [
    'description',
    ...DESCRIPTION_SHELF,
    ...DESCRIPTION,
  ], nullIfAbsent: true);
  playlist['year'] = nav(header, SUBTITLE2);

  return playlist;
}