diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Service/ShortUrl/IsGd.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Service/ShortUrl/IsGd.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,96 @@ +_validateUri($url); + + $serviceUri = 'http://is.gd/api.php'; + + $this->getHttpClient()->resetParameters(true); + $this->getHttpClient()->setUri($serviceUri); + $this->getHttpClient()->setParameterGet('longurl', $url); + + $response = $this->getHttpClient()->request(); + + return $response->getBody(); + } + + /** + * Reveals target for short URL + * + * @param string $shortenedUrl URL to reveal target of + * @throws Zend_Service_ShortUrl_Exception When URL is not valid or is not shortened by this service + * @return string + */ + public function unshorten($shortenedUrl) + { + $this->_validateUri($shortenedUrl); + + $this->_verifyBaseUri($shortenedUrl); + + $this->getHttpClient()->resetParameters(true); + $this->getHttpClient()->setUri($shortenedUrl); + $this->getHttpClient()->setConfig(array('maxredirects' => 0)); + + $response = $this->getHttpClient()->request(); + if ($response->isError()) { + require_once 'Zend/Service/ShortUrl/Exception.php'; + throw new Zend_Service_ShortUrl_Exception($response->getMessage()); + } + + if ($response->isRedirect()) { + return $response->getHeader('Location'); + } + + require_once 'Zend/Service/ShortUrl/Exception.php'; + throw new Zend_Service_ShortUrl_Exception('Url unshortening was not successful'); + } +}