only expand URLs we shortened ourselves + only shorten if notice > 140 chars

darcs-hash:20081128200004-099f7-085c833e3e34b2a13b5b3ec3b1316e7948ff196f.gz
This commit is contained in:
millette 2008-11-28 15:00:04 -05:00
parent aa29ebf9f4
commit 4fca9960cd
2 changed files with 21 additions and 13 deletions

View File

@ -522,7 +522,7 @@ class ProfilesettingsAction extends SettingsAction {
// delete user (id)
// delete user_openid (user_id)
// delete profile (id)
//
// delete tags tables (to verify)
// delete all the users notices
$this->show_form(_('Your account has been deleted.'), true);

View File

@ -822,7 +822,13 @@ function common_render_uri_thingy($matches) {
return '<a href="' . $uri . '"' . $title . ' class="extlink">' . $uri . '</a>' . $trailer;
}
function common_longurl($uri) {
function common_longurl($short_url) {
$long_url = common_shorten_link($short_url, true);
if ($long_url === $short_url) return false;
return $long_url;
}
function common_longurl2($uri) {
$uri_e = urlencode($uri);
$longurl = unserialize(file_get_contents("http://api.longurl.org/v1/expand?format=php&url=$uri_e"));
if (empty($longurl['long_url']) || $uri === $longurl['long_url']) return false;
@ -830,6 +836,7 @@ function common_longurl($uri) {
}
function common_shorten_links($text) {
if (mb_strlen($text) <= 140) return $text;
// \s = not a horizontal whitespace character (since PHP 5.2.4)
// RYM this should prevent * preceded URLs from being processed but it its a char
// $r = preg_replace('@[^*](https?://[^)\]>\s]+)@e', "common_shorten_link('\\1')", $r);
@ -837,7 +844,7 @@ function common_shorten_links($text) {
}
function common_shorten_link($long_url) {
$user = common_current_user();
$curlh = curl_init();
@ -848,38 +855,38 @@ function common_shorten_link($long_url) {
switch($user->urlshorteningservice) {
case 'ur1.ca':
$short_url_service = new LilUrl;
$short_url = $short_url_service->shorten($long_url);
$short_url = $short_url_service->shorten($url);
break;
case '2tu.us':
$short_url_service = new TightUrl;
$short_url = $short_url_service->shorten($long_url);
$short_url = $short_url_service->shorten($url);
break;
case 'ptiturl.com':
$short_url_service = new PtitUrl;
$short_url = $short_url_service->shorten($long_url);
$short_url = $short_url_service->shorten($url);
break;
case 'bit.ly':
curl_setopt($curlh, CURLOPT_URL, 'http://bit.ly/api?method=shorten&long_url='.urlencode($long_url));
curl_setopt($curlh, CURLOPT_URL, 'http://bit.ly/api?method=shorten&long_url='.urlencode($url));
$short_url = current(json_decode(curl_exec($curlh))->results)->hashUrl;
break;
case 'is.gd':
curl_setopt($curlh, CURLOPT_URL, 'http://is.gd/api.php?longurl='.urlencode($long_url));
curl_setopt($curlh, CURLOPT_URL, 'http://is.gd/api.php?longurl='.urlencode($url));
$short_url = curl_exec($curlh);
break;
case 'snipr.com':
curl_setopt($curlh, CURLOPT_URL, 'http://snipr.com/site/snip?r=simple&link='.urlencode($long_url));
curl_setopt($curlh, CURLOPT_URL, 'http://snipr.com/site/snip?r=simple&link='.urlencode($url));
$short_url = curl_exec($curlh);
break;
case 'metamark.net':
curl_setopt($curlh, CURLOPT_URL, 'http://metamark.net/api/rest/simple?long_url='.urlencode($long_url));
curl_setopt($curlh, CURLOPT_URL, 'http://metamark.net/api/rest/simple?long_url='.urlencode($url));
$short_url = curl_exec($curlh);
break;
case 'tinyurl.com':
curl_setopt($curlh, CURLOPT_URL, 'http://tinyurl.com/api-create.php?url='.urlencode($long_url));
curl_setopt($curlh, CURLOPT_URL, 'http://tinyurl.com/api-create.php?url='.urlencode($url));
$short_url = curl_exec($curlh);
break;
default:
@ -889,9 +896,10 @@ function common_shorten_link($long_url) {
curl_close($curlh);
if ($short_url) {
return $short_url;
$url_cache[(string)$short_url] = $url;
return (string)$short_url;
}
return $long_url;
return $url;
}
function common_xml_safe_str($str) {