Browse Source

move label stuff to Labels class
fix some unresolved functions

Andrew Dolgov 2 years ago
parent
commit
7c9b5a3fe4

+ 6 - 6
classes/api.php

@@ -458,14 +458,14 @@ class API extends Handler {
 
 			$checked = false;
 			foreach ($article_labels as $al) {
-				if (feed_to_label_id($al[0]) == $line['id']) {
+				if (Labels::feed_to_label_id($al[0]) == $line['id']) {
 					$checked = true;
 					break;
 				}
 			}
 
 			array_push($rv, array(
-				"id" => (int)label_to_feed_id($line['id']),
+				"id" => (int)Labels::label_to_feed_id($line['id']),
 				"caption" => $line['caption'],
 				"fg_color" => $line['fg_color'],
 				"bg_color" => $line['bg_color'],
@@ -481,8 +481,8 @@ class API extends Handler {
 		$label_id = (int) $this->dbh->escape_string($_REQUEST['label_id']);
 		$assign = (bool) ($this->dbh->escape_string($_REQUEST['assign']) == "true");
 
-		$label = $this->dbh->escape_string(label_find_caption(
-			feed_to_label_id($label_id), $_SESSION["uid"]));
+		$label = $this->dbh->escape_string(Labels::find_caption(
+			Labels::feed_to_label_id($label_id), $_SESSION["uid"]));
 
 		$num_updated = 0;
 
@@ -491,9 +491,9 @@ class API extends Handler {
 			foreach ($article_ids as $id) {
 
 				if ($assign)
-					label_add_article($id, $label, $_SESSION["uid"]);
+					Labels::add_article($id, $label, $_SESSION["uid"]);
 				else
-					label_remove_article($id, $label, $_SESSION["uid"]);
+					Labels::remove_article($id, $label, $_SESSION["uid"]);
 
 				++$num_updated;
 

+ 8 - 8
classes/article.php

@@ -154,7 +154,7 @@ class Article extends Handler_Protected {
 
 			if (count($labels) != 0) {
 				foreach ($labels as $label) {
-					label_add_article($ref_id, trim($label), $owner_uid);
+					Labels::add_article($ref_id, trim($label), $owner_uid);
 				}
 			}
 
@@ -179,7 +179,7 @@ class Article extends Handler_Protected {
 
 				if (count($labels) != 0) {
 					foreach ($labels as $label) {
-						label_add_article($ref_id, trim($label), $owner_uid);
+						Labels::add_article($ref_id, trim($label), $owner_uid);
 					}
 				}
 
@@ -344,7 +344,7 @@ class Article extends Handler_Protected {
 		$ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
 		$label_id = $this->dbh->escape_string($_REQUEST["lid"]);
 
-		$label = $this->dbh->escape_string(label_find_caption($label_id,
+		$label = $this->dbh->escape_string(Labels::find_caption($label_id,
 		$_SESSION["uid"]));
 
 		$reply["info-for-headlines"] = array();
@@ -354,9 +354,9 @@ class Article extends Handler_Protected {
 			foreach ($ids as $id) {
 
 				if ($assign)
-					label_add_article($id, $label, $_SESSION["uid"]);
+					Labels::add_article($id, $label, $_SESSION["uid"]);
 				else
-					label_remove_article($id, $label, $_SESSION["uid"]);
+					Labels::remove_article($id, $label, $_SESSION["uid"]);
 
 				$labels = $this->get_article_labels($id, $_SESSION["uid"]);
 
@@ -955,16 +955,16 @@ class Article extends Handler_Protected {
 			ORDER BY caption");
 
 		while ($line = db_fetch_assoc($result)) {
-			$rk = array(label_to_feed_id($line["label_id"]),
+			$rk = array(Labels::label_to_feed_id($line["label_id"]),
 				$line["caption"], $line["fg_color"],
 				$line["bg_color"]);
 			array_push($rv, $rk);
 		}
 
 		if (count($rv) > 0)
-			label_update_cache($owner_uid, $id, $rv);
+			Labels::update_cache($owner_uid, $id, $rv);
 		else
-			label_update_cache($owner_uid, $id, array("no-labels" => 1));
+			Labels::update_cache($owner_uid, $id, array("no-labels" => 1));
 
 		return $rv;
 	}

+ 5 - 5
classes/feeds.php

@@ -870,7 +870,7 @@ class Feeds extends Handler_Protected {
 		$result = false;
 
 		if ($feed < LABEL_BASE_INDEX) {
-			$label_feed = feed_to_label_id($feed);
+			$label_feed = Labels::feed_to_label_id($feed);
 			$result = $this->dbh->query("SELECT id FROM ttrss_labels2 WHERE
 							id = '$label_feed' AND owner_uid = " . $_SESSION['uid']);
 		} else if (!$cat_view && is_numeric($feed) && $feed > 0) {
@@ -1354,7 +1354,7 @@ class Feeds extends Handler_Protected {
 
 			} else if ($feed < LABEL_BASE_INDEX) { // label
 
-				$label_id = feed_to_label_id($feed);
+				$label_id = Labels::feed_to_label_id($feed);
 
 				db_query("UPDATE ttrss_user_entries
 					SET unread = false, last_read = NOW() WHERE ref_id IN
@@ -1435,7 +1435,7 @@ class Feeds extends Handler_Protected {
 
 		} else if ($feed < LABEL_BASE_INDEX) {
 
-			$label_id = feed_to_label_id($feed);
+			$label_id = Labels::feed_to_label_id($feed);
 
 			return Feeds::getLabelUnread($label_id, $owner_uid);
 
@@ -1608,7 +1608,7 @@ class Feeds extends Handler_Protected {
 		} else if ($id == -6) {
 			return __("Recently read");
 		} else if ($id < LABEL_BASE_INDEX) {
-			$label_id = feed_to_label_id($id);
+			$label_id = Labels::feed_to_label_id($id);
 			$result = db_query("SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'");
 			if (db_num_rows($result) == 1) {
 				return db_fetch_result($result, 0, "caption");
@@ -1931,7 +1931,7 @@ class Feeds extends Handler_Protected {
 			$query_strategy_part = "true";
 			$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
 		} else if ($feed <= LABEL_BASE_INDEX) { // labels
-			$label_id = feed_to_label_id($feed);
+			$label_id = Labels::feed_to_label_id($feed);
 
 			$query_strategy_part = "label_id = '$label_id' AND
 					ttrss_labels2.id = ttrss_user_labels2.label_id AND

+ 20 - 19
include/labels.php

@@ -1,13 +1,15 @@
 <?php
-	function label_to_feed_id($label) {
+class Labels
+{
+	static function label_to_feed_id($label) {
 		return LABEL_BASE_INDEX - 1 - abs($label);
 	}
 
-	function feed_to_label_id($feed) {
+	static function feed_to_label_id($feed) {
 		return LABEL_BASE_INDEX - 1 + abs($feed);
 	}
 
-	function label_find_id($label, $owner_uid) {
+	static function find_id($label, $owner_uid) {
 		$result = db_query(
 			"SELECT id FROM ttrss_labels2 WHERE caption = '$label'
 				AND owner_uid = '$owner_uid' LIMIT 1");
@@ -19,7 +21,7 @@
 		}
 	}
 
-	function label_find_caption($label, $owner_uid) {
+	static function find_caption($label, $owner_uid) {
 		$result = db_query(
 			"SELECT caption FROM ttrss_labels2 WHERE id = '$label'
 				AND owner_uid = '$owner_uid' LIMIT 1");
@@ -31,7 +33,7 @@
 		}
 	}
 
-	function get_all_labels($owner_uid) {
+	static function get_all_labels($owner_uid)	{
 		$rv = array();
 
 		$result = db_query("SELECT fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
@@ -43,13 +45,13 @@
 		return $rv;
 	}
 
-	function label_update_cache($owner_uid, $id, $labels = false, $force = false) {
+	static function update_cache($owner_uid, $id, $labels = false, $force = false) {
 
 		if ($force)
-			label_clear_cache($id);
+			Labels::clear_cache($id);
 
 		if (!$labels)
-			$labels = get_article_labels($id);
+			$labels = Article::get_article_labels($id);
 
 		$labels = db_escape_string(json_encode($labels));
 
@@ -58,16 +60,16 @@
 
 	}
 
-	function label_clear_cache($id) {
+	static function clear_cache($id)	{
 
 		db_query("UPDATE ttrss_user_entries SET
 			label_cache = '' WHERE ref_id = '$id'");
 
 	}
 
-	function label_remove_article($id, $label, $owner_uid) {
+	static function remove_article($id, $label, $owner_uid) {
 
-		$label_id = label_find_id($label, $owner_uid);
+		$label_id = Labels::find_id($label, $owner_uid);
 
 		if (!$label_id) return;
 
@@ -77,12 +79,12 @@
 				label_id = '$label_id' AND
 				article_id = '$id'");
 
-		label_clear_cache($id);
+		Labels::clear_cache($id);
 	}
 
-	function label_add_article($id, $label, $owner_uid) {
+	static function add_article($id, $label, $owner_uid)	{
 
-		$label_id = label_find_id($label, $owner_uid);
+		$label_id = Labels::find_id($label, $owner_uid);
 
 		if (!$label_id) return;
 
@@ -100,11 +102,11 @@
 				(label_id, article_id) VALUES ('$label_id', '$id')");
 		}
 
-		label_clear_cache($id);
+		Labels::clear_cache($id);
 
 	}
 
-	function label_remove($id, $owner_uid) {
+	static function remove($id, $owner_uid) {
 		if (!$owner_uid) $owner_uid = $_SESSION["uid"];
 
 		db_query("BEGIN");
@@ -136,14 +138,12 @@
 		db_query("COMMIT");
 	}
 
-	function label_create($caption, $fg_color = '', $bg_color = '', $owner_uid = false) {
+	static function create($caption, $fg_color = '', $bg_color = '', $owner_uid = false)	{
 
 		if (!$owner_uid) $owner_uid = $_SESSION['uid'];
 
 		db_query("BEGIN");
 
-		$result = false;
-
 		$result = db_query("SELECT id FROM ttrss_labels2
 			WHERE caption = '$caption' AND owner_uid = $owner_uid");
 
@@ -159,3 +159,4 @@
 
 		return $result;
 	}
+}

+ 2 - 2
classes/opml.php

@@ -292,9 +292,9 @@ class Opml extends Handler_Protected {
 			$fg_color = $this->dbh->escape_string($attrs->getNamedItem('label-fg-color')->nodeValue);
 			$bg_color = $this->dbh->escape_string($attrs->getNamedItem('label-bg-color')->nodeValue);
 
-			if (!label_find_id($label_name, $_SESSION['uid'])) {
+			if (!Labels::find_id($label_name, $_SESSION['uid'])) {
 				$this->opml_notice(T_sprintf("Adding label %s", htmlspecialchars($label_name)));
-				label_create($label_name, $fg_color, $bg_color, $owner_uid);
+				Labels::create($label_name, $fg_color, $bg_color, $owner_uid);
 			} else {
 				$this->opml_notice(T_sprintf("Duplicate label: %s", htmlspecialchars($label_name)));
 			}

+ 2 - 2
classes/pref/feeds.php

@@ -171,7 +171,7 @@ class Pref_Feeds extends Handler_Protected {
 
 				while ($line = $this->dbh->fetch_assoc($result)) {
 
-					$label_id = label_to_feed_id($line['id']);
+					$label_id = Labels::label_to_feed_id($line['id']);
 
 					$feed = $this->feedlist_init_feed($label_id, false, 0);
 
@@ -1806,7 +1806,7 @@ class Pref_Feeds extends Handler_Protected {
 			CCache::remove($id, $owner_uid);
 
 		} else {
-			label_remove(feed_to_label_id($id), $owner_uid);
+			Labels::remove(Labels::feed_to_label_id($id), $owner_uid);
 			//CCache::remove($id, $owner_uid); don't think labels are cached
 		}
 	}

+ 4 - 4
classes/pref/labels.php

@@ -136,7 +136,7 @@ class Pref_Labels extends Handler_Protected {
 					AND owner_uid = " . $_SESSION["uid"]);
 			}
 
-			$caption = $this->dbh->escape_string(label_find_caption($id, $_SESSION["uid"]));
+			$caption = $this->dbh->escape_string(Labels::find_caption($id, $_SESSION["uid"]));
 
 			/* Remove cached data */
 
@@ -156,7 +156,7 @@ class Pref_Labels extends Handler_Protected {
 				fg_color = '', bg_color = '' WHERE id = '$id'
 				AND owner_uid = " . $_SESSION["uid"]);
 
-			$caption = $this->dbh->escape_string(label_find_caption($id, $_SESSION["uid"]));
+			$caption = $this->dbh->escape_string(Labels::find_caption($id, $_SESSION["uid"]));
 
 			/* Remove cached data */
 
@@ -216,7 +216,7 @@ class Pref_Labels extends Handler_Protected {
 		$ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
 
 		foreach ($ids as $id) {
-			label_remove($id, $_SESSION["uid"]);
+			Labels::remove($id, $_SESSION["uid"]);
 		}
 
 	}
@@ -227,7 +227,7 @@ class Pref_Labels extends Handler_Protected {
 
 		if ($caption) {
 
-			if (label_create($caption)) {
+			if (Labels::create($caption)) {
 				if (!$output) {
 					print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption));
 				}

+ 1 - 2
include/functions.php

@@ -134,7 +134,6 @@
 
 	require_once 'db-prefs.php';
 	require_once 'version.php';
-	require_once 'labels.php';
 	require_once 'controls.php';
 
 	define('SELF_USER_AGENT', 'Tiny Tiny RSS/' . VERSION . ' (http://tt-rss.org/)');
@@ -1169,7 +1168,7 @@
 
 		while ($line = db_fetch_assoc($result)) {
 
-			$id = label_to_feed_id($line["id"]);
+			$id = Labels::label_to_feed_id($line["id"]);
 
 			$cv = array("id" => $id,
 				"counter" => (int) $line["unread"],

+ 2 - 2
include/rssfuncs.php

@@ -1032,7 +1032,7 @@
 				_debug("assigning labels [other]...", $debug_enabled);
 
 				foreach ($article_labels as $label) {
-					label_add_article($entry_ref_id, $label[1], $owner_uid);
+					Labels::add_article($entry_ref_id, $label[1], $owner_uid);
 				}
 
 				_debug("assigning labels [filters]...", $debug_enabled);
@@ -1468,7 +1468,7 @@
 		foreach ($filters as $f) {
 			if ($f["type"] == "label") {
 				if (!labels_contains_caption($article_labels, $f["param"])) {
-					label_add_article($id, $f["param"], $owner_uid);
+					Labels::add_article($id, $f["param"], $owner_uid);
 				}
 			}
 		}

+ 1 - 1
plugins/auto_assign_labels/init.php

@@ -21,7 +21,7 @@ class Auto_Assign_Labels extends Plugin {
 		$result = db_query("SELECT id, fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
 
 		while ($line = db_fetch_assoc($result)) {
-			array_push($rv, array(label_to_feed_id($line["id"]),
+			array_push($rv, array(Labels::label_to_feed_id($line["id"]),
 				$line["caption"], $line["fg_color"], $line["bg_color"]));
 		}
 

+ 2 - 2
plugins/import_export/init.php

@@ -378,10 +378,10 @@ class Import_Export extends Plugin implements IHandler {
 								if (is_array($label_cache) && $label_cache["no-labels"] != 1) {
 									foreach ($label_cache as $label) {
 
-										label_create($label[1],
+										Labels::create($label[1],
 											$label[2], $label[3], $owner_uid);
 
-										label_add_article($ref_id, $label[1], $owner_uid);
+										Labels::add_article($ref_id, $label[1], $owner_uid);
 
 									}
 								}

+ 1 - 1
plugins/note/init.php

@@ -62,7 +62,7 @@ class Note extends Plugin {
 		db_query("UPDATE ttrss_user_entries SET note = '$note'
 			WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
 
-		$formatted_note = format_article_note($id, $note);
+		$formatted_note = Article::format_article_note($id, $note);
 
 		print json_encode(array("note" => $formatted_note,
 				"raw_length" => mb_strlen($note)));

+ 3 - 3
tests/ApiTest.php

@@ -211,7 +211,7 @@ final class ApiTest extends TestCase {
 	public function testLabels() {
 		// create label
 
-		label_create('Test', '', '', 1);
+		Labels::create('Test', '', '', 1);
 
 		$this->testLogin();
 		$ret = $this->apiCall([], "getLabels");
@@ -219,7 +219,7 @@ final class ApiTest extends TestCase {
 
 		$this->assertEquals('Test', $ret['content'][0]['caption']);
 		$label_feed_id = $ret['content'][0]['id'];
-		$label_id = feed_to_label_id($label_feed_id);
+		$label_id = Labels::feed_to_label_id($label_feed_id);
 
 		$this->assertLessThan(0, $label_feed_id);
 		$this->assertGreaterThan(0, $label_id);
@@ -246,7 +246,7 @@ final class ApiTest extends TestCase {
 
 		// clean up and check
 
-		label_remove($label_id, 1);
+		Labels::remove($label_id, 1);
 
 		$ret = $this->apiCall([], "getLabels");
 		$this->assertEmpty($ret['content']);