From 04ba988f752e290b2bf6b6ab449902cfc0a85b8a Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sat, 3 May 2014 23:34:53 +0200 Subject: [PATCH] Plaintext: If a picture link went directly to a picture, this wasn't recognized. Additionally there was a situation when a post could be empty. --- include/plaintext.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/include/plaintext.php b/include/plaintext.php index caba68d8af..65b0b347d3 100644 --- a/include/plaintext.php +++ b/include/plaintext.php @@ -58,6 +58,7 @@ function plaintext($a, $b, $limit = 0, $includedlinks = false) { if (count($pictures) == 1) { // Checking, if the link goes to a picture $data = parseurl_getsiteinfo($pictures[0][1], true); + if ($data["type"] == "photo") { $post["type"] = "photo"; if (isset($data["images"][0])) @@ -67,6 +68,19 @@ function plaintext($a, $b, $limit = 0, $includedlinks = false) { $post["preview"] = $pictures[0][2]; $post["text"] = str_replace($pictures[0][0], "", $body); + } else { + $img_str = fetch_url($pictures[0][1]); + + $tempfile = tempnam(get_config("system","temppath"), "cache"); + file_put_contents($tempfile, $img_str); + $mime = image_type_to_mime_type(exif_imagetype($tempfile)); + unlink($tempfile); + if (substr($mime, 0, 6) == "image/") { + $post["type"] = "photo"; + $post["image"] = $pictures[0][1]; + $post["preview"] = $pictures[0][2]; + $post["text"] = str_replace($pictures[0][0], "", $body); + } } } elseif (count($pictures) > 1) { $post["type"] = "link"; @@ -85,7 +99,8 @@ function plaintext($a, $b, $limit = 0, $includedlinks = false) { $post["image"] = $pictures[0][1]; $post["text"] = $body; } - } else { + } + if (!isset($post["type"])) { $post["type"] = "text"; $post["text"] = trim($body); }