]> git.mxchange.org Git - friendica.git/commitdiff
Issue 9584: Only search posts from federated networks
authorMichael <heluecht@pirati.ca>
Sat, 12 Dec 2020 19:55:47 +0000 (19:55 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 12 Dec 2020 19:55:47 +0000 (19:55 +0000)
src/Model/ItemContent.php
src/Model/Tag.php
src/Module/Search/Index.php

index 5268c49e953a6fa7b52bc4f7218bc2ddf27aea79..ad402ceceb6e245681f53dc8dab38c36eafade62 100644 (file)
@@ -42,7 +42,9 @@ class ItemContent
        public static function getURIIdListBySearch(string $search, int $uid = 0, int $start = 0, int $limit = 100, int $last_uriid = 0)
        {
                $condition = ["`uri-id` IN (SELECT `uri-id` FROM `item-content` WHERE MATCH (`title`, `content-warning`, `body`) AGAINST (? IN BOOLEAN MODE))
-                       AND (NOT `private` OR (`private` AND `uid` = ?))", $search, $uid];
+                       AND (NOT `private` OR (`private` AND `uid` = ?))
+                       AND `uri-id` IN (SELECT `uri-id` FROM `item` WHERE `network` IN (?, ?, ?, ?))",
+                       $search, $uid, Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS];
 
                if (!empty($last_uriid)) {
                        $condition = DBA::mergeConditions($condition, ["`uri-id` < ?", $last_uriid]);
@@ -68,7 +70,9 @@ class ItemContent
        public static function countBySearch(string $search, int $uid = 0)
        {
                $condition = ["`uri-id` IN (SELECT `uri-id` FROM `item-content` WHERE MATCH (`title`, `content-warning`, `body`) AGAINST (? IN BOOLEAN MODE))
-                       AND (NOT `private` OR (`private` AND `uid` = ?))", $search, $uid];
+                       AND (NOT `private` OR (`private` AND `uid` = ?))
+                       AND `uri-id` IN (SELECT `uri-id` FROM `item` WHERE `network` IN (?, ?, ?, ?))",
+                       $search, $uid, Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS];
                return DBA::count('item', $condition);
        }
 
index 2bdbbc8aca1351400a4ffd3dbba330af29fdab34..fb7f05ad7fb5983d14ae6ea09f924eb3d704504a 100644 (file)
@@ -24,6 +24,7 @@ namespace Friendica\Model;
 use Friendica\Content\Text\BBCode;
 use Friendica\Core\Cache\Duration;
 use Friendica\Core\Logger;
+use Friendica\Core\Protocol;
 use Friendica\Core\System;
 use Friendica\Database\Database;
 use Friendica\Database\DBA;
@@ -450,7 +451,9 @@ class Tag
         */
        public static function countByTag(string $search, int $uid = 0)
        {
-               $condition = ["`name` = ? AND (NOT `private` OR (`private` AND `uid` = ?))", $search, $uid];
+               $condition = ["`name` = ? AND (NOT `private` OR (`private` AND `uid` = ?))
+                       AND `uri-id` IN (SELECT `uri-id` FROM `item` WHERE `network` IN (?, ?, ?, ?))",
+                       $search, $uid, Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS];
                $params = ['group_by' => ['uri-id']];
 
                return DBA::count('tag-search-view', $condition, $params);
@@ -468,7 +471,9 @@ class Tag
         */
        public static function getURIIdListByTag(string $search, int $uid = 0, int $start = 0, int $limit = 100, int $last_uriid = 0)
        {
-               $condition = ["`name` = ? AND (NOT `private` OR (`private` AND `uid` = ?))", $search, $uid];
+               $condition = ["`name` = ? AND (NOT `private` OR (`private` AND `uid` = ?))
+                       AND `uri-id` IN (SELECT `uri-id` FROM `item` WHERE `network` IN (?, ?, ?, ?))",
+                       $search, $uid, Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS];
 
                if (!empty($last_uriid)) {
                        $condition = DBA::mergeConditions($condition, ["`uri-id` < ?", $last_uriid]);
index 5f776577e0825380a00e46fc7d8b6c3dbfbd7fcd..67534a61abf89520bc71fca1b967ae4a7e14afa2 100644 (file)
@@ -175,7 +175,9 @@ class Index extends BaseSearch
                }
 
                if (empty($items)) {
-                       notice(DI::l10n()->t('No results.'));
+                       if (empty($last_uriid)) {
+                               notice(DI::l10n()->t('No results.'));
+                       }
                        return $o;
                }