From 5c54e6838870498134bbfb2994c25d2140b43bad Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 5 Aug 2013 12:26:09 +0400 Subject: [PATCH] support media:description for media: enclosures --- classes/feedenclosure.php | 1 + classes/feeditem/atom.php | 3 +++ classes/feeditem/rss.php | 3 +++ css/tt-rss.css | 5 +++++ include/functions.php | 12 +++++++++++- include/rssfuncs.php | 8 ++++++-- 6 files changed, 29 insertions(+), 3 deletions(-) diff --git a/classes/feedenclosure.php b/classes/feedenclosure.php index d610dd7c8..b57100b06 100644 --- a/classes/feedenclosure.php +++ b/classes/feedenclosure.php @@ -3,5 +3,6 @@ class FeedEnclosure { public $link; public $type; public $length; + public $title; } ?> diff --git a/classes/feeditem/atom.php b/classes/feeditem/atom.php index b1251e6d3..b7a228aed 100644 --- a/classes/feeditem/atom.php +++ b/classes/feeditem/atom.php @@ -146,6 +146,9 @@ class FeedItem_Atom extends FeedItem_Common { $enc->link = $enclosure->getAttribute("url"); $enc->length = $enclosure->getAttribute("length"); + $desc = $this->xpath->query("media:description", $enclosure)->item(0); + if ($desc) $enc->title = strip_tags($desc->nodeValue); + array_push($encs, $enc); } diff --git a/classes/feeditem/rss.php b/classes/feeditem/rss.php index 095225a2a..1f59f0612 100644 --- a/classes/feeditem/rss.php +++ b/classes/feeditem/rss.php @@ -121,6 +121,9 @@ class FeedItem_RSS extends FeedItem_Common { $enc->link = $enclosure->getAttribute("url"); $enc->length = $enclosure->getAttribute("length"); + $desc = $this->xpath->query("media:description", $enclosure)->item(0); + if ($desc) $enc->title = strip_tags($desc->nodeValue); + array_push($encs, $enc); } diff --git a/css/tt-rss.css b/css/tt-rss.css index 3392c3c7a..9e500a759 100644 --- a/css/tt-rss.css +++ b/css/tt-rss.css @@ -1177,3 +1177,8 @@ span.highlight { background-color : #ffff00; color : #cc90cc; } + +div.enclosure_title { + +} + diff --git a/include/functions.php b/include/functions.php index 56361472e..6bc52e9d9 100644 --- a/include/functions.php +++ b/include/functions.php @@ -3776,6 +3776,7 @@ $url = $line["content_url"]; $ctype = $line["content_type"]; + $title = $line["title"]; if (!$ctype) $ctype = __("unknown type"); @@ -3798,6 +3799,7 @@ $entry["type"] = $ctype; $entry["filename"] = $filename; $entry["url"] = $url; + $entry["title"] = $title; array_push($entries, $entry); } @@ -3819,7 +3821,10 @@ $rv .= "

" .htmlspecialchars($entry["url"]) . "

"; + } + if ($entry['title']) { + $rv.= "
${entry['title']}
"; } } } @@ -3836,7 +3841,12 @@ ""; foreach ($entries as $entry) { - $rv .= ""; + if ($entry["title"]) + $title = "— " . truncate_string($entry["title"], 30); + else + $title = ""; + + $rv .= ""; }; diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 4b1b30c4b..dbe5c8bc9 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -954,7 +954,7 @@ if (is_array($encs)) { foreach ($encs as $e) { $e_item = array( - $e->link, $e->type, $e->length); + $e->link, $e->type, $e->length, $e->title); array_push($enclosures, $e_item); } } @@ -966,10 +966,14 @@ db_query("BEGIN"); +// debugging +// db_query("DELETE FROM ttrss_enclosures WHERE post_id = '$entry_ref_id'"); + foreach ($enclosures as $enc) { $enc_url = db_escape_string($enc[0]); $enc_type = db_escape_string($enc[1]); $enc_dur = db_escape_string($enc[2]); + $enc_title = db_escape_string($enc[3]); $result = db_query("SELECT id FROM ttrss_enclosures WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'"); @@ -977,7 +981,7 @@ if (db_num_rows($result) == 0) { db_query("INSERT INTO ttrss_enclosures (content_url, content_type, title, duration, post_id) VALUES - ('$enc_url', '$enc_type', '', '$enc_dur', '$entry_ref_id')"); + ('$enc_url', '$enc_type', '$enc_title', '$enc_dur', '$entry_ref_id')"); } }