From 6811d0bde220d7632b9d6a7fa4f4931cc96324c8 Mon Sep 17 00:00:00 2001
From: Andrew Dolgov <noreply@fakecake.org>
Date: Tue, 22 Sep 2020 14:54:15 +0300
Subject: [PATCH] use self:: in some places to invoke static methods from the
 same class

---
 classes/api.php        | 54 ++++++++++++++++++-------------------
 classes/article.php    |  6 ++---
 classes/counters.php   | 14 +++++-----
 classes/debug.php      | 26 +++++++++---------
 classes/feeds.php      | 42 ++++++++++++++---------------
 classes/labels.php     | 10 +++----
 classes/pluginhost.php |  4 +--
 classes/pref/feeds.php |  2 +-
 classes/pref/users.php |  2 +-
 classes/rpc.php        |  2 +-
 classes/rssutils.php   | 60 +++++++++++++++++++++---------------------
 classes/sanitizer.php  |  4 +--
 classes/urlhelper.php  | 18 ++++++-------
 classes/userhelper.php | 10 +++----
 14 files changed, 127 insertions(+), 127 deletions(-)

diff --git a/classes/api.php b/classes/api.php
index ce046e66a..928148b5e 100755
--- a/classes/api.php
+++ b/classes/api.php
@@ -117,10 +117,10 @@ class API extends Handler {
 
 	function getFeeds() {
 		$cat_id = clean($_REQUEST["cat_id"]);
-		$unread_only = API::param_to_bool(clean($_REQUEST["unread_only"]));
+		$unread_only = self::param_to_bool(clean($_REQUEST["unread_only"]));
 		$limit = (int) clean($_REQUEST["limit"]);
 		$offset = (int) clean($_REQUEST["offset"]);
-		$include_nested = API::param_to_bool(clean($_REQUEST["include_nested"]));
+		$include_nested = self::param_to_bool(clean($_REQUEST["include_nested"]));
 
 		$feeds = $this->api_get_feeds($cat_id, $unread_only, $limit, $offset, $include_nested);
 
@@ -128,9 +128,9 @@ class API extends Handler {
 	}
 
 	function getCategories() {
-		$unread_only = API::param_to_bool(clean($_REQUEST["unread_only"]));
-		$enable_nested = API::param_to_bool(clean($_REQUEST["enable_nested"]));
-		$include_empty = API::param_to_bool(clean($_REQUEST['include_empty']));
+		$unread_only = self::param_to_bool(clean($_REQUEST["unread_only"]));
+		$enable_nested = self::param_to_bool(clean($_REQUEST["enable_nested"]));
+		$include_empty = self::param_to_bool(clean($_REQUEST['include_empty']));
 
 		// TODO do not return empty categories, return Uncategorized and standard virtual cats
 
@@ -196,21 +196,21 @@ class API extends Handler {
 
 			$offset = (int)clean($_REQUEST["skip"]);
 			$filter = clean($_REQUEST["filter"]);
-			$is_cat = API::param_to_bool(clean($_REQUEST["is_cat"]));
-			$show_excerpt = API::param_to_bool(clean($_REQUEST["show_excerpt"]));
-			$show_content = API::param_to_bool(clean($_REQUEST["show_content"]));
+			$is_cat = self::param_to_bool(clean($_REQUEST["is_cat"]));
+			$show_excerpt = self::param_to_bool(clean($_REQUEST["show_excerpt"]));
+			$show_content = self::param_to_bool(clean($_REQUEST["show_content"]));
 			/* all_articles, unread, adaptive, marked, updated */
 			$view_mode = clean($_REQUEST["view_mode"]);
-			$include_attachments = API::param_to_bool(clean($_REQUEST["include_attachments"]));
+			$include_attachments = self::param_to_bool(clean($_REQUEST["include_attachments"]));
 			$since_id = (int)clean($_REQUEST["since_id"]);
-			$include_nested = API::param_to_bool(clean($_REQUEST["include_nested"]));
+			$include_nested = self::param_to_bool(clean($_REQUEST["include_nested"]));
 			$sanitize_content = !isset($_REQUEST["sanitize"]) ||
-				API::param_to_bool($_REQUEST["sanitize"]);
-			$force_update = API::param_to_bool(clean($_REQUEST["force_update"]));
-			$has_sandbox = API::param_to_bool(clean($_REQUEST["has_sandbox"]));
+				self::param_to_bool($_REQUEST["sanitize"]);
+			$force_update = self::param_to_bool(clean($_REQUEST["force_update"]));
+			$has_sandbox = self::param_to_bool(clean($_REQUEST["has_sandbox"]));
 			$excerpt_length = (int)clean($_REQUEST["excerpt_length"]);
 			$check_first_id = (int)clean($_REQUEST["check_first_id"]);
-			$include_header = API::param_to_bool(clean($_REQUEST["include_header"]));
+			$include_header = self::param_to_bool(clean($_REQUEST["include_header"]));
 
 			$_SESSION['hasSandbox'] = $has_sandbox;
 
@@ -299,7 +299,7 @@ class API extends Handler {
 
 		$article_ids = explode(",", clean($_REQUEST["article_id"]));
 		$sanitize_content = !isset($_REQUEST["sanitize"]) ||
-			API::param_to_bool($_REQUEST["sanitize"]);
+			self::param_to_bool($_REQUEST["sanitize"]);
 
 		if ($article_ids) {
 
@@ -328,9 +328,9 @@ class API extends Handler {
 					"title" => $line["title"],
 					"link" => $line["link"],
 					"labels" => Article::get_article_labels($line['id']),
-					"unread" => API::param_to_bool($line["unread"]),
-					"marked" => API::param_to_bool($line["marked"]),
-					"published" => API::param_to_bool($line["published"]),
+					"unread" => self::param_to_bool($line["unread"]),
+					"marked" => self::param_to_bool($line["marked"]),
+					"published" => self::param_to_bool($line["published"]),
 					"comments" => $line["comments"],
 					"author" => $line["author"],
 					"updated" => (int) strtotime($line["updated"]),
@@ -345,7 +345,7 @@ class API extends Handler {
 				if ($sanitize_content) {
 					$article["content"] = Sanitizer::sanitize(
 						$line["content"],
-						API::param_to_bool($line['hide_images']),
+						self::param_to_bool($line['hide_images']),
 						false, $line["site_url"], false, $line["id"]);
 				} else {
 					$article["content"] = $line["content"];
@@ -449,7 +449,7 @@ class API extends Handler {
 
 		$article_ids = explode(",", clean($_REQUEST["article_ids"]));
 		$label_id = (int) clean($_REQUEST['label_id']);
-		$assign = API::param_to_bool(clean($_REQUEST['assign']));
+		$assign = self::param_to_bool(clean($_REQUEST['assign']));
 
 		$label = Labels::find_caption(Labels::feed_to_label_id($label_id), $_SESSION["uid"]);
 
@@ -656,7 +656,7 @@ class API extends Handler {
 
 				if ($row = $sth->fetch()) {
 					$last_updated = strtotime($row["last_updated"]);
-					$cache_images = API::param_to_bool($row["cache_images"]);
+					$cache_images = self::param_to_bool($row["cache_images"]);
 
 					if (!$cache_images && time() - $last_updated > 120) {
 						RSSUtils::update_rss_feed($feed_id, true);
@@ -726,9 +726,9 @@ class API extends Handler {
 					$headline_row = array(
 						"id" => (int)$line["id"],
 						"guid" => $line["guid"],
-						"unread" => API::param_to_bool($line["unread"]),
-						"marked" => API::param_to_bool($line["marked"]),
-						"published" => API::param_to_bool($line["published"]),
+						"unread" => self::param_to_bool($line["unread"]),
+						"marked" => self::param_to_bool($line["marked"]),
+						"published" => self::param_to_bool($line["published"]),
 						"updated" => (int)strtotime($line["updated"]),
 						"is_updated" => $is_updated,
 						"title" => $line["title"],
@@ -750,7 +750,7 @@ class API extends Handler {
 						if ($sanitize_content) {
 							$headline_row["content"] = Sanitizer::sanitize(
 								$line["content"],
-								API::param_to_bool($line['hide_images']),
+								self::param_to_bool($line['hide_images']),
 								false, $line["site_url"], false, $line["id"]);
 						} else {
 							$headline_row["content"] = $line["content"];
@@ -768,7 +768,7 @@ class API extends Handler {
 					$headline_row["comments_count"] = (int)$line["num_comments"];
 					$headline_row["comments_link"] = $line["comments"];
 
-					$headline_row["always_display_attachments"] = API::param_to_bool($line["always_display_enclosures"]);
+					$headline_row["always_display_attachments"] = self::param_to_bool($line["always_display_enclosures"]);
 
 					$headline_row["author"] = $line["author"];
 
@@ -827,7 +827,7 @@ class API extends Handler {
 	}
 
 	function getFeedTree() {
-		$include_empty = API::param_to_bool(clean($_REQUEST['include_empty']));
+		$include_empty = self::param_to_bool(clean($_REQUEST['include_empty']));
 
 		$pf = new Pref_Feeds($_REQUEST);
 
diff --git a/classes/article.php b/classes/article.php
index c94b69615..430109283 100755
--- a/classes/article.php
+++ b/classes/article.php
@@ -159,7 +159,7 @@ class Article extends Handler_Protected {
 
 		$param = clean($_REQUEST['param']);
 
-		$tags = Article::get_article_tags($param);
+		$tags = self::get_article_tags($param);
 
 		$tags_str = join(", ", $tags);
 
@@ -261,7 +261,7 @@ class Article extends Handler_Protected {
 
 		$this->pdo->commit();
 
-		$tags = Article::get_article_tags($id);
+		$tags = self::get_article_tags($id);
 		$tags_str = $this->format_tags_string($tags, $id);
 		$tags_str_full = join(", ", $tags);
 
@@ -344,7 +344,7 @@ class Article extends Handler_Protected {
 	static function format_article_enclosures($id, $always_display_enclosures,
 									   $article_content, $hide_images = false) {
 
-		$result = Article::get_article_enclosures($id);
+		$result = self::get_article_enclosures($id);
 		$rv = '';
 
 		foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_FORMAT_ENCLOSURES) as $plugin) {
diff --git a/classes/counters.php b/classes/counters.php
index 4518fa9d2..4d37e407b 100644
--- a/classes/counters.php
+++ b/classes/counters.php
@@ -2,12 +2,12 @@
 class Counters {
 
 	static function getAllCounters() {
-		$data = Counters::getGlobalCounters();
+		$data = self::getGlobalCounters();
 
-		$data = array_merge($data, Counters::getVirtCounters());
-		$data = array_merge($data, Counters::getLabelCounters());
-		$data = array_merge($data, Counters::getFeedCounters());
-		$data = array_merge($data, Counters::getCategoryCounters());
+		$data = array_merge($data, self::getVirtCounters());
+		$data = array_merge($data, self::getLabelCounters());
+		$data = array_merge($data, self::getFeedCounters());
+		$data = array_merge($data, self::getCategoryCounters());
 
 		return $data;
 	}
@@ -23,7 +23,7 @@ class Counters {
 		$marked = 0;
 
 		while ($line = $sth->fetch()) {
-			list ($tmp_unread, $tmp_marked) = Counters::getCategoryChildrenCounters($line["id"], $owner_uid);
+			list ($tmp_unread, $tmp_marked) = self::getCategoryChildrenCounters($line["id"], $owner_uid);
 
 			$unread += $tmp_unread + Feeds::getCategoryUnread($line["id"], $owner_uid);
 			$marked += $tmp_marked + Feeds::getCategoryMarked($line["id"], $owner_uid);
@@ -68,7 +68,7 @@ class Counters {
 
 		while ($line = $sth->fetch()) {
 			if ($line["num_children"] > 0) {
-				list ($child_counter, $child_marked_counter) = Counters::getCategoryChildrenCounters($line["id"], $_SESSION["uid"]);
+				list ($child_counter, $child_marked_counter) = self::getCategoryChildrenCounters($line["id"], $_SESSION["uid"]);
 			} else {
 				$child_counter = 0;
 				$child_marked_counter = 0;
diff --git a/classes/debug.php b/classes/debug.php
index c62f0c9f5..3061c6893 100644
--- a/classes/debug.php
+++ b/classes/debug.php
@@ -11,40 +11,40 @@ class Debug {
     private static $loglevel = 0;
 
 	public static function set_logfile($logfile) {
-        Debug::$logfile = $logfile;
+        self::$logfile = $logfile;
     }
 
     public static function enabled() {
-        return Debug::$enabled;
+        return self::$enabled;
     }
 
     public static function set_enabled($enable) {
-        Debug::$enabled = $enable;
+        self::$enabled = $enable;
     }
 
     public static function set_quiet($quiet) {
-        Debug::$quiet = $quiet;
+        self::$quiet = $quiet;
     }
 
     public static function set_loglevel($level) {
-        Debug::$loglevel = $level;
+        self::$loglevel = $level;
     }
 
     public static function get_loglevel() {
-        return Debug::$loglevel;
+        return self::$loglevel;
     }
 
     public static function log($message, $level = 0) {
 
-        if (!Debug::$enabled || Debug::$loglevel < $level) return false;
+        if (!self::$enabled || self::$loglevel < $level) return false;
 
         $ts = strftime("%H:%M:%S", time());
         if (function_exists('posix_getpid')) {
             $ts = "$ts/" . posix_getpid();
         }
 
-        if (Debug::$logfile) {
-            $fp = fopen(Debug::$logfile, 'a+');
+        if (self::$logfile) {
+            $fp = fopen(self::$logfile, 'a+');
 
             if ($fp) {
                 $locked = false;
@@ -60,7 +60,7 @@ class Debug {
 
                     if (!$locked) {
                         fclose($fp);
-                        user_error("Unable to lock debugging log file: " . Debug::$logfile, E_USER_WARNING);
+                        user_error("Unable to lock debugging log file: " . self::$logfile, E_USER_WARNING);
                         return;
                     }
                 }
@@ -73,14 +73,14 @@ class Debug {
 
                 fclose($fp);
 
-                if (Debug::$quiet)
+                if (self::$quiet)
                     return;
 
             } else {
-                user_error("Unable to open debugging log file: " . Debug::$logfile, E_USER_WARNING);
+                user_error("Unable to open debugging log file: " . self::$logfile, E_USER_WARNING);
             }
         }
 
         print "[$ts] $message\n";
     }
-}
\ No newline at end of file
+}
diff --git a/classes/feeds.php b/classes/feeds.php
index b428252d8..bb5456577 100755
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -204,7 +204,7 @@ class Feeds extends Handler_Protected {
 		}
 
 		$vfeed_group_enabled = get_pref("VFEED_GROUP_BY_FEED") &&
-			!(in_array($feed, Feeds::NEVER_GROUP_FEEDS) && !$cat_view);
+			!(in_array($feed, self::NEVER_GROUP_FEEDS) && !$cat_view);
 
 		$result = $qfh_ret[0]; // this could be either a PDO query result or a -1 if first id changed
 		$feed_title = $qfh_ret[1];
@@ -357,7 +357,7 @@ class Feeds extends Handler_Protected {
 
 				$line["tags_str"] = Article::format_tags_string($tags, $id);
 
-				if (feeds::feedHasIcon($feed_id)) {
+				if (self::feedHasIcon($feed_id)) {
 					$line['feed_icon'] = "<img class=\"icon\" src=\"".ICONS_URL."/$feed_id.ico\" alt=\"\">";
 				} else {
 					$line['feed_icon'] = "<i class='icon-no-feed material-icons'>rss_feed</i>";
@@ -529,7 +529,7 @@ class Feeds extends Handler_Protected {
 
 		$reply['headlines'] = [];
 
-		list($override_order, $skip_first_id_check) = Feeds::order_to_override_query($order_by);
+		list($override_order, $skip_first_id_check) = self::order_to_override_query($order_by);
 
 		$ret = $this->format_headlines_list($feed, $method,
 			$view_mode, $limit, $cat_view, $offset,
@@ -851,7 +851,7 @@ class Feeds extends Handler_Protected {
 
 			// fall back in case of no plugins
 			if (!$search_qpart) {
-				list($search_qpart, $search_words) = Feeds::search_to_sql($search[0], $search[1]);
+				list($search_qpart, $search_words) = self::search_to_sql($search[0], $search[1]);
 			}
 		} else {
 			$search_qpart = "true";
@@ -891,7 +891,7 @@ class Feeds extends Handler_Protected {
 				if ($feed >= 0) {
 
 					if ($feed > 0) {
-						$children = Feeds::getChildCategories($feed, $owner_uid);
+						$children = self::getChildCategories($feed, $owner_uid);
 						array_push($children, $feed);
 						$children = array_map("intval", $children);
 
@@ -1021,7 +1021,7 @@ class Feeds extends Handler_Protected {
 		$match_part = "";
 
 		if ($is_cat) {
-			return Feeds::getCategoryUnread($n_feed, $owner_uid);
+			return self::getCategoryUnread($n_feed, $owner_uid);
 		} else if ($n_feed == -6) {
 			return 0;
 		} else if ($feed != "0" && $n_feed == 0) {
@@ -1067,7 +1067,7 @@ class Feeds extends Handler_Protected {
 
 			$label_id = Labels::feed_to_label_id($feed);
 
-			return Feeds::getLabelUnread($label_id, $owner_uid);
+			return self::getLabelUnread($label_id, $owner_uid);
 		}
 
 		if ($match_part) {
@@ -1142,8 +1142,8 @@ class Feeds extends Handler_Protected {
 			return array("code" => 5, "message" => $fetch_last_error);
 		}
 
-		if (mb_strpos($fetch_last_content_type, "html") !== false && Feeds::is_html($contents)) {
-			$feedUrls = Feeds::get_feeds_from_html($url, $contents);
+		if (mb_strpos($fetch_last_content_type, "html") !== false && self::is_html($contents)) {
+			$feedUrls = self::get_feeds_from_html($url, $contents);
 
 			if (count($feedUrls) == 0) {
 				return array("code" => 3);
@@ -1234,7 +1234,7 @@ class Feeds extends Handler_Protected {
 	    $pdo = Db::pdo();
 
 		if ($cat) {
-			return Feeds::getCategoryTitle($id);
+			return self::getCategoryTitle($id);
 		} else if ($id == -1) {
 			return __("Starred articles");
 		} else if ($id == -2) {
@@ -1346,8 +1346,8 @@ class Feeds extends Handler_Protected {
 		$unread = 0;
 
 		while ($line = $sth->fetch()) {
-			$unread += Feeds::getCategoryUnread($line["id"], $owner_uid);
-			$unread += Feeds::getCategoryChildrenUnread($line["id"], $owner_uid);
+			$unread += self::getCategoryUnread($line["id"], $owner_uid);
+			$unread += self::getCategoryChildrenUnread($line["id"], $owner_uid);
 		}
 
 		return $unread;
@@ -1450,7 +1450,7 @@ class Feeds extends Handler_Protected {
 
 			// fall back in case of no plugins
 			if (!$search_query_part) {
-				list($search_query_part, $search_words) = Feeds::search_to_sql($search, $search_language);
+				list($search_query_part, $search_words) = self::search_to_sql($search, $search_language);
 			}
 
 			if (DB_TYPE == "pgsql") {
@@ -1488,7 +1488,7 @@ class Feeds extends Handler_Protected {
 				$unread = getFeedUnread($feed, $cat_view);
 
 				if ($cat_view && $feed > 0 && $include_children)
-					$unread += Feeds::getCategoryChildrenUnread($feed);
+					$unread += self::getCategoryChildrenUnread($feed);
 
 				if ($unread > 0) {
 					$view_query_part = " unread = true AND ";
@@ -1532,7 +1532,7 @@ class Feeds extends Handler_Protected {
 				if ($feed > 0) {
 					if ($include_children) {
 						# sub-cats
-						$subcats = Feeds::getChildCategories($feed, $owner_uid);
+						$subcats = self::getChildCategories($feed, $owner_uid);
 						array_push($subcats, $feed);
 						$subcats = array_map("intval", $subcats);
 
@@ -1651,7 +1651,7 @@ class Feeds extends Handler_Protected {
 			$feed_title = T_sprintf("Search results: %s", $search);
 		} else {
 			if ($cat_view) {
-				$feed_title = Feeds::getCategoryTitle($feed);
+				$feed_title = self::getCategoryTitle($feed);
 			} else {
 				if (is_numeric($feed) && $feed > 0) {
 					$ssth = $pdo->prepare("SELECT title,site_url,last_error,last_updated
@@ -1664,7 +1664,7 @@ class Feeds extends Handler_Protected {
 					$last_error = $row["last_error"];
 					$last_updated = $row["last_updated"];
 				} else {
-					$feed_title = Feeds::getFeedTitle($feed);
+					$feed_title = self::getFeedTitle($feed);
 				}
 			}
 		}
@@ -1688,7 +1688,7 @@ class Feeds extends Handler_Protected {
 			// proper override_order applied above
 			if ($vfeed_query_part && !$ignore_vfeed_group && get_pref('VFEED_GROUP_BY_FEED', $owner_uid)) {
 
-				if (!(in_array($feed, Feeds::NEVER_GROUP_BY_DATE) && !$cat_view)) {
+				if (!(in_array($feed, self::NEVER_GROUP_BY_DATE) && !$cat_view)) {
 					$yyiw_desc = $order_by == "date_reverse" ? "" : "desc";
 					$yyiw_order_qpart = "yyiw $yyiw_desc, ";
 				} else {
@@ -1869,7 +1869,7 @@ class Feeds extends Handler_Protected {
 
 		while ($line = $sth->fetch()) {
 			array_push($rv, $line["parent_cat"]);
-			$rv = array_merge($rv, Feeds::getParentCategories($line["parent_cat"], $owner_uid));
+			$rv = array_merge($rv, self::getParentCategories($line["parent_cat"], $owner_uid));
 		}
 
 		return $rv;
@@ -1886,7 +1886,7 @@ class Feeds extends Handler_Protected {
 
 		while ($line = $sth->fetch()) {
 			array_push($rv, $line["id"]);
-			$rv = array_merge($rv, Feeds::getChildCategories($line["id"], $owner_uid));
+			$rv = array_merge($rv, self::getChildCategories($line["id"], $owner_uid));
 		}
 
 		return $rv;
@@ -2032,7 +2032,7 @@ class Feeds extends Handler_Protected {
 	 */
 	static function purge_feed($feed_id, $purge_interval) {
 
-		if (!$purge_interval) $purge_interval = Feeds::feed_purge_interval($feed_id);
+		if (!$purge_interval) $purge_interval = self::feed_purge_interval($feed_id);
 
 		$pdo = Db::pdo();
 
diff --git a/classes/labels.php b/classes/labels.php
index 7a69a5191..1f27ee25c 100644
--- a/classes/labels.php
+++ b/classes/labels.php
@@ -57,7 +57,7 @@ class Labels
 		$pdo = Db::pdo();
 
 		if ($force)
-			Labels::clear_cache($id);
+			self::clear_cache($id);
 
 		if (!$labels)
 			$labels = Article::get_article_labels($id);
@@ -82,7 +82,7 @@ class Labels
 
 	static function remove_article($id, $label, $owner_uid) {
 
-		$label_id = Labels::find_id($label, $owner_uid);
+		$label_id = self::find_id($label, $owner_uid);
 
 		if (!$label_id) return;
 
@@ -95,12 +95,12 @@ class Labels
 
 		$sth->execute([$label_id, $id]);
 
-		Labels::clear_cache($id);
+		self::clear_cache($id);
 	}
 
 	static function add_article($id, $label, $owner_uid)	{
 
-		$label_id = Labels::find_id($label, $owner_uid);
+		$label_id = self::find_id($label, $owner_uid);
 
 		if (!$label_id) return;
 
@@ -123,7 +123,7 @@ class Labels
 			$sth->execute([$label_id, $id]);
 		}
 
-		Labels::clear_cache($id);
+		self::clear_cache($id);
 
 	}
 
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index acccea5db..3ff658918 100755
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -235,8 +235,8 @@ class PluginHost {
 
 					$plugin_api = $plugin->api_version();
 
-					if ($plugin_api < PluginHost::API_VERSION) {
-						user_error("Plugin $class is not compatible with current API version (need: " . PluginHost::API_VERSION . ", got: $plugin_api)", E_USER_WARNING);
+					if ($plugin_api < self::API_VERSION) {
+						user_error("Plugin $class is not compatible with current API version (need: " . self::API_VERSION . ", got: $plugin_api)", E_USER_WARNING);
 						continue;
 					}
 
diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php
index 4ff6ac9c2..d7220f9ae 100755
--- a/classes/pref/feeds.php
+++ b/classes/pref/feeds.php
@@ -1151,7 +1151,7 @@ class Pref_Feeds extends Handler_Protected {
 		$ids = explode(",", clean($_REQUEST["ids"]));
 
 		foreach ($ids as $id) {
-			Pref_Feeds::remove_feed($id, $_SESSION["uid"]);
+			self::remove_feed($id, $_SESSION["uid"]);
 		}
 
 		return;
diff --git a/classes/pref/users.php b/classes/pref/users.php
index aeabc4502..fd307f7ec 100644
--- a/classes/pref/users.php
+++ b/classes/pref/users.php
@@ -304,7 +304,7 @@ class Pref_Users extends Handler_Protected {
 
 		function resetPass() {
 			$uid = clean($_REQUEST["id"]);
-			Pref_Users::resetUserPassword($uid);
+			self::resetUserPassword($uid);
 		}
 
 		function index() {
diff --git a/classes/rpc.php b/classes/rpc.php
index a7123566c..e3870aa41 100755
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -514,7 +514,7 @@ class RPC extends Handler_Protected {
 	}
 
 	function updaterandomfeed() {
-		RPC::updaterandomfeed_real();
+		self::updaterandomfeed_real();
 	}
 
 	private function markArticlesById($ids, $cmode) {
diff --git a/classes/rssutils.php b/classes/rssutils.php
index 14a0a18a7..f2806cf49 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -154,7 +154,7 @@ class RSSUtils {
 				$fstarted = microtime(true);
 
 				try {
-					RSSUtils::update_rss_feed($tline["id"], true, false);
+					self::update_rss_feed($tline["id"], true, false);
 				} catch (PDOException $e) {
 					Logger::get()->log_error(E_USER_NOTICE, $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
 
@@ -180,7 +180,7 @@ class RSSUtils {
 		foreach ($batch_owners as $owner_uid) {
 			Debug::log("Running housekeeping tasks for user $owner_uid...");
 
-			RSSUtils::housekeeping_user($owner_uid);
+			self::housekeeping_user($owner_uid);
 		}
 
 		// Send feed digests by email if needed.
@@ -288,7 +288,7 @@ class RSSUtils {
 		// this is not optimal currently as it fetches stuff separately TODO: optimize
 		if ($title == "[Unknown]" || !$title || !$site_url) {
 			Debug::log("setting basic feed info for $feed [$title, $site_url]...");
-			RSSUtils::set_basic_feed_info($feed);
+			self::set_basic_feed_info($feed);
 		}
 
 		$sth = $pdo->prepare("SELECT id,update_interval,auth_login,
@@ -522,7 +522,7 @@ class RSSUtils {
 
 				Debug::log("checking favicon...", Debug::$LOG_VERBOSE);
 
-				RSSUtils::check_feed_favicon($site_url, $feed);
+				self::check_feed_favicon($site_url, $feed);
 				$favicon_modified_new = @filemtime($favicon_file);
 
 				if ($favicon_modified_new > $favicon_modified)
@@ -551,7 +551,7 @@ class RSSUtils {
 
 			Debug::log("loading filters & labels...", Debug::$LOG_VERBOSE);
 
-			$filters = RSSUtils::load_filters($feed, $owner_uid);
+			$filters = self::load_filters($feed, $owner_uid);
 
 			if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) {
 				print_r($filters);
@@ -590,7 +590,7 @@ class RSSUtils {
 
 				$entry_guid = strip_tags($item->get_id());
 				if (!$entry_guid) $entry_guid = strip_tags($item->get_link());
-				if (!$entry_guid) $entry_guid = RSSUtils::make_guid_from_title($item->get_title());
+				if (!$entry_guid) $entry_guid = self::make_guid_from_title($item->get_title());
 
 				if (!$entry_guid) {
 					$pdo->commit();
@@ -682,7 +682,7 @@ class RSSUtils {
 						if (DB_TYPE == "mysql" && MYSQL_CHARSET != "UTF8MB4") {
 							for ($i = 0; $i < count($e_item); $i++) {
 								if (is_string($e_item[$i])) {
-									$e_item[$i] = RSSUtils::strip_utf8mb4($e_item[$i]);
+									$e_item[$i] = self::strip_utf8mb4($e_item[$i]);
 								}
 							}
 						}
@@ -713,7 +713,7 @@ class RSSUtils {
 				);
 
 				$entry_plugin_data = "";
-				$entry_current_hash = RSSUtils::calculate_article_hash($article, $pluginhost);
+				$entry_current_hash = self::calculate_article_hash($article, $pluginhost);
 
 				Debug::log("article hash: $entry_current_hash [stored=$entry_stored_hash]", Debug::$LOG_VERBOSE);
 
@@ -759,7 +759,7 @@ class RSSUtils {
 					foreach ($article as $k => $v) {
 						// i guess we'll have to take the risk of 4byte unicode labels & tags here
 						if (is_string($article[$k])) {
-							$article[$k] = RSSUtils::strip_utf8mb4($v);
+							$article[$k] = self::strip_utf8mb4($v);
 						}
 					}
 				}
@@ -769,7 +769,7 @@ class RSSUtils {
 				$matched_rules = [];
 				$matched_filters = [];
 
-				$article_filters = RSSUtils::get_article_filters($filters, $article["title"],
+				$article_filters = self::get_article_filters($filters, $article["title"],
 					$article["content"], $article["link"], $article["author"],
 					$article["tags"], $matched_rules, $matched_filters);
 
@@ -809,7 +809,7 @@ class RSSUtils {
 					}
 				}
 
-				$plugin_filter_names = RSSUtils::find_article_filters($article_filters, "plugin");
+				$plugin_filter_names = self::find_article_filters($article_filters, "plugin");
 				$plugin_filter_actions = $pluginhost->get_filter_actions();
 
 				if (count($plugin_filter_names) > 0) {
@@ -870,7 +870,7 @@ class RSSUtils {
 				Debug::log("force catchup: $entry_force_catchup", Debug::$LOG_VERBOSE);
 
 				if ($cache_images)
-					RSSUtils::cache_media($entry_content, $site_url);
+					self::cache_media($entry_content, $site_url);
 
 				$csth = $pdo->prepare("SELECT id FROM ttrss_entries
 					WHERE guid IN (?, ?, ?)");
@@ -931,13 +931,13 @@ class RSSUtils {
 					$ref_id = $row['id'];
 					$entry_ref_id = $ref_id;
 
-					if (RSSUtils::find_article_filter($article_filters, "filter")) {
+					if (self::find_article_filter($article_filters, "filter")) {
 						Debug::log("article is filtered out, nothing to do.", Debug::$LOG_VERBOSE);
 						$pdo->commit();
 						continue;
 					}
 
-					$score = RSSUtils::calculate_article_score($article_filters) + $entry_score_modifier;
+					$score = self::calculate_article_score($article_filters) + $entry_score_modifier;
 
 					Debug::log("initial score: $score [including plugin modifier: $entry_score_modifier]", Debug::$LOG_VERBOSE);
 
@@ -957,7 +957,7 @@ class RSSUtils {
 
 						Debug::log("user record not found, creating...", Debug::$LOG_VERBOSE);
 
-						if ($score >= -500 && !RSSUtils::find_article_filter($article_filters, 'catchup') && !$entry_force_catchup) {
+						if ($score >= -500 && !self::find_article_filter($article_filters, 'catchup') && !$entry_force_catchup) {
 							$unread = 1;
 							$last_read_qpart = null;
 						} else {
@@ -965,13 +965,13 @@ class RSSUtils {
 							$last_read_qpart = date("Y-m-d H:i"); // we can't use NOW() here because it gets quoted
 						}
 
-						if (RSSUtils::find_article_filter($article_filters, 'mark') || $score > 1000) {
+						if (self::find_article_filter($article_filters, 'mark') || $score > 1000) {
 							$marked = 1;
 						} else {
 							$marked = 0;
 						}
 
-						if (RSSUtils::find_article_filter($article_filters, 'publish')) {
+						if (self::find_article_filter($article_filters, 'publish')) {
 							$published = 1;
 						} else {
 							$published = 0;
@@ -1044,7 +1044,7 @@ class RSSUtils {
 
 					if ($mark_unread_on_update &&
 						!$entry_force_catchup &&
-						!RSSUtils::find_article_filter($article_filters, 'catchup')) {
+						!self::find_article_filter($article_filters, 'catchup')) {
 
 						Debug::log("article updated, marking unread as requested.", Debug::$LOG_VERBOSE);
 
@@ -1064,11 +1064,11 @@ class RSSUtils {
 
 				Debug::log("assigning labels [filters]...", Debug::$LOG_VERBOSE);
 
-				RSSUtils::assign_article_to_label_filters($entry_ref_id, $article_filters,
+				self::assign_article_to_label_filters($entry_ref_id, $article_filters,
 					$owner_uid, $article_labels);
 
 				if ($cache_images)
-					RSSUtils::cache_enclosures($enclosures, $site_url);
+					self::cache_enclosures($enclosures, $site_url);
 
 				if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) {
 					Debug::log("article enclosures:", Debug::$LOG_VERBOSE);
@@ -1281,15 +1281,15 @@ class RSSUtils {
 				foreach ($entries as $entry) {
 					foreach (array('src', 'poster') as $attr) {
 						if ($entry->hasAttribute($attr) && strpos($entry->getAttribute($attr), "data:") !== 0) {
-							RSSUtils::cache_media_url($cache, $entry->getAttribute($attr), $site_url);
+							self::cache_media_url($cache, $entry->getAttribute($attr), $site_url);
 						}
 					}
 
 					if ($entry->hasAttribute("srcset")) {
-						$matches = RSSUtils::decode_srcset($entry->getAttribute('srcset'));
+						$matches = self::decode_srcset($entry->getAttribute('srcset'));
 
 						for ($i = 0; $i < count($matches); $i++) {
-							RSSUtils::cache_media_url($cache, $matches[$i]["url"], $site_url);
+							self::cache_media_url($cache, $matches[$i]["url"], $site_url);
 						}
 					}
 				}
@@ -1492,7 +1492,7 @@ class RSSUtils {
 	static function assign_article_to_label_filters($id, $filters, $owner_uid, $article_labels) {
 		foreach ($filters as $f) {
 			if ($f["type"] == "label") {
-				if (!RSSUtils::labels_contains_caption($article_labels, $f["param"])) {
+				if (!self::labels_contains_caption($article_labels, $f["param"])) {
 					Labels::add_article($id, $f["param"], $owner_uid);
 				}
 			}
@@ -1523,13 +1523,13 @@ class RSSUtils {
 	static function housekeeping_common() {
 		DiskCache::expire();
 
-		RSSUtils::expire_lock_files();
-		RSSUtils::expire_error_log();
-		RSSUtils::expire_feed_archive();
-		RSSUtils::cleanup_feed_browser();
+		self::expire_lock_files();
+		self::expire_error_log();
+		self::expire_feed_archive();
+		self::cleanup_feed_browser();
 
 		Article::purge_orphans();
-		RSSUtils::cleanup_counters_cache();
+		self::cleanup_counters_cache();
 
 		PluginHost::getInstance()->run_hooks(PluginHost::HOOK_HOUSE_KEEPING, "hook_house_keeping", "");
 	}
@@ -1540,7 +1540,7 @@ class RSSUtils {
 		$icon_file = ICONS_DIR . "/$feed.ico";
 
 		if (!file_exists($icon_file)) {
-			$favicon_url = RSSUtils::get_favicon_url($site_url);
+			$favicon_url = self::get_favicon_url($site_url);
 
 			if ($favicon_url) {
 				// Limiting to "image" type misses those served with text/plain
diff --git a/classes/sanitizer.php b/classes/sanitizer.php
index 8e008ef85..9f3bfada0 100644
--- a/classes/sanitizer.php
+++ b/classes/sanitizer.php
@@ -124,7 +124,7 @@ class Sanitizer {
 
 		$entries = $xpath->query('//iframe');
 		foreach ($entries as $entry) {
-			if (!Sanitizer::iframe_whitelisted($entry)) {
+			if (!self::iframe_whitelisted($entry)) {
 				$entry->setAttribute('sandbox', 'allow-scripts');
 			} else {
 				if (is_prefix_https()) {
@@ -163,7 +163,7 @@ class Sanitizer {
 		}
 
 		$doc->removeChild($doc->firstChild); //remove doctype
-		$doc = Sanitizer::strip_harmful_tags($doc, $allowed_elements, $disallowed_attributes);
+		$doc = self::strip_harmful_tags($doc, $allowed_elements, $disallowed_attributes);
 
 		$entries = $xpath->query('//iframe');
 		foreach ($entries as $entry) {
diff --git a/classes/urlhelper.php b/classes/urlhelper.php
index a7d4ca809..29c81e760 100644
--- a/classes/urlhelper.php
+++ b/classes/urlhelper.php
@@ -22,10 +22,10 @@ class UrlHelper {
 		$rel_parts = parse_url($rel_url);
 
 		if ($rel_parts['host'] && $rel_parts['scheme']) {
-			return UrlHelper::validate($rel_url);
+			return self::validate($rel_url);
 		} else if (strpos($rel_url, "//") === 0) {
 			# protocol-relative URL (rare but they exist)
-			return UrlHelper::validate("https:" . $rel_url);
+			return self::validate("https:" . $rel_url);
 		} else if (strpos($rel_url, "magnet:") === 0) {
 			# allow magnet links
 			return $rel_url;
@@ -41,7 +41,7 @@ class UrlHelper {
 			$rel_parts['path'] = str_replace("/./", "/", $rel_parts['path']);
 			$rel_parts['path'] = str_replace("//", "/", $rel_parts['path']);
 
-			return UrlHelper::validate(UrlHelper::build_url($rel_parts));
+			return self::validate(self::build_url($rel_parts));
 		}
 	}
 
@@ -127,9 +127,9 @@ class UrlHelper {
 
 			foreach($headers as $header) {
 				if (stripos($header, 'Location:') === 0) {
-					$url = UrlHelper::rewrite_relative($url, trim(substr($header, strlen('Location:'))));
+					$url = self::rewrite_relative($url, trim(substr($header, strlen('Location:'))));
 
-					return UrlHelper::resolve_redirects($url, $timeout, $nest + 1);
+					return self::resolve_redirects($url, $timeout, $nest + 1);
 				}
 			}
 
@@ -207,7 +207,7 @@ class UrlHelper {
 		$url = ltrim($url, ' ');
 		$url = str_replace(' ', '%20', $url);
 
-		$url = UrlHelper::validate($url, true);
+		$url = self::validate($url, true);
 
 		if (!$url) {
 			$fetch_last_error = "Requested URL failed extended validation.";
@@ -322,7 +322,7 @@ class UrlHelper {
 
 			$fetch_effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
 
-			if (!UrlHelper::validate($fetch_effective_url, true)) {
+			if (!self::validate($fetch_effective_url, true)) {
 				$fetch_last_error = "URL received after redirection failed extended validation.";
 
 				return false;
@@ -413,9 +413,9 @@ class UrlHelper {
 
 			$old_error = error_get_last();
 
-			$fetch_effective_url = UrlHelper::resolve_redirects($url, $timeout ? $timeout : FILE_FETCH_CONNECT_TIMEOUT);
+			$fetch_effective_url = self::resolve_redirects($url, $timeout ? $timeout : FILE_FETCH_CONNECT_TIMEOUT);
 
-			if (!UrlHelper::validate($fetch_effective_url, true)) {
+			if (!self::validate($fetch_effective_url, true)) {
 				$fetch_last_error = "URL received after redirection failed extended validation.";
 
 				return false;
diff --git a/classes/userhelper.php b/classes/userhelper.php
index 2ae1f7b83..fd0b0ac57 100644
--- a/classes/userhelper.php
+++ b/classes/userhelper.php
@@ -91,18 +91,18 @@ class UserHelper {
 
 		if (SINGLE_USER_MODE) {
 			@session_start();
-			UserHelper::authenticate("admin", null);
+			self::authenticate("admin", null);
 			startup_gettext();
-			UserHelper::load_user_plugins($_SESSION["uid"]);
+			self::load_user_plugins($_SESSION["uid"]);
 		} else {
 			if (!validate_session()) $_SESSION["uid"] = false;
 
 			if (!$_SESSION["uid"]) {
 
-				if (AUTH_AUTO_LOGIN && UserHelper::authenticate(null, null)) {
+				if (AUTH_AUTO_LOGIN && self::authenticate(null, null)) {
 					$_SESSION["ref_schema_version"] = get_schema_version(true);
 				} else {
-					 UserHelper::authenticate(null, null, true);
+					 self::authenticate(null, null, true);
 				}
 
 				if (!$_SESSION["uid"]) {
@@ -122,7 +122,7 @@ class UserHelper {
 
 			if ($_SESSION["uid"]) {
 				startup_gettext();
-				UserHelper::load_user_plugins($_SESSION["uid"]);
+				self::load_user_plugins($_SESSION["uid"]);
 			}
 		}
 	}
-- 
GitLab