Merge pull request #1007 from annando/notice-info
[friendica-addons.git/.git] / statusnet / library / statusnetoauth.php
index beed59e..c9bb016 100644 (file)
-<?php\r
-\r
-require_once __DIR__ . DIRECTORY_SEPARATOR . 'twitteroauth.php';\r
-\r
-/*\r
- * We have to alter the TwitterOAuth class a little bit to work with any GNU Social\r
- * installation abroad. Basically it's only make the API path variable and be happy.\r
- *\r
- * Thank you guys for the Twitter compatible API!\r
- */\r
-class StatusNetOAuth extends TwitterOAuth\r
-{\r
-       function get_maxlength()\r
-       {\r
-               $config = $this->get($this->host . 'statusnet/config.json');\r
-               return $config->site->textlimit;\r
-       }\r
-\r
-       function accessTokenURL()\r
-       {\r
-               return $this->host . 'oauth/access_token';\r
-       }\r
-\r
-       function authenticateURL()\r
-       {\r
-               return $this->host . 'oauth/authenticate';\r
-       }\r
-\r
-       function authorizeURL()\r
-       {\r
-               return $this->host . 'oauth/authorize';\r
-       }\r
-\r
-       function requestTokenURL()\r
-       {\r
-               return $this->host . 'oauth/request_token';\r
-       }\r
-\r
-       function __construct($apipath, $consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL)\r
-       {\r
-               parent::__construct($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);\r
-               $this->host = $apipath;\r
-       }\r
-\r
-       /**\r
-        * Make an HTTP request\r
-        *\r
-        * Copied here from the TwitterOAuth library and complemented by applying the proxy settings of Friendica\r
-        *\r
-        * @param string $method\r
-        * @param string $host\r
-        * @param string $path\r
-        * @param array  $parameters\r
-        *\r
-        * @return array|object API results\r
-        */\r
-       function http($url, $method, $postfields = NULL)\r
-       {\r
-               $this->http_info = [];\r
-               $ci = curl_init();\r
-               /* Curl settings */\r
-               $prx = Config::get('system', 'proxy');\r
-               if (strlen($prx)) {\r
-                       curl_setopt($ci, CURLOPT_HTTPPROXYTUNNEL, 1);\r
-                       curl_setopt($ci, CURLOPT_PROXY, $prx);\r
-                       $prxusr = Config::get('system', 'proxyuser');\r
-                       if (strlen($prxusr)) {\r
-                               curl_setopt($ci, CURLOPT_PROXYUSERPWD, $prxusr);\r
-                       }\r
-               }\r
-               curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);\r
-               curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);\r
-               curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);\r
-               curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);\r
-               curl_setopt($ci, CURLOPT_HTTPHEADER, ['Expect:']);\r
-               curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);\r
-               curl_setopt($ci, CURLOPT_HEADERFUNCTION, [$this, 'getHeader']);\r
-               curl_setopt($ci, CURLOPT_HEADER, FALSE);\r
-\r
-               switch ($method) {\r
-                       case 'POST':\r
-                               curl_setopt($ci, CURLOPT_POST, TRUE);\r
-                               if (!empty($postfields)) {\r
-                                       curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);\r
-                               }\r
-                               break;\r
-                       case 'DELETE':\r
-                               curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');\r
-                               if (!empty($postfields)) {\r
-                                       $url = "{$url}?{$postfields}";\r
-                               }\r
-               }\r
-\r
-               curl_setopt($ci, CURLOPT_URL, $url);\r
-               $response = curl_exec($ci);\r
-               $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);\r
-               $this->http_info = array_merge($this->http_info, curl_getinfo($ci));\r
-               $this->url = $url;\r
-               curl_close($ci);\r
-               return $response;\r
-       }\r
-}\r
+<?php
+
+use Friendica\DI;
+
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'twitteroauth.php';
+
+/*
+ * We have to alter the TwitterOAuth class a little bit to work with any GNU Social
+ * installation abroad. Basically it's only make the API path variable and be happy.
+ *
+ * Thank you guys for the Twitter compatible API!
+ */
+class StatusNetOAuth extends TwitterOAuth
+{
+       function get_maxlength()
+       {
+               $config = $this->get($this->host . 'statusnet/config.json');
+               if (empty($config)) {
+                       return 0;
+               }
+               return $config->site->textlimit;
+       }
+
+       function accessTokenURL()
+       {
+               return $this->host . 'oauth/access_token';
+       }
+
+       function authenticateURL()
+       {
+               return $this->host . 'oauth/authenticate';
+       }
+
+       function authorizeURL()
+       {
+               return $this->host . 'oauth/authorize';
+       }
+
+       function requestTokenURL()
+       {
+               return $this->host . 'oauth/request_token';
+       }
+
+       function __construct($apipath, $consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL)
+       {
+               parent::__construct($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
+               $this->host = $apipath;
+       }
+
+       /**
+        * Make an HTTP request
+        *
+        * Copied here from the TwitterOAuth library and complemented by applying the proxy settings of Friendica
+        *
+        * @param string $method
+        * @param string $host
+        * @param string $path
+        * @param array  $parameters
+        *
+        * @return array|object API results
+        */
+       function http($url, $method, $postfields = NULL)
+       {
+               $this->http_info = [];
+               $ci = curl_init();
+               /* Curl settings */
+               $prx = DI::config()->get('system', 'proxy');
+               if (strlen($prx)) {
+                       curl_setopt($ci, CURLOPT_HTTPPROXYTUNNEL, 1);
+                       curl_setopt($ci, CURLOPT_PROXY, $prx);
+                       $prxusr = DI::config()->get('system', 'proxyuser');
+                       if (strlen($prxusr)) {
+                               curl_setopt($ci, CURLOPT_PROXYUSERPWD, $prxusr);
+                       }
+               }
+               curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
+               curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
+               curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
+               curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
+               curl_setopt($ci, CURLOPT_HTTPHEADER, ['Expect:']);
+               curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
+               curl_setopt($ci, CURLOPT_HEADERFUNCTION, [$this, 'getHeader']);
+               curl_setopt($ci, CURLOPT_HEADER, FALSE);
+
+               switch ($method) {
+                       case 'POST':
+                               curl_setopt($ci, CURLOPT_POST, TRUE);
+                               if (!empty($postfields)) {
+                                       curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
+                               }
+                               break;
+                       case 'DELETE':
+                               curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
+                               if (!empty($postfields)) {
+                                       $url = "{$url}?{$postfields}";
+                               }
+               }
+
+               curl_setopt($ci, CURLOPT_URL, $url);
+               $response = curl_exec($ci);
+               $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
+               $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
+               $this->url = $url;
+               curl_close($ci);
+               return $response;
+       }
+}