summaryrefslogtreecommitdiff
path: root/lib/twitterapi.php
diff options
context:
space:
mode:
authorDan Moore <dan@moore.cx>2009-06-04 17:57:03 -0400
committerDan Moore <dan@moore.cx>2009-06-04 17:57:03 -0400
commit6658e2a2ee9517bebd59cf69d7483e6eda691b4e (patch)
tree613fad8f4e37afab8b64d0ab790b3bce880c54f6 /lib/twitterapi.php
parent9e16b7d89b101d8dfebdb8bf22ea56e9b8731bdd (diff)
Handle the ways Twitter accepts passing the user in the query string.
Diffstat (limited to 'lib/twitterapi.php')
-rw-r--r--lib/twitterapi.php22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/twitterapi.php b/lib/twitterapi.php
index 1d527b935..ca8b03cdc 100644
--- a/lib/twitterapi.php
+++ b/lib/twitterapi.php
@@ -673,7 +673,27 @@ class TwitterapiAction extends Action
function get_user($id, $apidata=null)
{
if (!$id) {
- return $apidata['user'];
+
+ // Twitter supports these other ways of passing the user ID
+ if (is_numeric($this->arg('id'))) {
+ return User::staticGet($this->arg('id'));
+ } else if ($this->arg('id')) {
+ $nickname = common_canonical_nickname($this->arg('id'));
+ return User::staticGet('nickname', $nickname);
+ } else if ($this->arg('user_id')) {
+ // This is to ensure that a non-numeric user_id still
+ // overrides screen_name even if it doesn't get used
+ if (is_numeric($this->arg('user_id'))) {
+ return User::staticGet('id', $this->arg('user_id'));
+ }
+ } else if ($this->arg('screen_name')) {
+ $nickname = common_canonical_nickname($this->arg('screen_name'));
+ return User::staticGet('nickname', $nickname);
+ } else {
+ // Fall back to trying the currently authenticated user
+ return $apidata['user'];
+ }
+
} else if (is_numeric($id)) {
return User::staticGet($id);
} else {