diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Service/ShortUrl/TinyUrlCom.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Service/ShortUrl/TinyUrlCom.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,100 @@ +_validateUri($url); + + $serviceUri = 'http://tinyurl.com/api-create.php'; + + $this->getHttpClient()->setUri($serviceUri); + $this->getHttpClient()->setParameterGet('url', $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); + + //TinyUrl.com does not have an API for that, but we can use preview feature + //we need new Zend_Http_Client + $this->setHttpClient(new Zend_Http_Client()); + + $this->getHttpClient() + ->setCookie('preview', 1) + ->setUri($shortenedUrl); + + //get response + $response = $this->getHttpClient()->request(); + + require_once 'Zend/Dom/Query.php'; + $dom = new Zend_Dom_Query($response->getBody()); + + //find the redirect url link + $results = $dom->query('a#redirecturl'); + + //get href + $originalUrl = $results->current()->getAttribute('href'); + + return $originalUrl; + } +}