forked from GNUsocial/gnu-social
		
	Merge branch 'improve-status-length-calculation' into 'master'
improve status length calculation for messages forwarded to Twitter See merge request !133
This commit is contained in:
		| @@ -389,11 +389,16 @@ function format_status($notice) | ||||
|     // XXX: Make this an optional setting? | ||||
|     $statustxt = preg_replace('/(^|\s)!([A-Za-z0-9]{1,64})/', "\\1#\\2", $statustxt); | ||||
|  | ||||
|     // detect links, each link uses 23 characters on twitter | ||||
|     $numberOfLinks = preg_match_all('`((http|https|ftp)://[^\s<]+[^\s<\.)])`i', $statustxt); | ||||
|     $statusWithoutLinks = preg_replace('`((http|https|ftp)://[^\s<]+[^\s<\.)])`i', '', $statustxt); | ||||
|     $statusLength = mb_strlen($statusWithoutLinks)  + $numberOfLinks * 23; | ||||
|  | ||||
|     // Twitter still has a 140-char hardcoded max. | ||||
|     if (mb_strlen($statustxt) > 140) { | ||||
|     if ($statusLength > 140) { | ||||
|         $noticeUrl = common_shorten_url($notice->getUrl()); | ||||
|         $urlLen = mb_strlen($noticeUrl); | ||||
|         $statustxt = mb_substr($statustxt, 0, 140 - ($urlLen + 3)) . ' … ' . $noticeUrl; | ||||
|         // each link uses 23 chars on twitter + 3 for the ' … ' => 26 | ||||
|         $statustxt = mb_substr($statustxt, 0, 140 - 26) . ' … ' . $noticeUrl; | ||||
|     } | ||||
|  | ||||
|     return $statustxt; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user