diff --git a/lib/domain/media/group.dart b/lib/domain/media/group.dart index 8f82f7b..f447754 100644 --- a/lib/domain/media/group.dart +++ b/lib/domain/media/group.dart @@ -2,30 +2,52 @@ import 'package:webfeed/domain/media/category.dart'; import 'package:webfeed/domain/media/content.dart'; import 'package:webfeed/domain/media/credit.dart'; import 'package:webfeed/domain/media/rating.dart'; +import 'package:webfeed/domain/media/thumbnail.dart'; +import 'package:webfeed/domain/media/title.dart'; +import 'package:webfeed/domain/media/description.dart'; +import 'package:webfeed/domain/media/community.dart'; import 'package:webfeed/util/xml.dart'; import 'package:xml/xml.dart'; class Group { + final Title title; final List contents; + final List thumbnails; + final Description description; + final Community community; final List credits; final Category category; final Rating rating; Group({ + this.title, this.contents, + this.thumbnails, + this.description, + this.community, this.credits, this.category, this.rating, }); - factory Group.parse(XmlElement element) { - if (element == null) { - return null; - } + static parse(XmlElement? element) { + if (element == null) return null; return Group( + title: Title.parse( + findFirstElement(element, 'media:title'), + ), contents: element.findElements('media:content').map((e) { return Content.parse(e); }).toList(), + thumbnails: element.findElements('media:thumbnail').map((e) { + return Thumbnail.parse(e); + }).toList(), + description: Description.parse( + findFirstElement(element, 'media:description'), + ), + community: Community.parse( + findFirstElement(element, 'media:community'), + ), credits: element.findElements('media:credit').map((e) { return Credit.parse(e); }).toList(),