aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers/feedController.php
diff options
context:
space:
mode:
authorGravatar Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com> 2023-05-07 21:09:56 +0200
committerGravatar GitHub <noreply@github.com> 2023-05-07 21:09:56 +0200
commitf90cd8042c712384e7371a672c1781627a50f317 (patch)
treee7d97cbdcedd8f06b9eba51d069de6159e7d762e /app/Controllers/feedController.php
parentaa30635f978099a600a01cab296e9170ccda2b28 (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.php119
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('<' => '&lt;', '>' => '&gt;', '"' => '&quot;'));
$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;
}