summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Notice.php27
-rw-r--r--lib/distribqueuehandler.php4
-rw-r--r--plugins/OStatus/lib/salmonaction.php3
3 files changed, 31 insertions, 3 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index 6f1ef81fc..a12839d72 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -333,8 +333,15 @@ class Notice extends Memcached_DataObject
# Clear the cache for subscribed users, so they'll update at next request
# XXX: someone clever could prepend instead of clearing the cache
+
$notice->blowOnInsert();
+ if (isset($replies)) {
+ $notice->saveKnownReplies($replies);
+ } else {
+ $notice->saveReplies();
+ }
+
$notice->distribute();
return $notice;
@@ -817,6 +824,26 @@ class Notice extends Memcached_DataObject
return true;
}
+ function saveKnownReplies($uris)
+ {
+ foreach ($uris as $uri) {
+
+ $user = User::staticGet('uri', $uri);
+
+ if (!empty($user)) {
+
+ $reply = new Reply();
+
+ $reply->notice_id = $this->id;
+ $reply->profile_id = $user->id;
+
+ $id = $reply->insert();
+ }
+ }
+
+ return;
+ }
+
/**
* @return array of integer profile IDs
*/
diff --git a/lib/distribqueuehandler.php b/lib/distribqueuehandler.php
index 4477468d0..c31b675c1 100644
--- a/lib/distribqueuehandler.php
+++ b/lib/distribqueuehandler.php
@@ -75,7 +75,7 @@ class DistribQueueHandler
}
try {
- $recipients = $notice->saveReplies();
+ $recipients = $notice->getReplies();
} catch (Exception $e) {
$this->logit($notice, $e);
}
@@ -107,7 +107,7 @@ class DistribQueueHandler
return true;
}
-
+
protected function logit($notice, $e)
{
common_log(LOG_ERR, "Distrib queue exception saving notice $notice->id: " .
diff --git a/plugins/OStatus/lib/salmonaction.php b/plugins/OStatus/lib/salmonaction.php
index b128cbd13..4aba20cc4 100644
--- a/plugins/OStatus/lib/salmonaction.php
+++ b/plugins/OStatus/lib/salmonaction.php
@@ -182,7 +182,8 @@ class SalmonAction extends Action
$options = array('is_local' => Notice::REMOTE_OMB,
'uri' => $this->act->object->id,
'url' => $this->act->object->link,
- 'rendered' => $rendered);
+ 'rendered' => $rendered,
+ 'replies' => $this->act->context->attention);
if (!empty($this->act->context->location)) {
$options['lat'] = $location->lat;