Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions lib/domain/atom_feed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ class AtomFeed {
}

return AtomFeed(
id: findElementOrNull(feedElement, 'id')?.text,
title: findElementOrNull(feedElement, 'title')?.text,
updated: findElementOrNull(feedElement, 'updated')?.text,
id: findElementOrNull(feedElement, 'id')?.innerText,
title: findElementOrNull(feedElement, 'title')?.innerText,
updated: findElementOrNull(feedElement, 'updated')?.innerText,
items: feedElement
.findElements('entry')
.map((element) => AtomItem.parse(element))
Expand All @@ -73,10 +73,10 @@ class AtomFeed {
.toList(),
generator:
AtomGenerator.parse(findElementOrNull(feedElement, 'generator')),
icon: findElementOrNull(feedElement, 'icon')?.text,
logo: findElementOrNull(feedElement, 'logo')?.text,
rights: findElementOrNull(feedElement, 'rights')?.text,
subtitle: findElementOrNull(feedElement, 'subtitle')?.text,
icon: findElementOrNull(feedElement, 'icon')?.innerText,
logo: findElementOrNull(feedElement, 'logo')?.innerText,
rights: findElementOrNull(feedElement, 'rights')?.innerText,
subtitle: findElementOrNull(feedElement, 'subtitle')?.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/atom_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class AtomGenerator {
}
final uri = element.getAttribute('uri');
final version = element.getAttribute('version');
final value = element.text;
final value = element.innerText;
return AtomGenerator(uri, version, value);
}
}
14 changes: 7 additions & 7 deletions lib/domain/atom_item.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ class AtomItem {

factory AtomItem.parse(XmlElement element) {
return AtomItem(
id: findElementOrNull(element, 'id')?.text,
title: findElementOrNull(element, 'title')?.text,
updated: findElementOrNull(element, 'updated')?.text,
id: findElementOrNull(element, 'id')?.innerText,
title: findElementOrNull(element, 'title')?.innerText,
updated: findElementOrNull(element, 'updated')?.innerText,
authors: element
.findElements('author')
.map((element) => AtomPerson.parse(element))
Expand All @@ -60,10 +60,10 @@ class AtomItem {
.map((element) => AtomPerson.parse(element))
.toList(),
source: AtomSource.parse(findElementOrNull(element, 'source')),
published: findElementOrNull(element, 'published')?.text,
content: findElementOrNull(element, 'content')?.text,
summary: findElementOrNull(element, 'summary')?.text,
rights: findElementOrNull(element, 'rights')?.text,
published: findElementOrNull(element, 'published')?.innerText,
content: findElementOrNull(element, 'content')?.innerText,
summary: findElementOrNull(element, 'summary')?.innerText,
rights: findElementOrNull(element, 'rights')?.innerText,
media: Media.parse(element),
);
}
Expand Down
6 changes: 3 additions & 3 deletions lib/domain/atom_person.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ class AtomPerson {
const AtomPerson(this.name, this.uri, this.email);

factory AtomPerson.parse(XmlElement element) {
final name = findElementOrNull(element, 'name')?.text;
final uri = findElementOrNull(element, 'uri')?.text;
final email = findElementOrNull(element, 'email')?.text;
final name = findElementOrNull(element, 'name')?.innerText;
final uri = findElementOrNull(element, 'uri')?.innerText;
final email = findElementOrNull(element, 'email')?.innerText;
return AtomPerson(name, uri, email);
}
}
6 changes: 3 additions & 3 deletions lib/domain/atom_source.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ class AtomSource {
if (element == null) {
return null;
}
final id = findElementOrNull(element, 'id')?.text;
final title = findElementOrNull(element, 'title')?.text;
final updated = findElementOrNull(element, 'updated')?.text;
final id = findElementOrNull(element, 'id')?.innerText;
final title = findElementOrNull(element, 'title')?.innerText;
final updated = findElementOrNull(element, 'updated')?.innerText;
return AtomSource(id, title, updated);
}
}
32 changes: 16 additions & 16 deletions lib/domain/dublin_core/dublin_core.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,24 +41,24 @@ class DublinCore {
factory DublinCore.parse(XmlElement element) {
final subjects = findAllDirectElementsOrNull(element, 'dc:subject');
return DublinCore(
title: findElementOrNull(element, 'dc:title')?.text,
description: findElementOrNull(element, 'dc:description')?.text,
creator: findElementOrNull(element, 'dc:creator')?.text,
subject: findElementOrNull(element, 'dc:subject')?.text,
title: findElementOrNull(element, 'dc:title')?.innerText,
description: findElementOrNull(element, 'dc:description')?.innerText,
creator: findElementOrNull(element, 'dc:creator')?.innerText,
subject: findElementOrNull(element, 'dc:subject')?.innerText,
subjects: subjects == null
? <String>[]
: subjects.map((subjectElement) => subjectElement.text).toList(),
publisher: findElementOrNull(element, 'dc:publisher')?.text,
contributor: findElementOrNull(element, 'dc:contributor')?.text,
date: findElementOrNull(element, 'dc:date')?.text,
type: findElementOrNull(element, 'dc:type')?.text,
format: findElementOrNull(element, 'dc:format')?.text,
identifier: findElementOrNull(element, 'dc:identifier')?.text,
source: findElementOrNull(element, 'dc:source')?.text,
language: findElementOrNull(element, 'dc:language')?.text,
relation: findElementOrNull(element, 'dc:relation')?.text,
coverage: findElementOrNull(element, 'dc:coverage')?.text,
rights: findElementOrNull(element, 'dc:rights')?.text,
: subjects.map((subjectElement) => subjectElement.innerText).toList(),
publisher: findElementOrNull(element, 'dc:publisher')?.innerText,
contributor: findElementOrNull(element, 'dc:contributor')?.innerText,
date: findElementOrNull(element, 'dc:date')?.innerText,
type: findElementOrNull(element, 'dc:type')?.innerText,
format: findElementOrNull(element, 'dc:format')?.innerText,
identifier: findElementOrNull(element, 'dc:identifier')?.innerText,
source: findElementOrNull(element, 'dc:source')?.innerText,
language: findElementOrNull(element, 'dc:language')?.innerText,
relation: findElementOrNull(element, 'dc:relation')?.innerText,
coverage: findElementOrNull(element, 'dc:coverage')?.innerText,
rights: findElementOrNull(element, 'dc:rights')?.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/category.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class Category {
return Category(
scheme: element.getAttribute('scheme'),
label: element.getAttribute('label'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/copyright.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Copyright {
}
return Copyright(
url: element.getAttribute('url'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/credit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Credit {
return Credit(
role: element.getAttribute('role'),
scheme: element.getAttribute('scheme'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/description.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Description {
}
return Description(
type: element.getAttribute('type'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/hash.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Hash {
}
return Hash(
algo: element.getAttribute('algo'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/license.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class License {
return License(
type: element.getAttribute('type'),
href: element.getAttribute('href'),
value: element.text,
value: element.innerText,
);
}
}
8 changes: 4 additions & 4 deletions lib/domain/media/media.dart
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ class Media {
title: Title.parse(findElementOrNull(element, 'media:title')),
description:
Description.parse(findElementOrNull(element, 'media:description')),
keywords: findElementOrNull(element, 'media:keywords')?.text,
keywords: findElementOrNull(element, 'media:keywords')?.innerText,
thumbnails: element
.findElements('media:thumbnail')
.map((e) => Thumbnail.parse(e))
Expand All @@ -107,18 +107,18 @@ class Media {
community: Community.parse(findElementOrNull(element, 'media:community')),
comments: findElementOrNull(element, 'media:comments')
?.findElements('media:comment')
.map((e) => e.text)
.map((e) => e.innerText)
.toList() ??
<String>[],
embed: Embed.parse(findElementOrNull(element, 'media:embed')),
responses: findElementOrNull(element, 'media:responses')
?.findElements('media:response')
.map((e) => e.text)
.map((e) => e.innerText)
.toList() ??
<String>[],
backLinks: findElementOrNull(element, 'media:backLinks')
?.findElements('media:backLink')
.map((e) => e.text)
.map((e) => e.innerText)
.toList() ??
<String>[],
status: Status.parse(findElementOrNull(element, 'media:status')),
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/media/param.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class Param {
factory Param.parse(XmlElement element) {
return Param(
name: element.getAttribute('name'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/peer_link.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class PeerLink {
return PeerLink(
type: element.getAttribute('type'),
href: element.getAttribute('href'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/player.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class Player {
url: element.getAttribute('url'),
width: int.tryParse(element.getAttribute('width') ?? '0') ?? 0,
height: int.tryParse(element.getAttribute('height') ?? '0') ?? 0,
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/rating.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Rating {
}
return Rating(
scheme: element.getAttribute('scheme'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/restriction.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class Restriction {
return Restriction(
relationship: element.getAttribute('relationship'),
type: element.getAttribute('type'),
value: element.text,
value: element.innerText,
);
}
}
8 changes: 4 additions & 4 deletions lib/domain/media/scene.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ class Scene {

factory Scene.parse(XmlElement element) {
return Scene(
title: findElementOrNull(element, 'sceneTitle')?.text,
description: findElementOrNull(element, 'sceneDescription')?.text,
startTime: findElementOrNull(element, 'sceneStartTime')?.text,
endTime: findElementOrNull(element, 'sceneEndTime')?.text,
title: findElementOrNull(element, 'sceneTitle')?.innerText,
description: findElementOrNull(element, 'sceneDescription')?.innerText,
startTime: findElementOrNull(element, 'sceneStartTime')?.innerText,
endTime: findElementOrNull(element, 'sceneEndTime')?.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/tags.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class Tags {
return null;
}
return Tags(
tags: element.text,
tags: element.innerText,
weight: int.tryParse(element.getAttribute('weight') ?? '1') ?? 1,
);
}
Expand Down
2 changes: 1 addition & 1 deletion lib/domain/media/text.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Text {
lang: element.getAttribute('lang'),
start: element.getAttribute('start'),
end: element.getAttribute('end'),
value: element.text,
value: element.innerText,
);
}
}
2 changes: 1 addition & 1 deletion lib/domain/media/title.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Title {
}
return Title(
type: element.getAttribute('type'),
value: element.text,
value: element.innerText,
);
}
}
16 changes: 15 additions & 1 deletion lib/domain/podcast_index/rss_podcast_index.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
import 'package:dart_rss/domain/podcast_index/rss_podcast_index_funding.dart';
import 'package:dart_rss/domain/podcast_index/rss_podcast_index_locked.dart';
import 'package:dart_rss/domain/podcast_index/rss_podcast_index_person.dart';
import 'package:dart_rss/util/helpers.dart';
import 'package:xml/xml.dart';

/// This is the root class for the (Podcasting 2.0 namespace)[https://github.com/Podcastindex-org/podcast-namespace/blob/main/podcasting2.0.md].
class RssPodcastIndex {
/// List of funding tags.
final List<RssPodcastIndexFunding?>? funding;

/// List of persons associated with the podcast.
final List<RssPodcastIndexPerson?>? persons;

/// The purpose is to tell other podcast hosting platforms whether they are allowed to import this feed.
final RssPodcastIndexLocked? locked;

RssPodcastIndex({
this.funding,
this.persons,
this.locked,
});

Expand All @@ -21,7 +30,12 @@ class RssPodcastIndex {
funding: element.findElements('podcast:funding').map((e) {
return RssPodcastIndexFunding.parse(e);
}).toList(),
locked: RssPodcastIndexLocked.parse(findElementOrNull(element, 'podcast:locked')),
persons: element.findElements('podcast:person').map((e) {
return RssPodcastIndexPerson.parse(e);
}).toList(),
locked: RssPodcastIndexLocked.parse(
findElementOrNull(element, 'podcast:locked'),
),
);
}
}
7 changes: 7 additions & 0 deletions lib/domain/podcast_index/rss_podcast_index_chapters.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
import 'package:xml/xml.dart';

/// Episodes that support the Podcasting 2.0 namespace can have a list of
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In keeping with Dart Doc practices, please add a blank line between the first sentence and whatever follows. And please adjust any other Dart Docs in this PR, accordingly.

/// (chapters)[https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#chapters].
/// This class represents a link to a chapters file. Chapters are stored separately
/// to the RSS feed to
class RssPodcastIndexChapters {
/// The URL pointing to a chapters file.
final String? url;

/// The mime type of the file. Typically, this is json.
final String? type;

RssPodcastIndexChapters({
Expand Down
7 changes: 6 additions & 1 deletion lib/domain/podcast_index/rss_podcast_index_funding.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import 'package:xml/xml.dart';

/// This class represents a funding link which consists of a URL and displayable value. Funding
/// tags allow podcasters to point end users to a page where they can support their show.
class RssPodcastIndexFunding {
/// The URL of the page where a user can support the show.
final String? url;

/// The value to display.
final String? value;

RssPodcastIndexFunding({
Expand All @@ -14,7 +19,7 @@ class RssPodcastIndexFunding {

return RssPodcastIndexFunding(
url: element.getAttribute('url'),
value: element.text.trim(),
value: element.innerText.trim(),
);
}
}
6 changes: 5 additions & 1 deletion lib/domain/podcast_index/rss_podcast_index_locked.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import 'package:xml/xml.dart';

class RssPodcastIndexLocked {
/// The owner attribute is an email address that can be used to verify
/// ownership of this feed during move and import operations.
final String? owner;

/// Are we locked?
final bool? locked;

RssPodcastIndexLocked({
Expand All @@ -14,7 +18,7 @@ class RssPodcastIndexLocked {

return RssPodcastIndexLocked(
owner: element.getAttribute('owner'),
locked: element.text == 'yes' ? true : false,
locked: element.innerText == 'yes' ? true : false,
);
}
}
Loading