support media:description for media: enclosures

This commit is contained in:
Andrew Dolgov 2013-08-05 12:26:09 +04:00
parent 6bf61bdc63
commit 5c54e68388
6 changed files with 29 additions and 3 deletions

View File

@ -3,5 +3,6 @@ class FeedEnclosure {
public $link; public $link;
public $type; public $type;
public $length; public $length;
public $title;
} }
?> ?>

View File

@ -146,6 +146,9 @@ class FeedItem_Atom extends FeedItem_Common {
$enc->link = $enclosure->getAttribute("url"); $enc->link = $enclosure->getAttribute("url");
$enc->length = $enclosure->getAttribute("length"); $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); array_push($encs, $enc);
} }

View File

@ -121,6 +121,9 @@ class FeedItem_RSS extends FeedItem_Common {
$enc->link = $enclosure->getAttribute("url"); $enc->link = $enclosure->getAttribute("url");
$enc->length = $enclosure->getAttribute("length"); $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); array_push($encs, $enc);
} }

View File

@ -1177,3 +1177,8 @@ span.highlight {
background-color : #ffff00; background-color : #ffff00;
color : #cc90cc; color : #cc90cc;
} }
div.enclosure_title {
}

View File

@ -3776,6 +3776,7 @@
$url = $line["content_url"]; $url = $line["content_url"];
$ctype = $line["content_type"]; $ctype = $line["content_type"];
$title = $line["title"];
if (!$ctype) $ctype = __("unknown type"); if (!$ctype) $ctype = __("unknown type");
@ -3798,6 +3799,7 @@
$entry["type"] = $ctype; $entry["type"] = $ctype;
$entry["filename"] = $filename; $entry["filename"] = $filename;
$entry["url"] = $url; $entry["url"] = $url;
$entry["title"] = $title;
array_push($entries, $entry); array_push($entries, $entry);
} }
@ -3819,7 +3821,10 @@
$rv .= "<p><a target=\"_blank\" $rv .= "<p><a target=\"_blank\"
href=\"".htmlspecialchars($entry["url"])."\" href=\"".htmlspecialchars($entry["url"])."\"
>" .htmlspecialchars($entry["url"]) . "</a></p>"; >" .htmlspecialchars($entry["url"]) . "</a></p>";
}
if ($entry['title']) {
$rv.= "<div class=\"enclosure_title\">${entry['title']}</div>";
} }
} }
} }
@ -3836,7 +3841,12 @@
"<option value=''>" . __('Attachments')."</option>"; "<option value=''>" . __('Attachments')."</option>";
foreach ($entries as $entry) { foreach ($entries as $entry) {
$rv .= "<option value=\"".htmlspecialchars($entry["url"])."\">" . htmlspecialchars($entry["filename"]) . "</option>"; if ($entry["title"])
$title = "&mdash; " . truncate_string($entry["title"], 30);
else
$title = "";
$rv .= "<option value=\"".htmlspecialchars($entry["url"])."\">" . htmlspecialchars($entry["filename"]) . "$title</option>";
}; };

View File

@ -954,7 +954,7 @@
if (is_array($encs)) { if (is_array($encs)) {
foreach ($encs as $e) { foreach ($encs as $e) {
$e_item = array( $e_item = array(
$e->link, $e->type, $e->length); $e->link, $e->type, $e->length, $e->title);
array_push($enclosures, $e_item); array_push($enclosures, $e_item);
} }
} }
@ -966,10 +966,14 @@
db_query("BEGIN"); db_query("BEGIN");
// debugging
// db_query("DELETE FROM ttrss_enclosures WHERE post_id = '$entry_ref_id'");
foreach ($enclosures as $enc) { foreach ($enclosures as $enc) {
$enc_url = db_escape_string($enc[0]); $enc_url = db_escape_string($enc[0]);
$enc_type = db_escape_string($enc[1]); $enc_type = db_escape_string($enc[1]);
$enc_dur = db_escape_string($enc[2]); $enc_dur = db_escape_string($enc[2]);
$enc_title = db_escape_string($enc[3]);
$result = db_query("SELECT id FROM ttrss_enclosures $result = db_query("SELECT id FROM ttrss_enclosures
WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'"); WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'");
@ -977,7 +981,7 @@
if (db_num_rows($result) == 0) { if (db_num_rows($result) == 0) {
db_query("INSERT INTO ttrss_enclosures db_query("INSERT INTO ttrss_enclosures
(content_url, content_type, title, duration, post_id) VALUES (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')");
} }
} }