]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
always distribute to inbox of author immediately
authorEvan Prodromou <evan@status.net>
Thu, 18 Feb 2010 12:11:20 +0000 (07:11 -0500)
committerEvan Prodromou <evan@status.net>
Thu, 18 Feb 2010 12:11:20 +0000 (07:11 -0500)
classes/Notice.php

index b0edb6de60053500ec34c01fbf686a4f8da64cf4..7e2b8b4a69e91f7a432a909a09ff020a33ee3be4 100644 (file)
@@ -681,7 +681,20 @@ class Notice extends Memcached_DataObject
     {
         $ni = $this->whoGets($groups, $recipients);
 
-        Inbox::bulkInsert($this->id, array_keys($ni));
+        $ids = array_keys($ni);
+
+        // We remove the author (if they're a local user),
+        // since we'll have already done this in distribute()
+
+        $i = array_search($this->profile_id, $ids);
+
+        if ($i !== false) {
+            unset($ids[$i]);
+        }
+
+        // Bulk insert
+
+        Inbox::bulkInsert($this->id, $ids);
 
         return;
     }
@@ -1487,6 +1500,14 @@ class Notice extends Memcached_DataObject
 
     function distribute()
     {
+        // We always insert for the author so they don't
+        // have to wait
+
+        $user = User::staticGet('id', $this->profile_id);
+        if (!empty($user)) {
+            Inbox::insertNotice($user->id, $this->id);
+        }
+
         if (common_config('queue', 'inboxes')) {
             // If there's a failure, we want to _force_
             // distribution at this point.