1

i am trying to read out an RSS feed with dart, which works fine only the description property is not really readable. The thing is that the Google News RSS feed is giving me some html data which I do not know how to handle, there is a nice android example, which works for Kotlin, but I do not get it transferred to dart. (Android example: https://jtmuller5-98869.medium.com/replacing-the-google-news-api-with-an-rss-feed-and-jsoup-c351de353479 ). The RSS feed looks like this:

enter image description here

Under description should be the start of the article or some second headline, like you find when you normally search in google news. In the android example he manage to get it with some extra html request. Somebody an idea how to get the description like it is when you search in google news? That would be really nice. Thanks a lot in advance.

Here my code:

import 'package:flutter_stocksplus_v1/Models/news_Post.dart';
import 'package:http/http.dart' as http;
import 'package:webfeed/webfeed.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:beautifulsoup/beautifulsoup.dart';
import 'package:html/parser.dart';

//import 'package:cached';
import 'package:intl/intl.dart';

class Google_News_API {
  String baseUrl = 'http://news.google.com/news?';
  
  String search_language = 'de-DE';
  String search_country = 'DE';
  String search_maxNumber = '10';

  Future<List<News_Post>> loadFeed2(name) async {
    List<News_Post> response_array = [];
    print('test Rssfeed');
    String search_Term = name + '+Aktie';

    String feedURL = 'http://news.google.com/news?q=' +
        search_Term +
        '&hl=' +
        search_language +
        '&sort=date&gl=' +
        search_country +
        '&num=' +
        search_maxNumber +
        '&output=rss';

    final response = await http.get(feedURL);

    if (response.statusCode == 200) {
      var responseFinal = RssFeed.parse(response.body);

      for (var item in responseFinal.items) {
        var title = item.title;
        var link = item.link;
        var date = item.pubDate;
        var description = item.description;
        var source = item.source;

        DateTime tempDate = HttpDate.parse(date).toLocal();
        
        var formatter = new DateFormat('d MMM / H:m');

        var newsPost = News_Post(title: title, text: '', date: tempDate, link: link, source: source.value);
        

        response_array.add(newsPost);
      }
    }

    return response_array;
  }
}```

0 Answers0