Catch exceptions if files don't exist

This commit is contained in:
Alex Cabal 2025-04-14 10:46:54 -05:00
parent 3a2778cd77
commit 8c81e5b9d2
2 changed files with 15 additions and 2 deletions

View file

@ -48,7 +48,13 @@ class RssFeed extends Feed{
foreach($this->Entries as $entry){ foreach($this->Entries as $entry){
/** @var Ebook $entry */ /** @var Ebook $entry */
$obj = new stdClass(); $obj = new stdClass();
$obj->Size = (string)filesize(WEB_ROOT . $entry->EpubUrl); try{
// Safe can still emit a warning if the file isn't found, silence that here.
$obj->Size = @(string)filesize(WEB_ROOT . $entry->EpubUrl);
}
catch(Safe\Exceptions\FilesystemException){
$obj->Size = '0';
}
$obj->Id = $entry->FullUrl; $obj->Id = $entry->FullUrl;
$currentEntries[] = $obj; $currentEntries[] = $obj;
} }

View file

@ -4,6 +4,13 @@ use function Safe\filesize;
/** /**
* @var Ebook $entry * @var Ebook $entry
*/ */
try{
$filesize = @filesize(WEB_ROOT . $entry->EpubUrl);
}
catch(Safe\Exceptions\FilesystemException){
$filesize = '0';
}
?> ?>
<item> <item>
<title><?= Formatter::EscapeXml($entry->Title) ?>, by <?= Formatter::EscapeXml(strip_tags($entry->AuthorsHtml)) ?></title> <title><?= Formatter::EscapeXml($entry->Title) ?>, by <?= Formatter::EscapeXml(strip_tags($entry->AuthorsHtml)) ?></title>
@ -16,6 +23,6 @@ use function Safe\filesize;
<? } ?> <? } ?>
<media:thumbnail url="<?= SITE_URL . $entry->Url ?>/downloads/cover-thumbnail.jpg" height="525" width="350"/> <media:thumbnail url="<?= SITE_URL . $entry->Url ?>/downloads/cover-thumbnail.jpg" height="525" width="350"/>
<? if($entry->EpubUrl !== null){ ?> <? if($entry->EpubUrl !== null){ ?>
<enclosure url="<?= SITE_URL . Formatter::EscapeXml($entry->EpubUrl) ?>" length="<?= filesize(WEB_ROOT . $entry->EpubUrl) ?>" type="application/epub+zip" /> <? /* Only one <enclosure> is allowed */ ?> <enclosure url="<?= SITE_URL . Formatter::EscapeXml($entry->EpubUrl) ?>" length="<?= $filesize ?>" type="application/epub+zip" /> <? /* Only one <enclosure> is allowed */ ?>
<? } ?> <? } ?>
</item> </item>