]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/twitapiusers.php
Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into...
[quix0rs-gnu-social.git] / actions / twitapiusers.php
index 8f16e56131e87f3ec2f2173fa4bd275d8dda0980..b90bbfa985c9a6a381a5397647b54518225e6768 100644 (file)
@@ -33,88 +33,53 @@ class TwitapiusersAction extends TwitterapiAction
             return;
         }
 
- $this->auth_user = $apidata['user'];
-               $user = null;
-               $email = $this->arg('email');
-
-               if ($email) {
-                       $user = User::staticGet('email', $email);
-               } elseif (isset($apidata['api_arg'])) {
-                       $user = $this->get_user($apidata['api_arg']);
-               }
-
-               if (!$user) {
-                       // XXX: Twitter returns a random(?) user instead of throwing and err! -- Zach
-                       $this->client_error(_('Not found.'), 404, $apidata['content-type']);
-                       return;
-               }
-
-               $profile = $user->getProfile();
-
-               if (!$profile) {
-                       common_server_error(_('User has no profile.'));
-                       return;
-               }
-
-               $twitter_user = $this->twitter_user_array($profile, true);
-
-               // Add in extended user fields offered up by this method
-               $twitter_user['created_at'] = $this->date_twitter($profile->created);
-
-               $subbed = DB_DataObject::factory('subscription');
-               $subbed->subscriber = $profile->id;
-               $subbed_count = (int) $subbed->count() - 1;
-
-               $notices = DB_DataObject::factory('notice');
-               $notices->profile_id = $profile->id;
-               $notice_count = (int) $notices->count();
-
-               $twitter_user['friends_count'] = (is_int($subbed_count)) ? $subbed_count : 0;
-               $twitter_user['statuses_count'] = (is_int($notice_count)) ? $notice_count : 0;
-
-               // Other fields Twitter sends...
-               $twitter_user['profile_background_color'] = '';
-               $twitter_user['profile_text_color'] = '';
-               $twitter_user['profile_link_color'] = '';
-               $twitter_user['profile_sidebar_fill_color'] = '';
-
-               $faves = DB_DataObject::factory('fave');
-               $faves->user_id = $user->id;
-               $faves_count = (int) $faves->count();
-               $twitter_user['favourites_count'] = $faves_count;
-
-               $timezone = 'UTC';
-
-               if ($user->timezone) {
-                       $timezone = $user->timezone;
-               }
-
-               $t = new DateTime;
-               $t->setTimezone(new DateTimeZone($timezone));
-               $twitter_user['utc_offset'] = $t->format('Z');
-               $twitter_user['time_zone'] = $timezone;
-
-               if (isset($this->auth_user)) {
-
-                       if ($this->auth_user->isSubscribed($profile)) {
-                               $twitter_user['following'] = 'true';
-                       } else {
-                               $twitter_user['following'] = 'false';
-                       }
-
-                       // Not implemented yet
-                       $twitter_user['notifications'] = 'false';
-               }
-
-               if ($apidata['content-type'] == 'xml') {
-                       $this->init_document('xml');
-                       $this->show_twitter_xml_user($twitter_user);
-                       $this->end_document('xml');
-               } elseif ($apidata['content-type'] == 'json') {
-                       $this->init_document('json');
-                       $this->show_json_objects($twitter_user);
-                       $this->end_document('json');
-               }
-
-       }
+        $user = null;
+        $email = $this->arg('email');
+        $user_id = $this->arg('user_id');
+
+        // XXX: email field deprecated in Twitter's API
+
+        // XXX: Also: need to add screen_name param
+
+        if ($email) {
+            $user = User::staticGet('email', $email);
+        } elseif ($user_id) {
+            $user = $this->get_user($user_id);
+        } elseif (isset($apidata['api_arg'])) {
+            $user = $this->get_user($apidata['api_arg']);
+        } elseif (isset($apidata['user'])) {
+            $user = $apidata['user'];
+        }
+
+        if (!$user) {
+            $this->client_error(_('Not found.'), 404, $apidata['content-type']);
+            return;
+        }
+
+        $profile = $user->getProfile();
+
+        if (!$profile) {
+            common_server_error(_('User has no profile.'));
+            return;
+        }
+
+        $twitter_user = $this->twitter_user_array($profile, true);
+
+        if ($apidata['content-type'] == 'xml') {
+            $this->init_document('xml');
+            $this->show_twitter_xml_user($twitter_user);
+            $this->end_document('xml');
+        } elseif ($apidata['content-type'] == 'json') {
+            $this->init_document('json');
+            $this->show_json_objects($twitter_user);
+            $this->end_document('json');
+        } else {
+
+            // This is in case 'show' was called via /account/verify_credentials
+            // without a format (xml or json).
+            header('Content-Type: text/html; charset=utf-8');
+            print 'Authorized';
+        }
+
+    }
 }