X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=twitter%2Ftwitter.php;h=223f69bd73a27c5dcc62eee1112337f1078ac68d;hb=dc8b86ae8158936704f8c4603b8cf7dc635f4ac4;hp=808768f8305bbefccfcf8b9750e935c582ca5b6a;hpb=e5499d75db18cd93d1f4c8db5ecf9298e3ec255c;p=friendica-addons.git diff --git a/twitter/twitter.php b/twitter/twitter.php index 808768f8..223f69bd 100755 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -4,6 +4,7 @@ * Description: Relay public postings to a connected Twitter account * Version: 1.0.4 * Author: Tobias Diekershoff + * Author: Michael Vogel */ @@ -351,6 +352,8 @@ function twitter_shortenmsg($b) { while (strpos($msg, " ") !== false) $msg = str_replace(" ", " ", $msg); + $origmsg = $msg; + // Removing URLs $msg = preg_replace('/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', "", $msg); @@ -386,11 +389,20 @@ function twitter_shortenmsg($b) { if (($msglink == "") and strlen($msg) > $max_char) $msglink = $b["plink"]; + // If the message is short enough then don't modify it. + if ((strlen(trim($origmsg)) <= $max_char) AND ($msglink == "")) + return(trim($origmsg)); + + // If the message is short enough and the link exists in the original message don't modify it as well + // -3 because of the bad shortener of twitter + if ((strlen(trim($origmsg)) <= ($max_char - 3)) AND strpos($origmsg, $msglink)) + return(trim($origmsg)); + if (strlen($msglink) > 20) $msglink = short_link($msglink); - if (strlen(trim($msg." ".$msglink)) > $max_char) { - $msg = substr($msg, 0, $max_char - (strlen($msglink))); + if (strlen(trim($msg." ".$msglink)) > ($max_char - 3)) { + $msg = substr($msg, 0, ($max_char - 3) - (strlen($msglink))); $lastchar = substr($msg, -1); $msg = substr($msg, 0, -1); $pos = strrpos($msg, "\n"); @@ -505,7 +517,7 @@ function twitter_post_hook(&$a,&$b) { // ok, all the links we want to send out are save, now strip // away the remaining bbcode //$msg = strip_tags(bbcode($tmp, false, false)); - $msg = bbcode($tmp, false, false); + $msg = bbcode($tmp, false, false, true); $msg = str_replace(array('
','
'),"\n",$msg); $msg = strip_tags($msg); @@ -613,6 +625,10 @@ function twitter_fetchtimeline($a, $uid) { $parameters["since_id"] = $lastid; $items = $connection->get('statuses/user_timeline', $parameters); + + if (!is_array($items)) + return; + $posts = array_reverse($items); if (count($posts)) {