Browse Source

support media:description for media: enclosures

Andrew Dolgov 7 years ago
parent
commit
5c54e68388

+ 1 - 0
classes/feedenclosure.php

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

+ 3 - 0
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);
 		}
 

+ 3 - 0
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);
 		}
 

+ 5 - 0
css/tt-rss.css

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

+ 11 - 1
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 .= "<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>";
 
 			};
 

+ 6 - 2
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')");
 					}
 				}