From 08d50655f3a220b1fe970b0917a6ecbcae019b04 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Fri, 10 Jul 2009 17:00:27 -0400 Subject: added group status api, located at /api/statuses/group_timeline/ID.rss http://laconi.ca/trac/ticket/1702 --- actions/twitapistatuses.php | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'actions/twitapistatuses.php') diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index c9943698d..ec5d378f0 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -136,6 +136,64 @@ class TwitapistatusesAction extends TwitterapiAction } + function group_timeline($args, $apidata) + { + parent::handle($args); + + $this->auth_user = $apidata['user']; + $group = $this->get_group($apidata['api_arg'], $apidata); + + if (empty($group)) { + $this->clientError('Not Found', 404, $apidata['content-type']); + return; + } + + $sitename = common_config('site', 'name'); + $title = sprintf(_("%s timeline"), $group->nickname); + $taguribase = common_config('integration', 'taguri'); + $id = "tag:$taguribase:GroupTimeline:".$group->id; + $link = common_local_url('showstream', + array('nickname' => $group->nickname)); + $subtitle = sprintf(_('Updates from %1$s on %2$s!'), + $group->nickname, $sitename); + + $page = (int)$this->arg('page', 1); + $count = (int)$this->arg('count', 20); + $max_id = (int)$this->arg('max_id', 0); + $since_id = (int)$this->arg('since_id', 0); + $since = $this->arg('since'); + + $notice = $group->getNotices(($page-1)*$count, + $count, $since_id, $max_id, $since); + + switch($apidata['content-type']) { + case 'xml': + $this->show_xml_timeline($notice); + break; + case 'rss': + $this->show_rss_timeline($notice, $title, $link, + $subtitle, $suplink); + break; + case 'atom': + if (isset($apidata['api_arg'])) { + $selfuri = common_root_url() . + 'api/statuses/group_timeline/' . + $apidata['api_arg'] . '.atom'; + } else { + $selfuri = common_root_url() . + 'api/statuses/group_timeline.atom'; + } + $this->show_atom_timeline($notice, $title, $id, $link, + $subtitle, $suplink, $selfuri); + break; + case 'json': + $this->show_json_timeline($notice); + break; + default: + $this->clientError(_('API method not found!'), $code = 404); + } + } + function user_timeline($args, $apidata) { parent::handle($args); -- cgit v1.2.3-54-g00ecf