]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/BitlyUrl/BitlyUrlPlugin.php
BitlyPlugin: fix for shortening URLs containing ampersand (&)
[quix0rs-gnu-social.git] / plugins / BitlyUrl / BitlyUrlPlugin.php
index 93a35b3f384d85b52e2ed784560e37eed34a5b85..b4f80a50a46613e647db25f0c838340bfe4cbfc3 100644 (file)
@@ -118,7 +118,7 @@ class BitlyUrlPlugin extends UrlShortenerPlugin
         $params = http_build_query(array(
             'login' => $this->getLogin(),
             'apiKey' => $this->getApiKey()), '', '&');
-        $serviceUrl = sprintf($this->serviceUrl, $url) . '&' . $params;
+        $serviceUrl = sprintf($this->serviceUrl, urlencode($url)) . '&' . $params;
 
         $request = HTTPClient::start();
         return $request->get($serviceUrl);
@@ -145,6 +145,10 @@ class BitlyUrlPlugin extends UrlShortenerPlugin
             common_log(LOG_INFO, $body);
             $json = json_decode($body, true);
             if ($json['statusCode'] == 'OK') {
+                if (!isset($json['results'][$url])) {
+                    common_log(LOG_ERR, "bit.ly returned OK response, but didn't find expected URL $url in $body");
+                    return false;
+                }
                 $data = $json['results'][$url];
                 if (isset($data['shortUrl'])) {
                     return true;