import '../util/helpers.dart'; import 'package:xml/xml.dart'; //import 'package:webfeed/util/helpers.dart'; import 'rss_itunes_category.dart'; import 'rss_itunes_image.dart'; import 'rss_itunes_owner.dart'; import 'rss_itunes_type.dart'; class RssItunes { final String author; final String summary; final bool explicit; final String title; final String subtitle; final RssItunesOwner owner; final List keywords; final RssItunesImage image; final List categories; final RssItunesType type; final String newFeedUrl; final bool block; final bool complete; RssItunes({ this.author, this.summary, this.explicit, this.title, this.subtitle, this.owner, this.keywords, this.image, this.categories, this.type, this.newFeedUrl, this.block, this.complete, }); factory RssItunes.parse(XmlElement element) { if (element == null) { return null; } return RssItunes( author: findElementOrNull(element, "itunes:author")?.text?.trim(), summary: findElementOrNull(element, "itunes:summary")?.text?.trim(), explicit: parseBoolLiteral(element, "itunes:explicit"), title: findElementOrNull(element, "itunes:title")?.text?.trim(), // subtitle: findElementOrNull(element, "itunes:subtitle")?.text?.trim(), //owner: RssItunesOwner.parse(findElementOrNull(element, "itunes:owner")), // keywords: findElementOrNull(element, "itunes:keywords") // ?.text // ?.split(",") // ?.map((keyword) => keyword.trim()) // ?.toList(), image: RssItunesImage.parse(findElementOrNull(element, "itunes:image")), // categories: findAllDirectElementsOrNull(element, "itunes:category") // .map((ele) => RssItunesCategory.parse(ele)) // .toList(), // type: newRssItunesType(findElementOrNull(element, "itunes:type")), // newFeedUrl: // findElementOrNull(element, "itunes:new-feed-url")?.text?.trim(), // block: parseBoolLiteral(element, "itunes:block"), // complete: parseBoolLiteral(element, "itunes:complete"), ); } }