summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/stompqueuemanager.php21
-rw-r--r--plugins/UserFlag/User_flag_profile.php11
2 files changed, 30 insertions, 2 deletions
diff --git a/lib/stompqueuemanager.php b/lib/stompqueuemanager.php
index 4bbdeedc2..8f0091a13 100644
--- a/lib/stompqueuemanager.php
+++ b/lib/stompqueuemanager.php
@@ -294,7 +294,26 @@ class StompQueueManager extends QueueManager
StatusNet::init($site);
}
- $item = $this->decode($frame->body);
+ if (is_numeric($frame->body)) {
+ $id = intval($frame->body);
+ $info = "notice $id posted at {$frame->headers['created']} in queue $queue";
+
+ $notice = Notice::staticGet('id', $id);
+ if (empty($notice)) {
+ $this->_log(LOG_WARNING, "Skipping missing $info");
+ $this->ack($frame);
+ $this->commit();
+ $this->begin();
+ $this->stats('badnotice', $queue);
+ return false;
+ }
+
+ $item = $notice;
+ } else {
+ // @fixme should we serialize, or json, or what here?
+ $info = "string posted at {$frame->headers['created']} in queue $queue";
+ $item = $frame->body;
+ }
$handler = $this->getHandler($queue);
if (!$handler) {
diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php
index bc4251cf7..86b39160b 100644
--- a/plugins/UserFlag/User_flag_profile.php
+++ b/plugins/UserFlag/User_flag_profile.php
@@ -86,7 +86,7 @@ class User_flag_profile extends Memcached_DataObject
function keys()
{
- return array('profile_id' => 'N', 'user_id' => 'N');
+ return array('profile_id' => 'K', 'user_id' => 'K');
}
/**
@@ -130,6 +130,15 @@ class User_flag_profile extends Memcached_DataObject
return !empty($ufp);
}
+ /**
+ * Create a new flag
+ *
+ * @param integer $user_id ID of user who's flagging
+ * @param integer $profile_id ID of profile being flagged
+ *
+ * @return boolean success flag
+ */
+
static function create($user_id, $profile_id)
{
$ufp = new User_flag_profile();