summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-11-30 12:40:23 -0800
committerBrion Vibber <brion@pobox.com>2010-11-30 12:40:23 -0800
commitbcccbd6d8afb8b022d80ca7fa558ac4dbb31d38b (patch)
tree51a3c790494a1eb103c984b836e4860d371de083
parentaf31767b637849f4cc904a89e30ccc81b4f4df66 (diff)
BitlyPlugin: fix for shortening URLs containing ampersand (&)
-rw-r--r--plugins/BitlyUrl/BitlyUrlPlugin.php6
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/BitlyUrl/BitlyUrlPlugin.php b/plugins/BitlyUrl/BitlyUrlPlugin.php
index 93a35b3f3..b4f80a50a 100644
--- a/plugins/BitlyUrl/BitlyUrlPlugin.php
+++ b/plugins/BitlyUrl/BitlyUrlPlugin.php
@@ -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;