From e28da1da149a4012d8df015dbb9f987d1ba1d6fa Mon Sep 17 00:00:00 2001 From: N Date: Tue, 16 Mar 2021 16:46:05 -0700 Subject: [PATCH 1/2] Modified to add support for YouTube channel feed --- lib/domain/media/group.dart | 38 +++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/lib/domain/media/group.dart b/lib/domain/media/group.dart index 8f82f7b..9206e25 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 List contents; - final List credits; - final Category category; - final Rating rating; + 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(), From d89ba3581a47d2d7eac6b3d652b47694a820bbae Mon Sep 17 00:00:00 2001 From: N Date: Tue, 16 Mar 2021 16:57:05 -0700 Subject: [PATCH 2/2] Update group.dart --- lib/domain/media/group.dart | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/domain/media/group.dart b/lib/domain/media/group.dart index 9206e25..f447754 100644 --- a/lib/domain/media/group.dart +++ b/lib/domain/media/group.dart @@ -10,14 +10,14 @@ 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; + 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,