]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
send a salmon slap to mentioned person when we reply to a notice
authorEvan Prodromou <evan@status.net>
Wed, 1 Sep 2010 18:35:43 +0000 (14:35 -0400)
committerEvan Prodromou <evan@status.net>
Wed, 1 Sep 2010 18:35:43 +0000 (14:35 -0400)
plugins/OStatus/actions/usersalmon.php
plugins/OStatus/lib/ostatusqueuehandler.php

index 641e131abc1d5c32e9894c8f2c7e515b59f6c6bf..54715cd6575a8a681c3a971157658d23631da0ee 100644 (file)
@@ -71,6 +71,7 @@ class UsersalmonAction extends SalmonAction
 
         // Notice must either be a) in reply to a notice by this user
         // or b) to the attention of this user
+        // or c) in reply to a notice to the attention of this user
 
         $context = $this->activity->context;
 
@@ -79,8 +80,9 @@ class UsersalmonAction extends SalmonAction
             if (empty($notice)) {
                 throw new ClientException("In reply to unknown notice");
             }
-            if ($notice->profile_id != $this->user->id) {
-                throw new ClientException("In reply to a notice not by this user");
+            if ($notice->profile_id != $this->user->id &&
+                !in_array($notice->getReplies(), $this->user->id)) {
+                throw new ClientException("In reply to a notice not by this user and not mentioning this user");
             }
         } else if (!empty($context->attention)) {
             if (!in_array($this->user->uri, $context->attention) &&
index 8905d2e21069f22851c81c208b20ba650fbc2fd6..5e318116a6e1a3d479d5ffd379cb655a71009be7 100644 (file)
@@ -67,6 +67,17 @@ class OStatusQueueHandler extends QueueHandler
             }
         }
 
+        if (!empty($this->notice->reply_to)) {
+            $replyTo = Notice::staticGet('id', $this->notice->reply_to);
+            if (!empty($replyTo)) {
+                foreach($replyTo->getReplies() as $profile_id) {
+                    $oprofile = Ostatus_profile::staticGet('profile_id', $profile_id);
+                    if ($oprofile) {
+                        $this->pingReply($oprofile);
+                    }
+                }
+            }
+        }
         return true;
     }
 
@@ -161,7 +172,7 @@ class OStatusQueueHandler extends QueueHandler
      * Queue up direct feed update pushes to subscribers on our internal hub.
      * If there are a large number of subscriber sites, intermediate bulk
      * distribution triggers may be queued.
-     * 
+     *
      * @param string $atom update feed, containing only new/changed items
      * @param HubSub $sub open query of subscribers
      */