Browse Source

Merge branch 'MultipleEnclosures' of https://github.com/logmanoriginal/rss-bridge

logmanoriginal 7 years ago
parent
commit
5edba3a1aa
4 changed files with 52 additions and 16 deletions
  1. 8 1
      css/HtmlFormat.css
  2. 9 4
      formats/AtomFormat.php
  3. 16 6
      formats/HtmlFormat.php
  4. 19 5
      formats/MrssFormat.php

+ 8 - 1
css/HtmlFormat.css

@@ -70,12 +70,19 @@ a.backlink, a.backlink:link, a.backlink:visited, a.itemtitle, a.itemtitle:link,
 
 }
 
-section > div.content {
+section > div.content, section > div.attachments {
 
 	padding: 10px;
 
 }
 
+section > div.attachments > li.enclosure {
+
+	list-style-type: circle;
+	list-style-position: inside;
+
+}
+
 section > time, section > p.author {
 
 	color: #888;

+ 9 - 4
formats/AtomFormat.php

@@ -27,9 +27,14 @@ class AtomFormat extends FormatAbstract{
 			$entryTimestamp = isset($item['timestamp']) ? $this->xml_encode(date(DATE_ATOM, $item['timestamp'])) : '';
 			$entryContent = isset($item['content']) ? $this->xml_encode($this->sanitizeHtml($item['content'])) : '';
 
-			$entryEnclosure = '';
-			if(isset($item['enclosure'])){
-				$entryEnclosure = '<link rel="enclosure" href="' . $this->xml_encode($item['enclosure']) . '"/>';
+			$entryEnclosures = '';
+			if(isset($item['enclosures'])){
+				foreach($item['enclosures'] as $enclosure){
+					$entryEnclosures .= '<link rel="enclosure" href="'
+					. $this->xml_encode($enclosure)
+					. '"/>'
+					. PHP_EOL;
+				}
 			}
 
 			$entries .= <<<EOD
@@ -43,7 +48,7 @@ class AtomFormat extends FormatAbstract{
 		<id>{$entryUri}</id>
 		<updated>{$entryTimestamp}</updated>
 		<content type="html">{$entryContent}</content>
-		{$entryEnclosure}
+		{$entryEnclosures}
 	</entry>
 
 EOD;

+ 16 - 6
formats/HtmlFormat.php

@@ -30,11 +30,21 @@ class HtmlFormat extends FormatAbstract {
 				. '</div>';
 			}
 
-			$entryEnclosure = '';
-			if(isset($item['enclosure'])){
-				$entryEnclosure = '<div class="enclosure"><a href="'
-				. $this->sanitizeHtml($item['enclosure'])
-				. '">enclosure</a><div>';
+			$entryEnclosures = '';
+			if(isset($item['enclosures'])){
+				$entryEnclosures = '<div class="attachments"><p>Attachments:</p>';
+
+				foreach($item['enclosures'] as $enclosure){
+					$url = $this->sanitizeHtml($enclosure);
+
+					$entryEnclosures .= '<li class="enclosure"><a href="'
+					. $url
+					. '">'
+					. substr($url, strrpos($url, '/') + 1)
+					. '</a></li>';
+				}
+
+				$entryEnclosures .= '</div>';
 			}
 
 			$entries .= <<<EOD
@@ -44,7 +54,7 @@ class HtmlFormat extends FormatAbstract {
 	{$entryTimestamp}
 	{$entryAuthor}
 	{$entryContent}
-	{$entryEnclosure}
+	{$entryEnclosures}
 </section>
 
 EOD;

+ 19 - 5
formats/MrssFormat.php

@@ -31,9 +31,23 @@ class MrssFormat extends FormatAbstract {
 			$itemTimestamp = isset($item['timestamp']) ? $this->xml_encode(date(DATE_RFC2822, $item['timestamp'])) : '';
 			$itemContent = isset($item['content']) ? $this->xml_encode($this->sanitizeHtml($item['content'])) : '';
 
-			$entryEnclosure = '';
-			if(isset($item['enclosure'])){
-				$entryEnclosure = '<enclosure url="' . $this->xml_encode($item['enclosure']) . '"/>';
+			$entryEnclosuresWarning = '';
+			$entryEnclosures = '';
+			if(isset($item['enclosures'])){
+				$entryEnclosures .= '<enclosure url="'
+				. $this->xml_encode($item['enclosures'][0])
+				. '"/>';
+
+				if(count($item['enclosures']) > 1){
+					$entryEnclosures .= PHP_EOL;
+					$entryEnclosuresWarning = '&lt;br&gt;Warning:
+Some media files might not be shown to you. Consider using the ATOM format instead!';
+					foreach($item['enclosures'] as $enclosure){
+						$entryEnclosures .= '<atom:link rel="enclosure" href="'
+						. $enclosure . '" />'
+						. PHP_EOL;
+					}
+				}
 			}
 
 			$items .= <<<EOD
@@ -43,9 +57,9 @@ class MrssFormat extends FormatAbstract {
 		<link>{$itemUri}</link>
 		<guid isPermaLink="true">{$itemUri}</guid>
 		<pubDate>{$itemTimestamp}</pubDate>
-		<description>{$itemContent}</description>
+		<description>{$itemContent}{$entryEnclosuresWarning}</description>
 		<author>{$itemAuthor}</author>
-		{$entryEnclosure}
+		{$entryEnclosures}
 	</item>
 
 EOD;