]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #2146 from annando/1512-ostatus-picture-posts
authorTobias Diekershoff <tobias.diekershoff@gmx.net>
Sat, 5 Dec 2015 05:47:31 +0000 (06:47 +0100)
committerTobias Diekershoff <tobias.diekershoff@gmx.net>
Sat, 5 Dec 2015 05:47:31 +0000 (06:47 +0100)
Enhancements to picture posts to OStatus

include/bbcode.php
include/ostatus.php
include/plaintext.php

index acf6979d84544788a5eb8a2292ad2f77912b64ef..100c3b93061c9515f13df2c5a060cc31278b1512 100644 (file)
@@ -959,14 +959,14 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
        $Text = preg_replace_callback("&\[url=/posts/([^\[\]]*)\](.*)\[\/url\]&Usi", 'bb_DiasporaLinks', $Text);
 
        // if the HTML is used to generate plain text, then don't do this search, but replace all URL of that kind to text
-       if ($simplehtml != 7) {
+//     if ($simplehtml != 7) {
                if (!$forplaintext)
                        $Text = preg_replace("/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1<a href="$2" target="_blank">$2</a>', $Text);
                else {
                        $Text = preg_replace("(\[url\]([$URLSearchString]*)\[\/url\])ism"," $1 ",$Text);
                        $Text = preg_replace_callback("&\[url=([^\[\]]*)\]\[img\](.*)\[\/img\]\[\/url\]&Usi", 'bb_RemovePictureLinks', $Text);
                }
-       }
+//     }
 
        if ($tryoembed)
                $Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism",'tryoembed',$Text);
index 07eaec85d50f4b962a3b281507e84606ade94ce9..932fc1fa9a7ea142fe06518c14e50fab657e16e9 100644 (file)
@@ -9,6 +9,7 @@ require_once("include/socgraph.php");
 require_once("include/Photo.php");
 require_once("include/Scrape.php");
 require_once("include/follow.php");
+require_once("mod/proxy.php");
 
 define('OSTATUS_DEFAULT_POLL_INTERVAL', 30); // given in minutes
 define('OSTATUS_DEFAULT_POLL_TIMEFRAME', 1440); // given in minutes
@@ -1089,6 +1090,33 @@ function xml_add_element($doc, $parent, $element, $value = "", $attributes = arr
        $parent->appendChild($element);
 }
 
+function ostatus_format_picture_post($body) {
+       $siteinfo = get_attached_data($body);
+
+       if (($siteinfo["type"] == "photo")) {
+               if (isset($siteinfo["preview"]))
+                       $preview = $siteinfo["preview"];
+               else
+                       $preview = $siteinfo["image"];
+
+               // Is it a remote picture? Then make a smaller preview here
+               $preview = proxy_url($preview, false, PROXY_SIZE_SMALL);
+
+               // Is it a local picture? Then make it smaller here
+               $preview = str_replace(array("-0.jpg", "-0.png"), array("-2.jpg", "-2.png"), $preview);
+               $preview = str_replace(array("-1.jpg", "-1.png"), array("-2.jpg", "-2.png"), $preview);
+
+               if (isset($siteinfo["url"]))
+                       $url = $siteinfo["url"];
+               else
+                       $url = $siteinfo["image"];
+
+               $body = trim($siteinfo["text"])." [url]".$url."[/url]\n[img]".$preview."[/img]";
+       }
+
+       return $body;
+}
+
 function ostatus_add_header($doc, $owner) {
        $a = get_app();
 
@@ -1340,6 +1368,8 @@ function ostatus_entry($doc, $item, $owner, $toplevel = false) {
        else
                $body = $item['body'];
 
+       $body = ostatus_format_picture_post($body);
+
        if ($item['title'] != "")
                $body = "[b]".$item['title']."[/b]\n\n".$body;
 
index 4f435fc6a29339a55453eae7ea24cec03641dac3..204feb137f00bf05dba1731977069d6ffc9aa781 100644 (file)
@@ -55,9 +55,10 @@ function get_attached_data($body) {
                                $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];