getLastAddedAnimes method

Future<List> getLastAddedAnimes()

Implementation

Future<List> getLastAddedAnimes() async {
  // get request to base animeflv url
  final res = await http.Client().get(Uri.parse(BASE_URL));
  if (res.statusCode == 200) {
    // get html and look for last animes list
    final body = res.body.toString();
    final soup = BeautifulSoup(body);
    var lastAnimes = [];
    final lastAnimesElements =
        soup.findAll('', selector: '.ListAnimes article.Anime');
    // for every anime found we save some data
    for (var anime in lastAnimesElements) {
      final id = anime.a?['href'];
      lastAnimes.add({
        'id': id?.substring(1, id.length),
        'title': anime.find('', selector: 'a h3')?.string,
        'poster':
            '$BASE_URL${anime.find('', selector: '.Image figure img')?['src']}',
        'banner':
            '$BASE_URL${anime.find('', selector: '.Image figure img')?['src']?.replaceAll('covers', 'banners').trim()}',
        'type':
            anime.find('', selector: 'div.Description p span.Type')?.string,
        'synopsis':
            anime.findAll('', selector: 'div.Description p')[1].string.trim(),
        'rating':
            anime.find('', selector: 'div.Description p span.Vts')?.string,
      });
    }
    // return last animes found
    return lastAnimes;
  }
  return [];
}