From fb05570c1d1a180a0751eb3c25a503c281f3e4ed Mon Sep 17 00:00:00 2001 From: Adam Magness Date: Fri, 26 Jan 2018 20:26:49 -0500 Subject: [PATCH] Create Plaintext class create class and move shorten method --- src/Content/Text/BBCode.php | 32 ++--------------------------- src/Content/Text/Plaintext.php | 37 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 30 deletions(-) create mode 100644 src/Content/Text/Plaintext.php diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index b4a3106833..9162316d72 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -5,6 +5,7 @@ namespace Friendica\Content\Text; use Friendica\App; +use Friendica\Content\Text\Plaintext; use Friendica\Core\PConfig; use Friendica\Object\Image; use Friendica\Util\ParseUrl; @@ -320,35 +321,6 @@ class BBCode return $post; } - /** - * Shortens message - * - * @param type $msg - * @param type $limit - * @return type - * - * @todo For Twitter URLs aren't shortened, but they have to be calculated as if. - */ - public static function shortenMsg($msg, $limit) - { - $lines = explode("\n", $msg); - $msg = ""; - $recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8'); - $ellipsis = html_entity_decode("…", ENT_QUOTES, 'UTF-8'); - foreach ($lines as $row => $line) { - if (iconv_strlen(trim($msg . "\n" . $line), "UTF-8") <= $limit) { - $msg = trim($msg . "\n" . $line); - } elseif (($msg == "") || (($row == 1) && (substr($msg, 0, 4) == $recycle))) { - // Is the new message empty by now or is it a reshared message? - $msg = iconv_substr(iconv_substr(trim($msg . "\n" . $line), 0, $limit, "UTF-8"), 0, -3, "UTF-8") . $ellipsis; - } else { - break; - } - } - - return $msg; - } - /** * @brief Convert a message into plaintext for connectors to other networks * @@ -496,7 +468,7 @@ class BBCode } elseif (PConfig::get($b["uid"], "system", "no_intelligent_shortening")) { $post["url"] = $b["plink"]; } - $msg = self::shortenMsg($msg, $limit); + $msg = Plaintext::shorten($msg, $limit); } } diff --git a/src/Content/Text/Plaintext.php b/src/Content/Text/Plaintext.php new file mode 100644 index 0000000000..eb17fd0a26 --- /dev/null +++ b/src/Content/Text/Plaintext.php @@ -0,0 +1,37 @@ + $line) { + if (iconv_strlen(trim($msg . "\n" . $line), "UTF-8") <= $limit) { + $msg = trim($msg . "\n" . $line); + } elseif (($msg == "") || (($row == 1) && (substr($msg, 0, 4) == $recycle))) { + // Is the new message empty by now or is it a reshared message? + $msg = iconv_substr(iconv_substr(trim($msg . "\n" . $line), 0, $limit, "UTF-8"), 0, -3, "UTF-8") . $ellipsis; + } else { + break; + } + } + + return $msg; + } +}