function noticeAsJson($notice) { // FIXME: this code should be abstracted to a neutral third // party, like Notice::asJson(). I'm not sure of the ethics // of refactoring from within a plugin, so I'm just abusing // the ApiAction method. Don't do this unless you're me! $act = new ApiAction('/dev/null'); $arr = $act->twitterStatusArray($notice, true); $arr['url'] = $notice->bestUrl(); $arr['html'] = $notice->rendered; $arr['source'] = $arr['source']; if (!empty($notice->reply_to)) { $reply_to = Notice::staticGet('id', $notice->reply_to); if (!empty($reply_to)) { $arr['in_reply_to_status_url'] = $reply_to->bestUrl(); } $reply_to = null; } $profile = $notice->getProfile(); $arr['user']['profile_url'] = $profile->profileurl; return $arr; }
function noticeAsJson($notice) { // FIXME: this code should be abstracted to a neutral third // party, like Notice::asJson(). I'm not sure of the ethics // of refactoring from within a plugin, so I'm just abusing // the ApiAction method. Don't do this unless you're me! $act = new ApiAction('/dev/null'); $arr = $act->twitterStatusArray($notice, true); $arr['url'] = $notice->bestUrl(); $arr['html'] = htmlspecialchars($notice->rendered); $arr['source'] = htmlspecialchars($arr['source']); $arr['conversation_url'] = $this->getConversationUrl($notice); $profile = $notice->getProfile(); $arr['user']['profile_url'] = $profile->profileurl; // Add needed repeat data if (!empty($notice->repeat_of)) { $original = Notice::staticGet('id', $notice->repeat_of); if (!empty($original)) { $arr['retweeted_status']['url'] = $original->bestUrl(); $arr['retweeted_status']['html'] = htmlspecialchars($original->rendered); $arr['retweeted_status']['source'] = htmlspecialchars($original->source); $originalProfile = $original->getProfile(); $arr['retweeted_status']['user']['profile_url'] = $originalProfile->profileurl; $arr['retweeted_status']['conversation_url'] = $this->getConversationUrl($original); } $original = null; } return $arr; }