]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Ticket #1572 - Implement Twitter's account/rate_limit_status API method
authorZach Copley <zach@controlyourself.ca>
Sat, 30 May 2009 03:23:32 +0000 (20:23 -0700)
committerZach Copley <zach@controlyourself.ca>
Sat, 30 May 2009 03:23:32 +0000 (20:23 -0700)
We don't have a rate limit (yet) but some clients check this method.
This dummy implementation always says the auth user has 100 requests
left.

actions/twitapiaccount.php

index 68a18cb57b43c87d7a9e4e6090f5b5b1df019a9a..8b956f897a397606434d2a2d1040a71c31b937c8 100644 (file)
@@ -98,9 +98,31 @@ class TwitapiaccountAction extends TwitterapiAction
         $this->serverError(_('API method under construction.'), $code=501);
     }
 
+    // We don't have a rate limit, but some clients check this method.
+    // It always returns the same thing: 100 hit left.
     function rate_limit_status($args, $apidata)
     {
         parent::handle($args);
-        $this->serverError(_('API method under construction.'), $code=501);
+
+        $type = $apidata['content-type'];
+        $this->init_document($type);
+
+        if ($apidata['content-type'] == 'xml') {
+            $this->elementStart('hash');
+            $this->element('remaining-hits', array('type' => 'integer'), 100);
+            $this->element('hourly-limit', array('type' => 'integer'), 100);
+            $this->element('reset-time', array('type' => 'datetime'), null);
+            $this->element('reset_time_in_seconds', array('type' => 'integer'), 0);
+            $this->elementEnd('hash');
+        } elseif ($apidata['content-type'] == 'json') {
+
+            $out = array('reset_time_in_seconds' => 0,
+                         'remaining_hits' => 100,
+                         'hourly_limit' => 100,
+                         'reset_time' => '');
+            print json_encode($out);
+        }
+
+        $this->end_document($type);
     }
 }