From f71a669b7dc9e2048cfea02f39ab4ef8cde4178a Mon Sep 17 00:00:00 2001
From: Andrew Dolgov <noreply@fakecake.org>
Date: Mon, 27 Oct 2014 22:07:20 +0300
Subject: [PATCH] api: handle uncached labels the way main headlines function
 does it

---
 classes/api.php | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/classes/api.php b/classes/api.php
index 97f17cc74..730e20ab9 100644
--- a/classes/api.php
+++ b/classes/api.php
@@ -675,7 +675,22 @@ class API extends Handler {
 					($line["unread"] != "t" && $line["unread"] != "1"));
 
 				$tags = explode(",", $line["tag_cache"]);
-				$labels = json_decode($line["label_cache"], true);
+
+				$label_cache = $line["label_cache"];
+				$labels = false;
+
+				if ($label_cache) {
+					$label_cache = json_decode($label_cache, true);
+
+					if ($label_cache) {
+						if ($label_cache["no-labels"] == 1)
+							$labels = array();
+						else
+							$labels = $label_cache;
+					}
+				}
+
+				if (!is_array($labels)) $labels = get_article_labels($line["id"]);
 
 				//if (!$tags) $tags = get_article_tags($line["id"]);
 				//if (!$labels) $labels = get_article_labels($line["id"]);
-- 
GitLab