]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Keep Twitter gateway notices from leaking thru MySQL notice search
authorZach Copley <zach@controlyourself.ca>
Sat, 20 Jun 2009 03:21:57 +0000 (20:21 -0700)
committerZach Copley <zach@controlyourself.ca>
Sat, 20 Jun 2009 03:21:57 +0000 (20:21 -0700)
lib/search_engines.php

index 7b9dbb6182543e9e14969f7564c336cddc867350..0f405afbd311405d25b9749517436ef189131676 100644 (file)
@@ -118,12 +118,20 @@ class MySQLSearch extends SearchEngine
             }
             return true;
         } else if ('identica_notices' === $this->table) {
-             $this->target->whereAdd('MATCH(content) ' .
-                                     'AGAINST (\''.addslashes($q).'\' IN BOOLEAN MODE)');
+
+            // Don't show imported notices
+            $this->target->whereAdd('notice.is_local != ' . NOTICE_GATEWAY);
+
             if (strtolower($q) != $q) {
+                $this->target->whereAdd("( MATCH(content) AGAINST ('" . addslashes($q) .
+                    "' IN BOOLEAN MODE)) OR ( MATCH(content) " .
+                    "AGAINST ('"  . addslashes(strtolower($q)) .
+                    "' IN BOOLEAN MODE))");
+            } else {
                 $this->target->whereAdd('MATCH(content) ' .
-                                        'AGAINST (\''.addslashes(strtolower($q)).'\' IN BOOLEAN MODE)', 'OR');
+                                         'AGAINST (\''.addslashes($q).'\' IN BOOLEAN MODE)');
             }
+
             return true;
         } else {
             throw new ServerException('Unknown table: ' . $this->table);
@@ -138,6 +146,9 @@ class PGSearch extends SearchEngine
         if ('identica_people' === $this->table) {
             return $this->target->whereAdd('textsearch @@ plainto_tsquery(\''.addslashes($q).'\')');
         } else if ('identica_notices' === $this->table) {
+
+            // XXX: We need to filter out gateway notices (notice.is_local = -2) --Zach
+
             return $this->target->whereAdd('to_tsvector(\'english\', content) @@ plainto_tsquery(\''.addslashes($q).'\')');
         } else {
             throw new ServerException('Unknown table: ' . $this->table);