aboutsummaryrefslogtreecommitdiff
path: root/app/Models/Entry.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Models/Entry.php')
-rw-r--r--app/Models/Entry.php20
1 files changed, 10 insertions, 10 deletions
diff --git a/app/Models/Entry.php b/app/Models/Entry.php
index 36ed11b40..c32506319 100644
--- a/app/Models/Entry.php
+++ b/app/Models/Entry.php
@@ -52,12 +52,10 @@ class FreshRSS_Entry extends Minz_Model {
$this->_guid($guid);
}
- /** @param array{'id'?:string,'id_feed'?:int,'guid'?:string,'title'?:string,'author'?:string,'content'?:string,'link'?:string,'date'?:int|string,'lastSeen'?:int,
- * 'hash'?:string,'is_read'?:bool|int,'is_favorite'?:bool|int,'tags'?:string|array<string>,'attributes'?:?string,'thumbnail'?:string,'timestamp'?:string} $dao */
+ /** @param array{id?:string,id_feed?:int,guid?:string,title?:string,author?:string,content?:string,link?:string,date?:int|string,lastSeen?:int,
+ * hash?:string,is_read?:bool|int,is_favorite?:bool|int,tags?:string|array<string>,attributes?:?string,thumbnail?:string,timestamp?:string} $dao */
public static function fromArray(array $dao): FreshRSS_Entry {
- FreshRSS_DatabaseDAO::pdoInt($dao, ['id_feed', 'date', 'lastSeen', 'is_read', 'is_favorite']);
-
- if (empty($dao['content'])) {
+ if (empty($dao['content']) || !is_string($dao['content'])) {
$dao['content'] = '';
}
@@ -83,7 +81,7 @@ class FreshRSS_Entry extends Minz_Model {
$dao['is_favorite'] ?? false,
$dao['tags'] ?? ''
);
- if (!empty($dao['id'])) {
+ if (!empty($dao['id']) && is_numeric($dao['id'])) {
$entry->_id($dao['id']);
}
if (!empty($dao['timestamp'])) {
@@ -241,7 +239,9 @@ HTML;
$content .= '<figure class="enclosure">';
foreach ($thumbnails as $thumbnail) {
- $content .= '<p><img class="enclosure-thumbnail" src="' . $thumbnail . '" alt="" title="' . $etitle . '" /></p>';
+ if (is_string($thumbnail)) {
+ $content .= '<p><img class="enclosure-thumbnail" src="' . $thumbnail . '" alt="" title="' . $etitle . '" /></p>';
+ }
}
if (self::enclosureIsImage($enclosure)) {
@@ -283,9 +283,9 @@ HTML;
/** @return Traversable<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string|array<string>,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> */
public function enclosures(bool $searchBodyImages = false): Traversable {
$attributeEnclosures = $this->attributeArray('enclosures');
- if (is_iterable($attributeEnclosures)) {
+ if (is_array($attributeEnclosures)) {
// FreshRSS 1.20.1+: The enclosures are saved as attributes
- /** @var iterable<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string|array<string>,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> $attributeEnclosures */
+ /** @var list<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string|array<string>,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> $attributeEnclosures */
yield from $attributeEnclosures;
}
try {
@@ -354,7 +354,7 @@ HTML;
public function thumbnail(bool $searchEnclosures = true): ?array {
$thumbnail = $this->attributeArray('thumbnail') ?? [];
// First, use the provided thumbnail, if any
- if (!empty($thumbnail['url'])) {
+ if (is_string($thumbnail['url'] ?? null)) {
/** @var array{'url':string,'height'?:int,'width'?:int,'time'?:string} $thumbnail */
return $thumbnail;
}