]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Use only stored scores and pre-cache them
authorEvan Prodromou <evan@status.net>
Wed, 21 Mar 2012 17:21:14 +0000 (13:21 -0400)
committerEvan Prodromou <evan@status.net>
Wed, 21 Mar 2012 17:21:14 +0000 (13:21 -0400)
ActivitySpamPlugin.php

index d80f19cf31a4ff39f431a3094192f1a9784d8b52..a905e72ccaf34605c03a9bf7ac0b8a6b6c3c83c9 100644 (file)
@@ -282,14 +282,15 @@ class ActivitySpamPlugin extends Plugin
         return true;
     }
 
+
     function onEndNoticeInScope($notice, $profile, &$bResult)
     {
         if ($this->hideSpam) {
             if ($bResult) {
 
-                $score = $this->getScore($notice);
+                $score = Spam_score::staticGet('notice_id', $notice->id);
 
-                if ($score->is_spam) {
+                if (!empty($score) && $score->is_spam) {
                     if (empty($profile) ||
                         ($profile->id !== $notice->profile_id &&
                          !$profile->hasRight(self::REVIEWSPAM))) {
@@ -301,4 +302,17 @@ class ActivitySpamPlugin extends Plugin
 
         return true;
     }
+
+    /**
+     * Pre-cache our spam scores if needed.
+     */
+    function onEndNoticeListPrefill(&$notices, &$profiles, $avatarSize) {
+        if ($this->hideSpam) {
+            foreach ($notices as $notice) {
+                $ids[] = $notice->id;
+            }
+            Memcached_DataObject::multiGet('Spam_score', 'notice_id', $ids);
+        }
+        return true;
+    }
 }