From ec718ea29412b3482ec4543152b021b75e0f36f4 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 20 Feb 2025 23:03:27 -0500 Subject: [PATCH] [tumblr] Skip empty tags when saving user-defined tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Skip empty tags when fetching them ↪ Empty tags were triggering a Tumblr API error - Address https://github.com/friendica/friendica/issues/14646#issuecomment-2628090487 - Using log output from https://github.com/friendica/friendica/issues/14646#issuecomment-2665000962 --- tumblr/tumblr.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php index f2e2d78d..4415e2de 100644 --- a/tumblr/tumblr.php +++ b/tumblr/tumblr.php @@ -391,12 +391,17 @@ function tumblr_settings_post(array &$b) DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'tumblr', 'import', intval($_POST['tumblr_import'])); $max_tags = DI::config()->get('tumblr', 'max_tags') ?? TUMBLR_DEFAULT_MAXIMUM_TAGS; - $tags = []; - foreach (explode(',', $_POST['tags']) as $tag) { - if (count($tags) < $max_tags) { - $tags[] = trim($tag, ' #'); - } - } + + $tags = array_slice( + array_filter( + array_map( + function($tag) { return trim($tag, ' #');}, + explode(',', $_POST['tags']) ?: [] + ) + ), + 0, + $max_tags, + ); DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'tumblr', 'tags', $tags); } @@ -742,6 +747,11 @@ function tumblr_fetch_tags(int $uid, int $last_poll) } foreach (DI::pConfig()->get($uid, 'tumblr', 'tags') ?? [] as $tag) { + // Tumblr will return an error for queries on empty tag + if (!$tag) { + continue; + } + $data = tumblr_get($uid, 'tagged', ['tag' => $tag]); if (!is_array($data->response)) {