summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2012-08-17 23:39:37 +0200
committerJens Georg <mail@jensge.org>2012-08-17 23:45:24 +0200
commitee6cfa50bc7a38c73c4888217b2f1b694e784e22 (patch)
treea2d3638e2e075df1c8387f7bcdedb6dcea695180
parent43804e33438bfc23369eb5eb0ffb3fec781084e7 (diff)
downloadrygel-ee6cfa50bc7a38c73c4888217b2f1b694e784e22.tar.gz
mediathek: Change default sort order
Sort by date, newest first
-rw-r--r--src/plugins/mediathek/rygel-mediathek-rss-container.vala1
-rw-r--r--src/plugins/mediathek/rygel-mediathek-video-item-factory.vala20
2 files changed, 17 insertions, 4 deletions
diff --git a/src/plugins/mediathek/rygel-mediathek-rss-container.vala b/src/plugins/mediathek/rygel-mediathek-rss-container.vala
index e60bd0b4..ff9905a1 100644
--- a/src/plugins/mediathek/rygel-mediathek-rss-container.vala
+++ b/src/plugins/mediathek/rygel-mediathek-rss-container.vala
@@ -38,6 +38,7 @@ public class Rygel.Mediathek.RssContainer : Rygel.SimpleContainer {
this.content_id = id;
this.feed_uri = uri_template.printf (id);
+ this.sort_criteria = "-dc:date,+dc:title";
this.update.begin ();
}
diff --git a/src/plugins/mediathek/rygel-mediathek-video-item-factory.vala b/src/plugins/mediathek/rygel-mediathek-video-item-factory.vala
index 2a4c51aa..bae94329 100644
--- a/src/plugins/mediathek/rygel-mediathek-video-item-factory.vala
+++ b/src/plugins/mediathek/rygel-mediathek-video-item-factory.vala
@@ -45,9 +45,12 @@ internal class Rygel.Mediathek.VideoItemFactory : Object {
throws VideoItemError {
string title;
string playlist_url;
+ string date;
+
this.extract_data_from_xml (xml_item,
out title,
- out playlist_url);
+ out playlist_url,
+ out date);
var resolved_uris = yield playlist_parser.parse (playlist_url);
@@ -60,6 +63,7 @@ internal class Rygel.Mediathek.VideoItemFactory : Object {
item.mime_type = this.playlist_parser.mime_type;
item.author = "ZDF - Second German TV Channel Streams";
+ item.date = date;
if (this.video_format == VIDEO_FORMAT_WMV) {
item.dlna_profile = "WMVMED_FULL";
@@ -101,13 +105,14 @@ internal class Rygel.Mediathek.VideoItemFactory : Object {
}
}
- private bool namespace_ok (Xml.Node* node) {
- return node->ns != null && node->ns->prefix == "media";
+ private bool namespace_ok (Xml.Node* node, string prefix = "media") {
+ return node->ns != null && node->ns->prefix == prefix;
}
private void extract_data_from_xml (Xml.Node *item,
out string title,
- out string playlist_url)
+ out string playlist_url,
+ out string? date)
throws VideoItemError {
var title_node = XMLUtils.get_element (item, "title");
var group = XMLUtils.get_element (item, "group");
@@ -152,5 +157,12 @@ internal class Rygel.Mediathek.VideoItemFactory : Object {
}
title = title_node->get_content ();
+
+ var date_node = XMLUtils.get_element (item, "date");
+ if (date_node != null && this.namespace_ok (date_node, "dc")) {
+ date = date_node->get_content ();
+ } else {
+ date = null;
+ }
}
}