getSearchParams function

String? getSearchParams(
  1. String? filter,
  2. String? scope,
  3. bool ignoreSpelling
)

Get search params for given filter, scope and ignoreSpelling.

Implementation

String? getSearchParams(String? filter, String? scope, bool ignoreSpelling) {
  const filteredParam1 = 'EgWKAQ';
  String? params;
  late String param1;
  late String param2;
  late String param3;

  if (filter == null && scope == null && !ignoreSpelling) return params;

  if (scope == 'uploads') params = 'agIYAw%3D%3D';
  if (scope == 'library') {
    if (filter != null) {
      param1 = filteredParam1;
      param2 = _getParam2(filter);
      param3 = 'AWoKEAUQCRADEAoYBA%3D%3D';
    } else {
      params = 'agIYBA%3D%3D';
    }
  }

  if (scope == null && filter != null) {
    if (filter == 'playlists') {
      params = 'Eg-KAQwIABAAGAAgACgB';
      params +=
          ignoreSpelling
              ? 'MABCAggBagoQBBADEAkQBRAK'
              : 'MABqChAEEAMQCRAFEAo%3D';
    } else if (filter.contains('playlists')) {
      param1 = 'EgeKAQQoA';
      param2 = filter == 'featured_playlists' ? 'Dg' : 'EA';
      param3 =
          ignoreSpelling
              ? 'BQgIIAWoMEA4QChADEAQQCRAF'
              : 'BagwQDhAKEAMQBBAJEAU%3D';
    } else {
      param1 = filteredParam1;
      param2 = _getParam2(filter);
      param3 =
          ignoreSpelling
              ? 'AUICCAFqDBAOEAoQAxAEEAkQBQ%3D%3D'
              : 'AWoMEA4QChADEAQQCRAF';
    }
  }

  if (scope == null && filter == null && ignoreSpelling) {
    params = 'EhGKAQ4IARABGAEgASgAOAFAAUICCAE%3D';
  }

  return params ?? (param1 + param2 + param3);
}