The Webfeed Flutter package for Appeto SDK.
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

62 rindas
1.9 KiB

  1. import 'package:webfeed/domain/dublin_core/dublin_core.dart';
  2. import 'package:webfeed/domain/media/media.dart';
  3. import 'package:webfeed/domain/rss_category.dart';
  4. import 'package:webfeed/domain/rss_content.dart';
  5. import 'package:webfeed/domain/rss_enclosure.dart';
  6. import 'package:webfeed/domain/rss_source.dart';
  7. import 'package:webfeed/util/helpers.dart';
  8. import 'package:xml/xml.dart';
  9. class RssItem {
  10. final String title;
  11. final String description;
  12. final String link;
  13. final List<RssCategory> categories;
  14. final String guid;
  15. final String pubDate;
  16. final String author;
  17. final String comments;
  18. final RssSource source;
  19. final RssContent content;
  20. final Media media;
  21. final RssEnclosure enclosure;
  22. final DublinCore dc;
  23. RssItem({
  24. this.title,
  25. this.description,
  26. this.link,
  27. this.categories,
  28. this.guid,
  29. this.pubDate,
  30. this.author,
  31. this.comments,
  32. this.source,
  33. this.content,
  34. this.media,
  35. this.enclosure,
  36. this.dc,
  37. });
  38. factory RssItem.parse(XmlElement element) {
  39. return RssItem(
  40. title: findElementOrNull(element, "title")?.text,
  41. description: findElementOrNull(element, "description")?.text,
  42. link: findElementOrNull(element, "link")?.text,
  43. categories: element.findElements("category").map((element) {
  44. return RssCategory.parse(element);
  45. }).toList(),
  46. guid: findElementOrNull(element, "guid")?.text,
  47. pubDate: findElementOrNull(element, "pubDate")?.text,
  48. author: findElementOrNull(element, "author")?.text,
  49. comments: findElementOrNull(element, "comments")?.text,
  50. source: RssSource.parse(findElementOrNull(element, "source")),
  51. content: RssContent.parse(findElementOrNull(element, "content:encoded")),
  52. media: Media.parse(element),
  53. enclosure: RssEnclosure.parse(findElementOrNull(element, "enclosure")),
  54. dc: DublinCore.parse(element),
  55. );
  56. }
  57. }