]> git.mxchange.org Git - friendica.git/blobdiff - include/plaintext.php
Bugfix for pull request #2147 (Fix for issue #2122)
[friendica.git] / include / plaintext.php
index eb33d16e968f8ecc52e3fc84014ab6e6f9379e85..204feb137f00bf05dba1731977069d6ffc9aa781 100644 (file)
@@ -52,12 +52,13 @@ function get_attached_data($body) {
                if (preg_match_all("(\[url=([$URLSearchString]*)\]\s*\[img\]([$URLSearchString]*)\[\/img\]\s*\[\/url\])ism", $body, $pictures,  PREG_SET_ORDER)) {
                        if (count($pictures) == 1) {
                                // Checking, if the link goes to a picture
-                               $data = parseurl_getsiteinfo($pictures[0][1], true);
+                               $data = parseurl_getsiteinfo_cached($pictures[0][1], true);
                                if ($data["type"] == "photo") {
                                        $post["type"] = "photo";
-                                       if (isset($data["images"][0]))
+                                       if (isset($data["images"][0])) {
                                                $post["image"] = $data["images"][0]["src"];
-                                       else
+                                               $post["url"] = $data["url"];
+                                       } else
                                                $post["image"] = $data["url"];
 
                                        $post["preview"] = $pictures[0][2];
@@ -95,7 +96,7 @@ function get_attached_data($body) {
                }
        } elseif (isset($post["url"]) AND ($post["type"] == "video")) {
                require_once("mod/parse_url.php");
-               $data = parseurl_getsiteinfo($post["url"], true);
+               $data = parseurl_getsiteinfo_cached($post["url"], true);
 
                if (isset($data["images"][0]))
                        $post["image"] = $data["images"][0]["src"];
@@ -116,7 +117,7 @@ function shortenmsg($msg, $limit, $twitter = false) {
                        $msg = trim($msg."\n".$line);
                // Is the new message empty by now or is it a reshared message?
                elseif (($msg == "") OR (($row == 1) AND (substr($msg, 0, 4) == $recycle)))
-                       $msg = substr(substr(trim($msg."\n".$line), 0, $limit), 0, -3)."...";
+                       $msg = iconv_substr(iconv_substr(trim($msg."\n".$line), 0, $limit, "UTF-8"), 0, -3, "UTF-8")."...";
                else
                        break;
        }
@@ -172,15 +173,18 @@ function plaintext($a, $b, $limit = 0, $includedlinks = false, $htmlmode = 2) {
                        $msg = str_replace("  ", " ", $msg);
 
                // Twitter is using its own limiter, so we always assume that shortened links will have this length
-               if (strlen($link) > 0)
+               if (iconv_strlen($link, "UTF-8") > 0)
                        $limit = $limit - 23;
 
-               if (strlen($msg) > $limit) {
+               if (iconv_strlen($msg, "UTF-8") > $limit) {
 
                        if (!isset($post["url"])) {
                                $limit = $limit - 23;
                                $post["url"] = $b["plink"];
-                       }
+                       } elseif (strpos($b["body"], "[share") !== false)
+                               $post["url"] = $b["plink"];
+                       elseif (get_pconfig($b["uid"], "system", "no_intelligent_shortening"))
+                               $post["url"] = $b["plink"];
 
                        $msg = shortenmsg($msg, $limit);
                }