Statusnet/Twitter: When a message is less than 140 digits the post isn't modified in the auto shortening.

This commit is contained in:
Michael Vogel 2013-03-29 11:19:57 +01:00
parent b68cb696e6
commit e00cb3eaaf
2 changed files with 12 additions and 0 deletions

View file

@ -498,6 +498,8 @@ function statusnet_shortenmsg($b, $max_char) {
while (strpos($msg, " ") !== false) while (strpos($msg, " ") !== false)
$msg = str_replace(" ", " ", $msg); $msg = str_replace(" ", " ", $msg);
$origmsg = $msg;
// Removing URLs // Removing URLs
$msg = preg_replace('/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', "", $msg); $msg = preg_replace('/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', "", $msg);
@ -533,6 +535,10 @@ function statusnet_shortenmsg($b, $max_char) {
if (($msglink == "") and strlen($msg) > $max_char) if (($msglink == "") and strlen($msg) > $max_char)
$msglink = $b["plink"]; $msglink = $b["plink"];
// If the message is short enough then don't modify it. (if the link exists in the original message)
if ((strlen(trim($origmsg)) <= $max_char) AND (strpos($origmsg, $msglink) OR ($msglink == "")))
return(array("msg"=>trim($origmsg), "image"=>""));
if (strlen($msglink) > 20) if (strlen($msglink) > 20)
$msglink = short_link($msglink); $msglink = short_link($msglink);

View file

@ -351,6 +351,8 @@ function twitter_shortenmsg($b) {
while (strpos($msg, " ") !== false) while (strpos($msg, " ") !== false)
$msg = str_replace(" ", " ", $msg); $msg = str_replace(" ", " ", $msg);
$origmsg = $msg;
// Removing URLs // Removing URLs
$msg = preg_replace('/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', "", $msg); $msg = preg_replace('/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', "", $msg);
@ -386,6 +388,10 @@ function twitter_shortenmsg($b) {
if (($msglink == "") and strlen($msg) > $max_char) if (($msglink == "") and strlen($msg) > $max_char)
$msglink = $b["plink"]; $msglink = $b["plink"];
// If the message is short enough then don't modify it. (if the link exists in the original message)
if ((strlen(trim($origmsg)) <= $max_char) AND (strpos($origmsg, $msglink) OR ($msglink == "")))
return(trim($origmsg));
if (strlen($msglink) > 20) if (strlen($msglink) > 20)
$msglink = short_link($msglink); $msglink = short_link($msglink);