X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FBitlyUrl%2FBitlyUrlPlugin.php;h=3b6474dd86dd50b65d1a311039f1b546d3e61046;hb=4160a3fb730113f3d712bd777884c4b0482f6df1;hp=532e66fbc73d2ec7bb06ddce6d6d3e2e672d053d;hpb=1513b8eeb921538e4e342c2c6d64b2c0d1aed2dd;p=quix0rs-gnu-social.git diff --git a/plugins/BitlyUrl/BitlyUrlPlugin.php b/plugins/BitlyUrl/BitlyUrlPlugin.php index 532e66fbc7..3b6474dd86 100644 --- a/plugins/BitlyUrl/BitlyUrlPlugin.php +++ b/plugins/BitlyUrl/BitlyUrlPlugin.php @@ -36,14 +36,15 @@ if (!defined('STATUSNET')) { class BitlyUrlPlugin extends UrlShortenerPlugin { public $shortenerName = 'bit.ly'; - public $serviceUrl = 'http://bit.ly/api?method=shorten&version=2.0.1&longUrl=%s'; + public $serviceUrl = 'http://api.bit.ly/v3/shorten?longUrl=%s'; public $login; // To set a site-default when admins or users don't override it. public $apiKey; 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.')); } } @@ -68,12 +69,10 @@ class BitlyUrlPlugin extends UrlShortenerPlugin * @return string shortened version of the url, or null if URL shortening failed */ protected function shorten($url) { + common_log(LOG_INFO, "bit.ly call for $url"); $response = $this->query($url); - if ($this->isOk($url, $response)) { - return $this->decode($url, $response->getBody()); - } else { - return null; - } + common_log(LOG_INFO, "bit.ly answer for $url is ".$response->getBody()); + return $this->decode($url, $response); } /** @@ -125,51 +124,35 @@ class BitlyUrlPlugin extends UrlShortenerPlugin /** * JSON decode for API result */ - protected function decode($url, $body) + protected function decode($url, $response) { - $json = json_decode($body, true); - return $json['results'][$url]['shortUrl']; - } - - /** - * JSON decode for API result - */ - protected function isOk($url, $response) - { - $code = 'unknown'; - $msg = ''; + $msg = "bit.ly returned unknown response with unknown message for $url"; if ($response->isOk()) { $body = $response->getBody(); 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; - } else if (isset($data['statusCode']) && $data['statusCode'] == 'ERROR') { - $code = $data['errorCode']; - $msg = $data['errorMessage']; + if ($json['status_code'] == 200) { + if (isset($json['data']['url'])) { + common_log(LOG_INFO, "bit.ly returned ".$json['data']['url']." as short URL for $url"); + return $json['data']['url']; } - } else if ($json['statusCode'] == 'ERROR') { - $code = $json['errorCode']; - $msg = $json['errorMessage']; - } - common_log(LOG_ERR, "bit.ly returned error $code $msg for $url"); - } - return false; + $msg = "bit.ly returned ".$json['status_code']." response, but didn't find expected URL $url in $body"; + }else{ + $msg = "bit.ly returned ".$json['status_code']." response with ".$json['status_txt']." for $url"; + } + } + common_log(LOG_ERR, $msg); + return null; } - function onPluginVersion(&$versions) + function onPluginVersion(array &$versions) { $versions[] = array('name' => sprintf('BitlyUrl (%s)', $this->shortenerName), - 'version' => STATUSNET_VERSION, + 'version' => GNUSOCIAL_VERSION, '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 %1$s URL-shortener service.'), $this->shortenerName)); @@ -179,12 +162,12 @@ class BitlyUrlPlugin extends UrlShortenerPlugin /** * Hook for RouterInitialized event. * - * @param Net_URL_Mapper $m path-to-action mapper + * @param URLMapper $m path-to-action mapper * @return boolean hook return */ - function onRouterInitialized($m) + public function onRouterInitialized(URLMapper $m) { - $m->connect('admin/bitly', + $m->connect('panel/bitly', array('action' => 'bitlyadminpanel')); return true; } @@ -205,14 +188,16 @@ class BitlyUrlPlugin extends UrlShortenerPlugin /** * Add the bit.ly admin panel to the list... */ - function onEndAdminPanelNav($nav) + function onEndAdminPanelNav(Menu $nav) { if (AdminPanelAction::canAdmin('bitly')) { $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'); } @@ -220,27 +205,6 @@ class BitlyUrlPlugin extends UrlShortenerPlugin return true; } - /** - * Automatically load the actions and libraries used by the plugin - * - * @param Class $cls the class - * - * @return boolean hook return - * - */ - function onAutoload($cls) - { - $base = dirname(__FILE__); - $lower = strtolower($cls); - switch ($lower) { - case 'bitlyadminpanelaction': - require_once "$base/$lower.php"; - return false; - default: - return true; - } - } - /** * Internal hook point to check the default global credentials so * the admin form knows if we have a fallback or not.