diff options
author | zach <zach@copley.name> | 2008-07-17 20:21:31 -0400 |
---|---|---|
committer | zach <zach@copley.name> | 2008-07-17 20:21:31 -0400 |
commit | cffe49eca3f757e3b2adb575d67cf97b8b27d32b (patch) | |
tree | 3f400361066044bedf4cf5272c1390413b0fe3a1 | |
parent | 3a942bd8b95cdc70802982101b2b71ac5da8783f (diff) |
Twitter-compatible API: /statuses/user_timeline/argument.format now works
darcs-hash:20080718002131-ca946-d34d4554dadbdfc1cff6648e989a73d4b3b24271.gz
-rw-r--r-- | actions/twitapistatuses.php | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index c6da9da7c..5e0f29aaf 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -288,11 +288,40 @@ class TwitapistatusesAction extends TwitterapiAction { function user_timeline($args, $apidata) { parent::handle($args); - $id = $this->arg('id'); + $user = null; + + // function was called with an argument /statuses/user_timeline/api_arg.format + if (isset($apidata['api_arg'])) { + + if (is_numeric($apidata['api_arg'])) { + $user = User::staticGet($apidata['api_arg']); + } else { + $nickname = common_canonical_nickname($apidata['api_arg']); + $user = User::staticGet('nickname', $nickname); + } + } else { + + // if no user was specified, then we'll use the authenticated user + $user = $apidata['user']; + } + + if (!$user) { + // Set the user to be the auth user if asked-for can't be found + // honestly! This is what Twitter does, I swear --Zach + $user = $apidata['user']; + } + + $profile = $user->getProfile(); + + if (!$profile) { + common_server_error(_('User has no profile.')); + return; + } + $count = $this->arg('count'); $since = $this->arg('since'); $since_id = $this->arg('since_id'); - + if (!$page) { $page = 1; } @@ -300,16 +329,7 @@ class TwitapistatusesAction extends TwitterapiAction { if (!$count) { $count = 20; } - - $user = $this->get_user($id, $apidata['user']); - - if (!$user) { - $this->client_error(_('No such user'), 404); - return; - } - - $profile = $user->getProfile(); - + $sitename = common_config('site', 'name'); $siteserver = common_config('site', 'server'); |