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 $type;
public $length;
public $title;
}
?>

View File

@ -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);
}

View File

@ -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);
}

View File

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

View File

@ -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 .= "<p><a target=\"_blank\"
href=\"".htmlspecialchars($entry["url"])."\"
>" .htmlspecialchars($entry["url"]) . "</a></p>";
}
if ($entry['title']) {
$rv.= "<div class=\"enclosure_title\">${entry['title']}</div>";
}
}
}
@ -3836,7 +3841,12 @@
"<option value=''>" . __('Attachments')."</option>";
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)) {
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')");
}
}