From 04ba988f752e290b2bf6b6ab449902cfc0a85b8a Mon Sep 17 00:00:00 2001
From: Michael Vogel <icarus@dabo.de>
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);
 		}