The Webfeed Flutter package for Appeto SDK.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

70 Zeilen
2.0 KiB

  1. import 'package:xml/xml.dart';
  2. import 'package:webfeed/util/helpers.dart';
  3. import 'rss_itunes_category.dart';
  4. import 'rss_itunes_image.dart';
  5. import 'rss_itunes_owner.dart';
  6. import 'rss_itunes_type.dart';
  7. class RssItunes {
  8. final String author;
  9. final String summary;
  10. final bool explicit;
  11. final String title;
  12. final String subtitle;
  13. final RssItunesOwner owner;
  14. final List<String> keywords;
  15. final RssItunesImage image;
  16. final List<RssItunesCategory> categories;
  17. final RssItunesType type;
  18. final String newFeedUrl;
  19. final bool block;
  20. final bool complete;
  21. RssItunes({
  22. this.author,
  23. this.summary,
  24. this.explicit,
  25. this.title,
  26. this.subtitle,
  27. this.owner,
  28. this.keywords,
  29. this.image,
  30. this.categories,
  31. this.type,
  32. this.newFeedUrl,
  33. this.block,
  34. this.complete,
  35. });
  36. factory RssItunes.parse(XmlElement element) {
  37. if (element == null) {
  38. return null;
  39. }
  40. return RssItunes(
  41. author: findElementOrNull(element, "itunes:author")?.text?.trim(),
  42. summary: findElementOrNull(element, "itunes:summary")?.text?.trim(),
  43. explicit: parseBoolLiteral(element, "itunes:explicit"),
  44. title: findElementOrNull(element, "itunes:title")?.text?.trim(),
  45. subtitle: findElementOrNull(element, "itunes:subtitle")?.text?.trim(),
  46. owner: RssItunesOwner.parse(findElementOrNull(element, "itunes:owner")),
  47. keywords: findElementOrNull(element, "itunes:keywords")
  48. ?.text
  49. ?.split(",")
  50. ?.map((keyword) => keyword.trim())
  51. ?.toList(),
  52. image: RssItunesImage.parse(findElementOrNull(element, "itunes:image")),
  53. categories: findAllDirectElementsOrNull(element, "itunes:category")
  54. .map((ele) => RssItunesCategory.parse(ele))
  55. .toList(),
  56. type: newRssItunesType(findElementOrNull(element, "itunes:type")),
  57. newFeedUrl:
  58. findElementOrNull(element, "itunes:new-feed-url")?.text?.trim(),
  59. block: parseBoolLiteral(element, "itunes:block"),
  60. complete: parseBoolLiteral(element, "itunes:complete"),
  61. );
  62. }
  63. }