Przeglądaj źródła

Fix enclosures in RSS output (#5540)

* Fix enclosures in RSS output
fix https://github.com/FreshRSS/FreshRSS/issues/5539

* another iterable

* Forgotten iterable
Alexandre Alapetite 2 lat temu
rodzic
commit
1f05c92376
2 zmienionych plików z 3 dodań i 3 usunięć
  1. 2 2
      app/Models/Entry.php
  2. 1 1
      app/views/index/rss.phtml

+ 2 - 2
app/Models/Entry.php

@@ -235,12 +235,12 @@ HTML;
 	/** @return Traversable<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> */
 	public function enclosures(bool $searchBodyImages = false): Traversable {
 		$attributeEnclosures = $this->attributes('enclosures');
-		if (is_array($attributeEnclosures)) {
+		if (is_iterable($attributeEnclosures)) {
 			// FreshRSS 1.20.1+: The enclosures are saved as attributes
 			yield from $attributeEnclosures;
 		}
 		try {
-			$searchEnclosures = !is_array($attributeEnclosures) && (strpos($this->content, '<p class="enclosure-content') !== false);
+			$searchEnclosures = !is_iterable($attributeEnclosures) && (strpos($this->content, '<p class="enclosure-content') !== false);
 			$searchBodyImages &= (stripos($this->content, '<img') !== false);
 			$xpath = null;
 			if ($searchEnclosures || $searchBodyImages) {

+ 1 - 1
app/views/index/rss.phtml

@@ -48,7 +48,7 @@ foreach ($this->entries as $item) {
 						. '" />', "\n";
 				}
 				$enclosures = $item->enclosures(false);
-				if (is_array($enclosures)) {
+				if (is_iterable($enclosures)) {
 					foreach ($enclosures as $enclosure) {
 						// https://www.rssboard.org/media-rss
 						echo "\t\t\t", '<media:content url="' . $enclosure['url']