mirror of
https://github.com/stonega/tsacdop
synced 2025-02-08 07:38:47 +01:00
new file: lib/class/fireside_data.dart modified: lib/episodes/episodedetail.dart modified: lib/home/appbar/addpodcast.dart modified: lib/home/audioplayer.dart modified: lib/local_storage/key_value_storage.dart modified: lib/local_storage/sqflite_localpodcast.dart modified: lib/podcasts/podcastdetail.dart modified: lib/webfeed/domain/atom_feed.dart modified: lib/webfeed/domain/atom_item.dart modified: lib/webfeed/domain/atom_person.dart modified: lib/webfeed/domain/atom_source.dart modified: lib/webfeed/domain/media/community.dart modified: lib/webfeed/domain/media/embed.dart modified: lib/webfeed/domain/media/group.dart modified: lib/webfeed/domain/media/media.dart modified: lib/webfeed/domain/media/scene.dart modified: pubspec.lock modified: pubspec.yaml
170 lines
5.3 KiB
Dart
170 lines
5.3 KiB
Dart
import 'package:tsacdop/webfeed/domain/media/category.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/community.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/content.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/copyright.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/credit.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/description.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/embed.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/group.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/hash.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/license.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/peer_link.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/player.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/price.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/rating.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/restriction.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/rights.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/scene.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/status.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/text.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/thumbnail.dart';
|
|
import 'package:tsacdop/webfeed/domain/media/title.dart';
|
|
import 'package:tsacdop/webfeed/util/helpers.dart';
|
|
import 'package:xml/xml.dart';
|
|
|
|
class Media {
|
|
final Group group;
|
|
final List<Content> contents;
|
|
final List<Credit> credits;
|
|
final Category category;
|
|
final Rating rating;
|
|
final Title title;
|
|
final Description description;
|
|
final String keywords;
|
|
final List<Thumbnail> thumbnails;
|
|
final Hash hash;
|
|
final Player player;
|
|
final Copyright copyright;
|
|
final Text text;
|
|
final Restriction restriction;
|
|
final Community community;
|
|
final List<String> comments;
|
|
final Embed embed;
|
|
final List<String> responses;
|
|
final List<String> backLinks;
|
|
final Status status;
|
|
final List<Price> prices;
|
|
final License license;
|
|
final PeerLink peerLink;
|
|
final Rights rights;
|
|
final List<Scene> scenes;
|
|
|
|
Media({
|
|
this.group,
|
|
this.contents,
|
|
this.credits,
|
|
this.category,
|
|
this.rating,
|
|
this.title,
|
|
this.description,
|
|
this.keywords,
|
|
this.thumbnails,
|
|
this.hash,
|
|
this.player,
|
|
this.copyright,
|
|
this.text,
|
|
this.restriction,
|
|
this.community,
|
|
this.comments,
|
|
this.embed,
|
|
this.responses,
|
|
this.backLinks,
|
|
this.status,
|
|
this.prices,
|
|
this.license,
|
|
this.peerLink,
|
|
this.rights,
|
|
this.scenes,
|
|
});
|
|
|
|
factory Media.parse(XmlElement element) {
|
|
return new Media(
|
|
group: new Group.parse(
|
|
findElementOrNull(element, "media:group"),
|
|
),
|
|
contents: element.findElements("media:content").map((e) {
|
|
return new Content.parse(e);
|
|
}).toList(),
|
|
credits: element.findElements("media:credit").map((e) {
|
|
return new Credit.parse(e);
|
|
}).toList(),
|
|
category: new Category.parse(
|
|
findElementOrNull(element, "media:category"),
|
|
),
|
|
rating: new Rating.parse(
|
|
findElementOrNull(element, "media:rating"),
|
|
),
|
|
title: new Title.parse(
|
|
findElementOrNull(element, "media:title"),
|
|
),
|
|
description: new Description.parse(
|
|
findElementOrNull(element, "media:description"),
|
|
),
|
|
keywords: findElementOrNull(element, "media:keywords")?.text,
|
|
thumbnails: element.findElements("media:thumbnail").map((e) {
|
|
return new Thumbnail.parse(e);
|
|
}).toList(),
|
|
hash: new Hash.parse(
|
|
findElementOrNull(element, "media:hash"),
|
|
),
|
|
player: new Player.parse(
|
|
findElementOrNull(element, "media:player"),
|
|
),
|
|
copyright: new Copyright.parse(
|
|
findElementOrNull(element, "media:copyright"),
|
|
),
|
|
text: new Text.parse(
|
|
findElementOrNull(element, "media:text"),
|
|
),
|
|
restriction: new Restriction.parse(
|
|
findElementOrNull(element, "media:restriction"),
|
|
),
|
|
community: new Community.parse(
|
|
findElementOrNull(element, "media:community"),
|
|
),
|
|
comments: findElementOrNull(element, "media:comments")
|
|
?.findElements("media:comment")
|
|
?.map((e) {
|
|
return e.text;
|
|
})?.toList() ??
|
|
[],
|
|
embed: new Embed.parse(
|
|
findElementOrNull(element, "media:embed"),
|
|
),
|
|
responses: findElementOrNull(element, "media:responses")
|
|
?.findElements("media:response")
|
|
?.map((e) {
|
|
return e.text;
|
|
})?.toList() ??
|
|
[],
|
|
backLinks: findElementOrNull(element, "media:backLinks")
|
|
?.findElements("media:backLink")
|
|
?.map((e) {
|
|
return e.text;
|
|
})?.toList() ??
|
|
[],
|
|
status: new Status.parse(
|
|
findElementOrNull(element, "media:status"),
|
|
),
|
|
prices: element.findElements("media:price").map((e) {
|
|
return new Price.parse(e);
|
|
}).toList(),
|
|
license: new License.parse(
|
|
findElementOrNull(element, "media:license"),
|
|
),
|
|
peerLink: new PeerLink.parse(
|
|
findElementOrNull(element, "media:peerLink"),
|
|
),
|
|
rights: new Rights.parse(
|
|
findElementOrNull(element, "media:rights"),
|
|
),
|
|
scenes: findElementOrNull(element, "media:scenes")
|
|
?.findElements("media:scene")
|
|
?.map((e) {
|
|
return new Scene.parse(e);
|
|
})?.toList() ??
|
|
[],
|
|
);
|
|
}
|
|
}
|