]> git.mxchange.org Git - friendica.git/commitdiff
Removed unused tag entries
authorMichael <heluecht@pirati.ca>
Sun, 24 Apr 2022 15:27:20 +0000 (15:27 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 24 Apr 2022 15:27:20 +0000 (15:27 +0000)
src/Model/Tag.php
src/Worker/Cron.php
src/Worker/RemoveUnusedTags.php [new file with mode: 0644]

index 729ef0dd2bbeff6133d973c554e230ca688c2275..0ea19f55d9e11f5e8bc0f11585fd5f287e6480bf 100644 (file)
@@ -201,7 +201,7 @@ class Tag
                        }
                }
 
-               if (!empty($target) && !empty($tag['url']) && empty($tag['type'])) {
+               if (!empty($target) && !empty($tag['url']) && ($tag['type'] != $target)) {
                        DBA::update('tag', ['type' => $target], ['url' => $url]);
                }
 
index 439024a4f61837b7a60eaf8514337d4c27ff040e..0cf5e263232e9039193b58146ce29c27a28b50ef 100644 (file)
@@ -112,6 +112,8 @@ class Cron
 
                        Worker::add(PRIORITY_LOW, 'ExpireConversations');
 
+                       Worker::add(PRIORITY_LOW, 'RemoveUnusedTags');
+
                        Worker::add(PRIORITY_LOW, 'RemoveUnusedContacts');
 
                        Worker::add(PRIORITY_LOW, 'RemoveUnusedAvatars');
diff --git a/src/Worker/RemoveUnusedTags.php b/src/Worker/RemoveUnusedTags.php
new file mode 100644 (file)
index 0000000..90ebd67
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+/**
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace Friendica\Worker;
+
+use Friendica\Database\DBA;
+
+class RemoveUnusedTags
+{
+       /**
+        * Delete tag entries that aren't used anymore
+        */
+       public static function execute()
+       {
+               DBA::delete('tag', ["NOT `id` IN (SELECT `tid` FROM `post-category`) AND NOT `id` IN (SELECT `tid` FROM `post-tag`)"]);
+       }
+}