summaryrefslogtreecommitdiff
path: root/lib/util.php
diff options
context:
space:
mode:
authormillette <millette@controlyourself.ca>2008-11-28 15:00:04 -0500
committermillette <millette@controlyourself.ca>2008-11-28 15:00:04 -0500
commit4fca9960cd5388ff2a12472b956e2504a5af7549 (patch)
tree70c6a5b0840cd95ba3be51f9af0173628cc9cf64 /lib/util.php
parentaa29ebf9f42518441e2078679bd6377ed55b6624 (diff)
only expand URLs we shortened ourselves + only shorten if notice > 140 chars
darcs-hash:20081128200004-099f7-085c833e3e34b2a13b5b3ec3b1316e7948ff196f.gz
Diffstat (limited to 'lib/util.php')
-rw-r--r--lib/util.php32
1 files changed, 20 insertions, 12 deletions
diff --git a/lib/util.php b/lib/util.php
index 73bd6ee16..b14d121e6 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -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) {