exit(1);
}
-require_once INSTALLDIR.'/plugins/UrlShortener/UrlShortenerPlugin.php';
-
class BitlyUrlPlugin extends UrlShortenerPlugin
{
public $shortenerName = 'bit.ly';
function onInitializePlugin(){
parent::onInitializePlugin();
if(!isset($this->serviceUrl)){
- throw new Exception(_m("You must specify a serviceUrl for bit.ly shortening."));
+ // TRANS: Exception thrown when bit.ly URL shortening plugin was configured incorrectly.
+ throw new Exception(_m('You must specify a serviceUrl for bit.ly URL shortening.'));
}
}
$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);
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;
'author' => 'Craig Andrews, Brion Vibber',
'homepage' => 'http://status.net/wiki/Plugin:BitlyUrl',
'rawdescription' =>
+ // TRANS: Plugin description. %1$s is the URL shortening service base URL (for example "bit.ly").
sprintf(_m('Uses <a href="http://%1$s/">%1$s</a> URL-shortener service.'),
$this->shortenerName));
*/
function onRouterInitialized($m)
{
- $m->connect('admin/bitly',
+ $m->connect('panel/bitly',
array('action' => 'bitlyadminpanel'));
return true;
}
$action_name = $nav->action->trimmed('action');
$nav->out->menuItem(common_local_url('bitlyadminpanel'),
+ // TRANS: Menu item in administration menus for bit.ly URL shortening settings.
_m('bit.ly'),
- _m('bit.ly URL shortening'),
+ // TRANS: Title for menu item in administration menus for bit.ly URL shortening settings.
+ _m('bit.ly URL shortening.'),
$action_name == 'bitlyadminpanel',
'nav_bitly_admin_panel');
}