diff options
-rw-r--r-- | lib/stompqueuemanager.php | 21 | ||||
-rw-r--r-- | plugins/UserFlag/User_flag_profile.php | 11 |
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(); |