]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
only blow public timeline cache if notice is in it
authorEvan Prodromou <evan@status.net>
Thu, 3 Feb 2011 18:58:56 +0000 (13:58 -0500)
committerEvan Prodromou <evan@status.net>
Thu, 3 Feb 2011 18:58:56 +0000 (13:58 -0500)
classes/Notice.php

index e9ea479e14c4d0e06b5fa4bf5ecbd031bd462916..2d13828f1ff5d1e1a5c9a4e416ba2fe998011794 100644 (file)
@@ -446,7 +446,10 @@ class Notice extends Memcached_DataObject
     function blowOnInsert($conversation = false)
     {
         self::blow('profile:notice_ids:%d', $this->profile_id);
-        self::blow('public');
+
+        if ($this->isPublic()) {
+            self::blow('public');
+        }
 
         // XXX: Before we were blowing the casche only if the notice id
         // was not the root of the conversation.  What to do now?
@@ -481,7 +484,10 @@ class Notice extends Memcached_DataObject
         $this->blowOnInsert();
 
         self::blow('profile:notice_ids:%d;last', $this->profile_id);
-        self::blow('public;last');
+
+        if ($this->isPublic()) {
+            self::blow('public;last');
+        }
     }
 
     /** save all urls in the notice to the db
@@ -2107,4 +2113,14 @@ class Notice extends Memcached_DataObject
             $obj->whereAdd($max);
         }
     }
+
+    function isPublic()
+    {
+        if (common_config('public', 'localonly')) {
+            return ($this->is_local == Notice::LOCAL_PUBLIC);
+        } else {
+            return (($this->is_local != Notice::LOCAL_NONPUBLIC) &&
+                    ($this->is_local != Notice::GATEWAY));
+        }
+    }
 }