diff --git a/README.md b/README.md index 0e83d16..715442d 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,8 @@ import 'package:webfeed/webfeed.dart'; To parse string into `RssFeed` object use: ``` -var rssFeed = new RssFeed.parse(xmlString); // for parsing RSS feed -var atomFeed = new AtomFeed.parse(xmlString); // for parsing Atom feed +var rssFeed = RssFeed.parse(xmlString); // for parsing RSS feed +var atomFeed = AtomFeed.parse(xmlString); // for parsing Atom feed ``` ### Preview diff --git a/analysis_options.yaml b/analysis_options.yaml index 0323d68..2c9d809 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,7 +1,4 @@ analyzer: - language: - enablePreviewDart2: true - strong-mode: true errors: unused_import: error unused_local_variable: error @@ -35,3 +32,4 @@ linter: - prefer_typing_uninitialized_variables - slash_for_doc_comments - type_init_formals + - unnecessary_new diff --git a/lib/domain/atom_feed.dart b/lib/domain/atom_feed.dart index 59a607a..06d1b2c 100644 --- a/lib/domain/atom_feed.dart +++ b/lib/domain/atom_feed.dart @@ -45,7 +45,7 @@ class AtomFeed { try { feedElement = document.findElements("feed").first; } on StateError { - throw new ArgumentError("feed not found"); + throw ArgumentError("feed not found"); } return AtomFeed( diff --git a/lib/domain/atom_generator.dart b/lib/domain/atom_generator.dart index 7fd8579..14eb70d 100644 --- a/lib/domain/atom_generator.dart +++ b/lib/domain/atom_generator.dart @@ -14,6 +14,6 @@ class AtomGenerator { var uri = element.getAttribute("uri"); var version = element.getAttribute("version"); var value = element.text; - return new AtomGenerator(uri, version, value); + return AtomGenerator(uri, version, value); } } diff --git a/lib/domain/media/category.dart b/lib/domain/media/category.dart index 4796cd7..9029738 100644 --- a/lib/domain/media/category.dart +++ b/lib/domain/media/category.dart @@ -15,7 +15,7 @@ class Category { if (element == null) { return null; } - return new Category( + return Category( scheme: element.getAttribute("scheme"), label: element.getAttribute("label"), value: element.text, diff --git a/lib/domain/media/community.dart b/lib/domain/media/community.dart index 8be70b9..6f1c685 100644 --- a/lib/domain/media/community.dart +++ b/lib/domain/media/community.dart @@ -19,14 +19,14 @@ class Community { if (element == null) { return null; } - return new Community( - starRating: new StarRating.parse( + return Community( + starRating: StarRating.parse( findElementOrNull(element, "media:starRating"), ), - statistics: new Statistics.parse( + statistics: Statistics.parse( findElementOrNull(element, "media:statistics"), ), - tags: new Tags.parse( + tags: Tags.parse( findElementOrNull(element, "media:tags"), ), ); diff --git a/lib/domain/media/content.dart b/lib/domain/media/content.dart index 3a4ebaa..e580e5f 100644 --- a/lib/domain/media/content.dart +++ b/lib/domain/media/content.dart @@ -34,7 +34,7 @@ class Content { }); factory Content.parse(XmlElement element) { - return new Content( + return Content( url: element.getAttribute("url"), type: element.getAttribute("type"), fileSize: int.tryParse(element.getAttribute("fileSize") ?? "0"), diff --git a/lib/domain/media/copyright.dart b/lib/domain/media/copyright.dart index 1cad059..f4b5b8b 100644 --- a/lib/domain/media/copyright.dart +++ b/lib/domain/media/copyright.dart @@ -13,7 +13,7 @@ class Copyright { if (element == null) { return null; } - return new Copyright( + return Copyright( url: element.getAttribute("url"), value: element.text, ); diff --git a/lib/domain/media/credit.dart b/lib/domain/media/credit.dart index 70a5e50..212dac1 100644 --- a/lib/domain/media/credit.dart +++ b/lib/domain/media/credit.dart @@ -12,7 +12,7 @@ class Credit { }); factory Credit.parse(XmlElement element) { - return new Credit( + return Credit( role: element.getAttribute("role"), scheme: element.getAttribute("scheme"), value: element.text, diff --git a/lib/domain/media/description.dart b/lib/domain/media/description.dart index ba6f0e0..17bb1cb 100644 --- a/lib/domain/media/description.dart +++ b/lib/domain/media/description.dart @@ -13,7 +13,7 @@ class Description { if (element == null) { return null; } - return new Description( + return Description( type: element.getAttribute("type"), value: element.text, ); diff --git a/lib/domain/media/embed.dart b/lib/domain/media/embed.dart index 1cca476..6fc84ea 100644 --- a/lib/domain/media/embed.dart +++ b/lib/domain/media/embed.dart @@ -18,12 +18,12 @@ class Embed { if (element == null) { return null; } - return new Embed( + return Embed( url: element.getAttribute("url"), width: int.tryParse(element.getAttribute("width") ?? "0"), height: int.tryParse(element.getAttribute("height") ?? "0"), params: element.findElements("media:param").map((e) { - return new Param.parse(e); + return Param.parse(e); }).toList(), ); } diff --git a/lib/domain/media/group.dart b/lib/domain/media/group.dart index 39e4153..2be5efd 100644 --- a/lib/domain/media/group.dart +++ b/lib/domain/media/group.dart @@ -22,17 +22,17 @@ class Group { if (element == null) { return null; } - return new Group( + return Group( contents: element.findElements("media:content").map((e) { - return new Content.parse(e); + return Content.parse(e); }).toList(), credits: element.findElements("media:credit").map((e) { - return new Credit.parse(e); + return Credit.parse(e); }).toList(), - category: new Category.parse( + category: Category.parse( findElementOrNull(element, "media:category"), ), - rating: new Rating.parse( + rating: Rating.parse( findElementOrNull(element, "media:rating"), ), ); diff --git a/lib/domain/media/hash.dart b/lib/domain/media/hash.dart index 72ce859..01ad1c3 100644 --- a/lib/domain/media/hash.dart +++ b/lib/domain/media/hash.dart @@ -13,7 +13,7 @@ class Hash { if (element == null) { return null; } - return new Hash( + return Hash( algo: element.getAttribute("algo"), value: element.text, ); diff --git a/lib/domain/media/license.dart b/lib/domain/media/license.dart index c52a8c6..75db98e 100644 --- a/lib/domain/media/license.dart +++ b/lib/domain/media/license.dart @@ -15,7 +15,7 @@ class License { if (element == null) { return null; } - return new License( + return License( type: element.getAttribute("type"), href: element.getAttribute("href"), value: element.text, diff --git a/lib/domain/media/media.dart b/lib/domain/media/media.dart index 39915b3..fc37773 100644 --- a/lib/domain/media/media.dart +++ b/lib/domain/media/media.dart @@ -78,48 +78,48 @@ class Media { }); factory Media.parse(XmlElement element) { - return new Media( - group: new Group.parse( + return Media( + group: Group.parse( findElementOrNull(element, "media:group"), ), contents: element.findElements("media:content").map((e) { - return new Content.parse(e); + return Content.parse(e); }).toList(), credits: element.findElements("media:credit").map((e) { - return new Credit.parse(e); + return Credit.parse(e); }).toList(), - category: new Category.parse( + category: Category.parse( findElementOrNull(element, "media:category"), ), - rating: new Rating.parse( + rating: Rating.parse( findElementOrNull(element, "media:rating"), ), - title: new Title.parse( + title: Title.parse( findElementOrNull(element, "media:title"), ), - description: new Description.parse( + description: Description.parse( findElementOrNull(element, "media:description"), ), keywords: findElementOrNull(element, "media:keywords")?.text, thumbnails: element.findElements("media:thumbnail").map((e) { - return new Thumbnail.parse(e); + return Thumbnail.parse(e); }).toList(), - hash: new Hash.parse( + hash: Hash.parse( findElementOrNull(element, "media:hash"), ), - player: new Player.parse( + player: Player.parse( findElementOrNull(element, "media:player"), ), - copyright: new Copyright.parse( + copyright: Copyright.parse( findElementOrNull(element, "media:copyright"), ), - text: new Text.parse( + text: Text.parse( findElementOrNull(element, "media:text"), ), - restriction: new Restriction.parse( + restriction: Restriction.parse( findElementOrNull(element, "media:restriction"), ), - community: new Community.parse( + community: Community.parse( findElementOrNull(element, "media:community"), ), comments: findElementOrNull(element, "media:comments") @@ -128,7 +128,7 @@ class Media { return e.text; })?.toList() ?? [], - embed: new Embed.parse( + embed: Embed.parse( findElementOrNull(element, "media:embed"), ), responses: findElementOrNull(element, "media:responses") @@ -143,25 +143,25 @@ class Media { return e.text; })?.toList() ?? [], - status: new Status.parse( + status: Status.parse( findElementOrNull(element, "media:status"), ), prices: element.findElements("media:price").map((e) { - return new Price.parse(e); + return Price.parse(e); }).toList(), - license: new License.parse( + license: License.parse( findElementOrNull(element, "media:license"), ), - peerLink: new PeerLink.parse( + peerLink: PeerLink.parse( findElementOrNull(element, "media:peerLink"), ), - rights: new Rights.parse( + rights: Rights.parse( findElementOrNull(element, "media:rights"), ), scenes: findElementOrNull(element, "media:scenes") ?.findElements("media:scene") ?.map((e) { - return new Scene.parse(e); + return Scene.parse(e); })?.toList() ?? [], ); diff --git a/lib/domain/media/param.dart b/lib/domain/media/param.dart index 175e6b8..f6299c8 100644 --- a/lib/domain/media/param.dart +++ b/lib/domain/media/param.dart @@ -13,7 +13,7 @@ class Param { if (element == null) { return null; } - return new Param( + return Param( name: element.getAttribute("name"), value: element.text, ); diff --git a/lib/domain/media/peer_link.dart b/lib/domain/media/peer_link.dart index 6c51a17..dd06d90 100644 --- a/lib/domain/media/peer_link.dart +++ b/lib/domain/media/peer_link.dart @@ -15,7 +15,7 @@ class PeerLink { if (element == null) { return null; } - return new PeerLink( + return PeerLink( type: element.getAttribute("type"), href: element.getAttribute("href"), value: element.text, diff --git a/lib/domain/media/player.dart b/lib/domain/media/player.dart index 23d5e7a..14b2a54 100644 --- a/lib/domain/media/player.dart +++ b/lib/domain/media/player.dart @@ -17,7 +17,7 @@ class Player { if (element == null) { return null; } - return new Player( + return Player( url: element.getAttribute("url"), width: int.tryParse(element.getAttribute("width") ?? "0"), height: int.tryParse(element.getAttribute("height") ?? "0"), diff --git a/lib/domain/media/price.dart b/lib/domain/media/price.dart index 6da075b..6b930ce 100644 --- a/lib/domain/media/price.dart +++ b/lib/domain/media/price.dart @@ -14,7 +14,7 @@ class Price { }); factory Price.parse(XmlElement element) { - return new Price( + return Price( price: double.tryParse(element.getAttribute("price") ?? "0"), type: element.getAttribute("type"), info: element.getAttribute("info"), diff --git a/lib/domain/media/rating.dart b/lib/domain/media/rating.dart index 77c2b12..5a53f88 100644 --- a/lib/domain/media/rating.dart +++ b/lib/domain/media/rating.dart @@ -13,7 +13,7 @@ class Rating { if (element == null) { return null; } - return new Rating( + return Rating( scheme: element.getAttribute("scheme"), value: element.text, ); diff --git a/lib/domain/media/restriction.dart b/lib/domain/media/restriction.dart index 4aa56bd..59a5339 100644 --- a/lib/domain/media/restriction.dart +++ b/lib/domain/media/restriction.dart @@ -15,7 +15,7 @@ class Restriction { if (element == null) { return null; } - return new Restriction( + return Restriction( relationship: element.getAttribute("relationship"), type: element.getAttribute("type"), value: element.text, diff --git a/lib/domain/media/rights.dart b/lib/domain/media/rights.dart index eb00d4d..38feed3 100644 --- a/lib/domain/media/rights.dart +++ b/lib/domain/media/rights.dart @@ -11,7 +11,7 @@ class Rights { if (element == null) { return null; } - return new Rights( + return Rights( status: element.getAttribute("status"), ); } diff --git a/lib/domain/media/scene.dart b/lib/domain/media/scene.dart index f032e1c..1336dc9 100644 --- a/lib/domain/media/scene.dart +++ b/lib/domain/media/scene.dart @@ -18,7 +18,7 @@ class Scene { if (element == null) { return null; } - return new Scene( + return Scene( title: findElementOrNull(element, "sceneTitle")?.text, description: findElementOrNull(element, "sceneDescription")?.text, startTime: findElementOrNull(element, "sceneStartTime")?.text, diff --git a/lib/domain/media/star_rating.dart b/lib/domain/media/star_rating.dart index ae4c400..9fc456b 100644 --- a/lib/domain/media/star_rating.dart +++ b/lib/domain/media/star_rating.dart @@ -14,7 +14,7 @@ class StarRating { }); factory StarRating.parse(XmlElement element) { - return new StarRating( + return StarRating( average: double.tryParse(element.getAttribute("average") ?? "0"), count: int.tryParse(element.getAttribute("count") ?? "0"), min: int.tryParse(element.getAttribute("min") ?? "0"), diff --git a/lib/domain/media/statistics.dart b/lib/domain/media/statistics.dart index d93461f..d30b025 100644 --- a/lib/domain/media/statistics.dart +++ b/lib/domain/media/statistics.dart @@ -10,7 +10,7 @@ class Statistics { }); factory Statistics.parse(XmlElement element) { - return new Statistics( + return Statistics( views: int.tryParse(element.getAttribute("views") ?? "0"), favorites: int.tryParse(element.getAttribute("favorites") ?? "0"), ); diff --git a/lib/domain/media/status.dart b/lib/domain/media/status.dart index 3071a09..17200ac 100644 --- a/lib/domain/media/status.dart +++ b/lib/domain/media/status.dart @@ -13,7 +13,7 @@ class Status { if (element == null) { return null; } - return new Status( + return Status( state: element.getAttribute("state"), reason: element.getAttribute("reason"), ); diff --git a/lib/domain/media/tags.dart b/lib/domain/media/tags.dart index c7001a7..3617a0a 100644 --- a/lib/domain/media/tags.dart +++ b/lib/domain/media/tags.dart @@ -13,7 +13,7 @@ class Tags { if (element == null) { return null; } - return new Tags( + return Tags( tags: element.text, weight: int.tryParse(element.getAttribute("weight") ?? "1"), ); diff --git a/lib/domain/media/text.dart b/lib/domain/media/text.dart index 1ff886b..702e934 100644 --- a/lib/domain/media/text.dart +++ b/lib/domain/media/text.dart @@ -19,7 +19,7 @@ class Text { if (element == null) { return null; } - return new Text( + return Text( type: element.getAttribute("type"), lang: element.getAttribute("lang"), start: element.getAttribute("start"), diff --git a/lib/domain/media/thumbnail.dart b/lib/domain/media/thumbnail.dart index 8adce3b..0c3f31c 100644 --- a/lib/domain/media/thumbnail.dart +++ b/lib/domain/media/thumbnail.dart @@ -14,7 +14,7 @@ class Thumbnail { }); factory Thumbnail.parse(XmlElement element) { - return new Thumbnail( + return Thumbnail( url: element.getAttribute("url"), width: element.getAttribute("width"), height: element.getAttribute("height"), diff --git a/lib/domain/media/title.dart b/lib/domain/media/title.dart index 8c875a6..49482d6 100644 --- a/lib/domain/media/title.dart +++ b/lib/domain/media/title.dart @@ -13,7 +13,7 @@ class Title { if (element == null) { return null; } - return new Title( + return Title( type: element.getAttribute("type"), value: element.text, ); diff --git a/lib/domain/rss_content.dart b/lib/domain/rss_content.dart index ded57bc..5dacce1 100644 --- a/lib/domain/rss_content.dart +++ b/lib/domain/rss_content.dart @@ -1,6 +1,6 @@ import 'package:xml/xml.dart'; -final _imagesRegExp = new RegExp( +final _imagesRegExp = RegExp( "]+)(?:'|\")", multiLine: true, caseSensitive: false, diff --git a/test/atom_test.dart b/test/atom_test.dart index 70b6b0f..f3b9c12 100644 --- a/test/atom_test.dart +++ b/test/atom_test.dart @@ -6,18 +6,18 @@ import 'package:webfeed/webfeed.dart'; void main() { test("parse Invalid.xml", () { - var xmlString = new File("test/xml/Invalid.xml").readAsStringSync(); + var xmlString = File("test/xml/Invalid.xml").readAsStringSync(); try { - new AtomFeed.parse(xmlString); + AtomFeed.parse(xmlString); fail("Should throw Argument Error"); } on ArgumentError {} }); test("parse Atom.xml", () { - var xmlString = new File("test/xml/Atom.xml").readAsStringSync(); + var xmlString = File("test/xml/Atom.xml").readAsStringSync(); - var feed = new AtomFeed.parse(xmlString); + var feed = AtomFeed.parse(xmlString); expect(feed.id, "foo-bar-id"); expect(feed.title, "Foo bar news"); @@ -89,9 +89,9 @@ void main() { expect(item.rights, "This is rights 1"); }); test("parse Atom-Media.xml", () { - var xmlString = new File("test/xml/Atom-Media.xml").readAsStringSync(); + var xmlString = File("test/xml/Atom-Media.xml").readAsStringSync(); - var feed = new AtomFeed.parse(xmlString); + var feed = AtomFeed.parse(xmlString); expect(feed.id, "foo-bar-id"); expect(feed.title, "Foo bar news"); expect(feed.updated, DateTime.utc(2018, 4, 6, 13, 2, 46)); diff --git a/test/rss_test.dart b/test/rss_test.dart index b97559e..16fc91e 100644 --- a/test/rss_test.dart +++ b/test/rss_test.dart @@ -8,17 +8,17 @@ import 'package:webfeed/webfeed.dart'; void main() { test("parse Invalid.xml", () { - var xmlString = new File("test/xml/Invalid.xml").readAsStringSync(); + var xmlString = File("test/xml/Invalid.xml").readAsStringSync(); try { - new RssFeed.parse(xmlString); + RssFeed.parse(xmlString); fail("Should throw Argument Error"); } on ArgumentError {} }); test("parse RSS.xml", () { - var xmlString = new File("test/xml/RSS.xml").readAsStringSync(); + var xmlString = File("test/xml/RSS.xml").readAsStringSync(); - var feed = new RssFeed.parse(xmlString); + var feed = RssFeed.parse(xmlString); expect(feed.title, "News - Foo bar News"); expect(feed.description, @@ -90,9 +90,9 @@ void main() { feed.items.first.content.images.first, "https://test.com/image_link"); }); test("parse RSS-Media.xml", () { - var xmlString = new File("test/xml/RSS-Media.xml").readAsStringSync(); + var xmlString = File("test/xml/RSS-Media.xml").readAsStringSync(); - var feed = new RssFeed.parse(xmlString); + var feed = RssFeed.parse(xmlString); expect(feed.title, "Song Site"); expect( feed.description, "Media RSS example with new fields added in v1.5.0");