From cffe49eca3f757e3b2adb575d67cf97b8b27d32b Mon Sep 17 00:00:00 2001 From: zach Date: Thu, 17 Jul 2008 20:21:31 -0400 Subject: [PATCH] Twitter-compatible API: /statuses/user_timeline/argument.format now works darcs-hash:20080718002131-ca946-d34d4554dadbdfc1cff6648e989a73d4b3b24271.gz --- actions/twitapistatuses.php | 44 +++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index c6da9da7c4..5e0f29aaff 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');