diff options
| author | 2023-05-07 21:09:56 +0200 | |
|---|---|---|
| committer | 2023-05-07 21:09:56 +0200 | |
| commit | f90cd8042c712384e7371a672c1781627a50f317 (patch) | |
| tree | e7d97cbdcedd8f06b9eba51d069de6159e7d762e /app/Controllers/feedController.php | |
| parent | aa30635f978099a600a01cab296e9170ccda2b28 (diff) | |
phpstan level 7 for feedController.php (#5373)
* phpstan level 7 for feedController.php
* phpstan level 7 for feedController.php
* phpstan level 7 for feedController.php
* phpstan level 7 for feedController.php
* A few fixes
---------
Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'app/Controllers/feedController.php')
| -rw-r--r-- | app/Controllers/feedController.php | 119 |
1 files changed, 60 insertions, 59 deletions
diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 1974751d0..645175d19 100644 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -53,19 +53,19 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { if ($cat_id > 0) { $cat = $catDAO->searchById($cat_id); } - if ($cat == null && $new_cat_name != '') { + if ($cat === null && $new_cat_name != '') { $new_cat_id = $catDAO->addCategory(array('name' => $new_cat_name)); $cat_id = $new_cat_id > 0 ? $new_cat_id : $cat_id; $cat = $catDAO->searchById($cat_id); } - if ($cat == null) { + if ($cat === null) { $catDAO->checkDefault(); } - $cat_id = $cat == null ? FreshRSS_CategoryDAO::DEFAULTCATEGORYID : $cat->id(); + $cat_id = $cat === null ? FreshRSS_CategoryDAO::DEFAULTCATEGORYID : $cat->id(); $feed = new FreshRSS_Feed($url); //Throws FreshRSS_BadUrl_Exception $title = trim($title); - if ($title != '') { + if ($title !== '') { $feed->_name($title); } $feed->_kind($kind); @@ -130,7 +130,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { public function addAction(): void { $url = Minz_Request::paramString('url_rss'); - if ($url == '') { + if ($url === '') { // No url, do nothing Minz_Request::forward(array( 'c' => 'subscription', @@ -190,11 +190,9 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $opts[CURLOPT_USERAGENT] = $useragent; } - $attributes = array( - 'ssl_verify' => null, - 'timeout' => null, + $attributes = [ 'curl_params' => empty($opts) ? null : $opts, - ); + ]; $attributes['ssl_verify'] = Minz_Request::paramTernary('ssl_verify'); $timeout = Minz_Request::paramInt('timeout'); $attributes['timeout'] = $timeout > 0 ? $timeout : null; @@ -202,30 +200,42 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $feed_kind = Minz_Request::paramInt('feed_kind') ?: FreshRSS_Feed::KIND_RSS; if ($feed_kind === FreshRSS_Feed::KIND_HTML_XPATH || $feed_kind === FreshRSS_Feed::KIND_XML_XPATH) { $xPathSettings = []; - if (Minz_Request::paramString('xPathFeedTitle') != '') + if (Minz_Request::paramString('xPathFeedTitle') !== '') { $xPathSettings['feedTitle'] = Minz_Request::paramString('xPathFeedTitle', true); - if (Minz_Request::paramString('xPathItem') != '') + } + if (Minz_Request::paramString('xPathItem') !== '') { $xPathSettings['item'] = Minz_Request::paramString('xPathItem', true); - if (Minz_Request::paramString('xPathItemTitle') != '') + } + if (Minz_Request::paramString('xPathItemTitle') !== '') { $xPathSettings['itemTitle'] = Minz_Request::paramString('xPathItemTitle', true); - if (Minz_Request::paramString('xPathItemContent') != '') + } + if (Minz_Request::paramString('xPathItemContent') !== '') { $xPathSettings['itemContent'] = Minz_Request::paramString('xPathItemContent', true); - if (Minz_Request::paramString('xPathItemUri') != '') + } + if (Minz_Request::paramString('xPathItemUri') !== '') { $xPathSettings['itemUri'] = Minz_Request::paramString('xPathItemUri', true); - if (Minz_Request::paramString('xPathItemAuthor') != '') + } + if (Minz_Request::paramString('xPathItemAuthor') !== '') { $xPathSettings['itemAuthor'] = Minz_Request::paramString('xPathItemAuthor', true); - if (Minz_Request::paramString('xPathItemTimestamp') != '') + } + if (Minz_Request::paramString('xPathItemTimestamp') !== '') { $xPathSettings['itemTimestamp'] = Minz_Request::paramString('xPathItemTimestamp', true); - if (Minz_Request::paramString('xPathItemTimeFormat') != '') + } + if (Minz_Request::paramString('xPathItemTimeFormat') !== '') { $xPathSettings['itemTimeFormat'] = Minz_Request::paramString('xPathItemTimeFormat', true); - if (Minz_Request::paramString('xPathItemThumbnail') != '') + } + if (Minz_Request::paramString('xPathItemThumbnail') !== '') { $xPathSettings['itemThumbnail'] = Minz_Request::paramString('xPathItemThumbnail', true); - if (Minz_Request::paramString('xPathItemCategories') != '') + } + if (Minz_Request::paramString('xPathItemCategories') !== '') { $xPathSettings['itemCategories'] = Minz_Request::paramString('xPathItemCategories', true); - if (Minz_Request::paramString('xPathItemUid') != '') + } + if (Minz_Request::paramString('xPathItemUid') !== '') { $xPathSettings['itemUid'] = Minz_Request::paramString('xPathItemUid', true); - if (!empty($xPathSettings)) + } + if (!empty($xPathSettings)) { $attributes['xpath'] = $xPathSettings; + } } try { @@ -315,6 +325,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { /** * @return array{0:int,1:FreshRSS_Feed|false,2:int} + * @throws FreshRSS_BadUrl_Exception */ public static function actualizeFeed(int $feed_id, string $feed_url, bool $force, ?SimplePie $simplePiePush = null, bool $noCommit = false, int $maxFeeds = 10): array { @@ -371,9 +382,9 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $ttl = $feed->ttl(); if ((!$simplePiePush) && (!$feed_id) && ($feed->lastUpdate() + 10 >= time() - ( - $ttl == FreshRSS_Feed::TTL_DEFAULT ? FreshRSS_Context::$user_conf->ttl_default : $ttl))) { + $ttl === FreshRSS_Feed::TTL_DEFAULT ? FreshRSS_Context::$user_conf->ttl_default : $ttl))) { //Too early to refresh from source, but check whether the feed was updated by another user - $mtime = $feed->cacheModifiedTime(); + $mtime = $feed->cacheModifiedTime() ?: 0; if ($feed->lastUpdate() + 10 >= $mtime) { continue; //Nothing newer from other users } @@ -406,8 +417,8 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { } else { $simplePie = $feed->load(false, $isNewFeed); } - $newGuids = $simplePie == null ? [] : $feed->loadGuids($simplePie); - $entries = $simplePie == null ? [] : $feed->loadEntries($simplePie); + $newGuids = $simplePie === null ? [] : $feed->loadGuids($simplePie); + $entries = $simplePie === null ? [] : $feed->loadEntries($simplePie); } catch (FreshRSS_Feed_Exception $e) { Minz_Log::warning($e->getMessage()); $feedDAO->updateLastUpdate($feed->id(), true); @@ -429,7 +440,8 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $readWhenSameTitleInFeed = FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']; } if ($readWhenSameTitleInFeed > 0) { - $titlesAsRead = array_flip($feedDAO->listTitles($feed->id(), intval($readWhenSameTitleInFeed))); + /** @var array<string,bool> $titlesAsRead*/ + $titlesAsRead = array_flip($feedDAO->listTitles($feed->id(), (int)$readWhenSameTitleInFeed)); } $mark_updated_article_unread = $feed->attributes('mark_updated_article_unread') !== null ? ( @@ -437,8 +449,8 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { ) : FreshRSS_Context::$user_conf->mark_updated_article_unread; // For this feed, check existing GUIDs already in database. - $existingHashForGuids = $entryDAO->listHashForFeedGuids($feed->id(), $newGuids); - /** @var array<string,bool> */ + $existingHashForGuids = $entryDAO->listHashForFeedGuids($feed->id(), $newGuids) ?: []; + /** @var array<string,bool> $newGuids */ $newGuids = []; // Add entries in database if possible. @@ -458,9 +470,8 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $entry->_isRead($mark_updated_article_unread ? false : null); //Change is_read according to policy. $entry->_isFavorite(null); // Do not change favourite state - /** @var FreshRSS_Entry|null */ $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); - if ($entry === null) { + if (!($entry instanceof FreshRSS_Entry)) { // An extension has returned a null value, there is nothing to insert. continue; } @@ -481,15 +492,13 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { } else { $id = uTimeString(); $entry->_id($id); - $entry->applyFilterActions($titlesAsRead); if ($readWhenSameTitleInFeed > 0) { $titlesAsRead[$entry->title()] = true; } - /** @var FreshRSS_Entry|null */ $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); - if ($entry === null) { + if (!($entry instanceof FreshRSS_Entry)) { // An extension has returned a null value, there is nothing to insert. continue; } @@ -564,21 +573,21 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { } if ($simplePie != null) { - if ($feed->name(true) == '') { + if ($feed->name(true) === '') { //HTML to HTML-PRE //ENT_COMPAT except '&' $name = strtr(html_only_entity_decode($simplePie->get_title()), array('<' => '<', '>' => '>', '"' => '"')); $feed->_name($name); $feedProperties['name'] = $feed->name(false); } - if (trim($feed->website()) == '') { + if (trim($feed->website()) === '') { $website = html_only_entity_decode($simplePie->get_link()); $feed->_website($website == '' ? $feed->url() : $website); $feedProperties['website'] = $feed->website(); $feed->faviconPrepare(); } - if (trim($feed->description()) == '') { + if (trim($feed->description()) === '') { $description = html_only_entity_decode($simplePie->get_description()); - if ($description != '') { + if ($description !== '') { $feed->_description($description); $feedProperties['description'] = $feed->description(); } @@ -661,7 +670,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $databaseDAO->minorDbMaintenance(); } else { FreshRSS_category_Controller::refreshDynamicOpmls(); - list($updated_feeds, $feed, $nb_new_articles) = self::actualizeFeed($id, $url, $force, null, $noCommit, $maxFeeds); + [$updated_feeds, $feed] = self::actualizeFeed($id, $url, $force, null, $noCommit, $maxFeeds); } if (Minz_Request::paramBoolean('ajax')) { @@ -671,23 +680,23 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { Minz_Request::setGoodNotification(_t('feedback.sub.feed.actualizeds')); // No layout in ajax request. $this->view->_layout(null); - } else { + } elseif ($feed instanceof FreshRSS_Feed) { // Redirect to the main page with correct notification. if ($updated_feeds === 1) { - Minz_Request::good(_t('feedback.sub.feed.actualized', $feed->name()), array( - 'params' => array('get' => 'f_' . $feed->id()) - )); + Minz_Request::good(_t('feedback.sub.feed.actualized', $feed->name()), [ + 'params' => ['get' => 'f_' . $feed->id()] + ]); } elseif ($updated_feeds > 1) { - Minz_Request::good(_t('feedback.sub.feed.n_actualized', $updated_feeds), array()); + Minz_Request::good(_t('feedback.sub.feed.n_actualized', $updated_feeds), []); } else { - Minz_Request::good(_t('feedback.sub.feed.no_refresh'), array()); + Minz_Request::good(_t('feedback.sub.feed.no_refresh'), []); } } return $updated_feeds; } public static function renameFeed(int $feed_id, string $feed_name): bool { - if ($feed_id <= 0 || $feed_name == '') { + if ($feed_id <= 0 || $feed_name === '') { return false; } FreshRSS_UserDAO::touch(); @@ -696,7 +705,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { } public static function moveFeed(int $feed_id, int $cat_id, string $new_cat_name = ''): bool { - if ($feed_id <= 0 || ($cat_id <= 0 && $new_cat_name == '')) { + if ($feed_id <= 0 || ($cat_id <= 0 && $new_cat_name === '')) { return false; } FreshRSS_UserDAO::touch(); @@ -704,7 +713,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $catDAO = FreshRSS_Factory::createCategoryDao(); if ($cat_id > 0) { $cat = $catDAO->searchById($cat_id); - $cat_id = $cat == null ? 0 : $cat->id(); + $cat_id = $cat === null ? 0 : $cat->id(); } if ($cat_id <= 1 && $new_cat_name != '') { $cat_id = $catDAO->addCategory(array('name' => $new_cat_name)); @@ -772,10 +781,6 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { * * Parameters are: * - id (default: false) - * - r (default: false) - * r permits to redirect to a given page at the end of this action. - * - * @todo handle "r" redirection in Minz_Request::forward()? */ public function deleteAction(): void { $from = Minz_Request::paramString('from'); @@ -794,10 +799,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { } break; default: - $redirect_url = Minz_Request::paramString('r', true); - if ($redirect_url == '') { - $redirect_url = array('c' => 'subscription', 'a' => 'index'); - } + $redirect_url = ['c' => 'subscription', 'a' => 'index']; if (!Minz_Request::isPost()) { Minz_Request::forward($redirect_url, true); } @@ -841,6 +843,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { * Parameters are: * - id (mandatory - no default): Feed ID * + * @throws FreshRSS_BadUrl_Exception */ public function reloadAction(): void { @set_time_limit(300); @@ -930,9 +933,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { //Get first entry (syntax robust for Generator or Array) foreach ($entries as $myEntry) { - if ($entry == null) { - $entry = $myEntry; - } + $entry = $myEntry; } if ($entry == null) { @@ -943,7 +944,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { //Get feed. $feed = $entry->feed(); - if (!$feed) { + if ($feed === null) { $this->view->fatalError = _t('feedback.sub.feed.selector_preview.no_feed'); return; } |
