]> 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 3d30a3299c9e5f18bedd7fd1dce0431d44ef3a97..204feb137f00bf05dba1731977069d6ffc9aa781 100644 (file)
@@ -52,20 +52,19 @@ 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];
                                        $post["text"] = str_replace($pictures[0][0], "", $body);
                                } else {
-                                       $img_str = fetch_url($pictures[0][1]);
-                                       $imgdata = get_photo_info($img_str);
+                                       $imgdata = get_photo_info($pictures[0][1]);
                                        if (substr($imgdata["mime"], 0, 6) == "image/") {
                                                $post["type"] = "photo";
                                                $post["image"] = $pictures[0][1];
@@ -95,6 +94,12 @@ function get_attached_data($body) {
                        $post["type"] = "text";
                        $post["text"] = trim($body);
                }
+       } elseif (isset($post["url"]) AND ($post["type"] == "video")) {
+               require_once("mod/parse_url.php");
+               $data = parseurl_getsiteinfo_cached($post["url"], true);
+
+               if (isset($data["images"][0]))
+                       $post["image"] = $data["images"][0]["src"];
        }
 
        return($post);
@@ -112,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;
        }
@@ -168,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);
                }