]> git.mxchange.org Git - friendica.git/blobdiff - include/api.php
Better implementation of "hidewall"
[friendica.git] / include / api.php
index 8d74a4612df70bf6ae7120bcc8f6ff5a4f2184b0..488e858445648baedf6eb8a0f2a7aa99b936451a 100644 (file)
@@ -24,6 +24,7 @@
        require_once('include/group.php');
        require_once('include/like.php');
        require_once('include/NotificationsManager.php');
+       require_once('include/plaintext.php');
 
 
        define('API_METHOD_ANY','*');
 
                $idlist = implode(",", $idarray);
 
-               if ($idlist != "")
-                       $r = q("UPDATE `item` SET `unseen` = 0 WHERE `unseen` AND `id` IN (%s)", $idlist);
+               if ($idlist != "") {
+                       $unseen = q("SELECT `id` FROM `item` WHERE `unseen` AND `id` IN (%s)", $idlist);
 
+                       if ($unseen)
+                               $r = q("UPDATE `item` SET `unseen` = 0 WHERE `unseen` AND `id` IN (%s)", $idlist);
+               }
 
                $data = array('$statuses' => $ret);
                switch($type){
 
                $statushtml = trim(bbcode($body, false, false));
 
-               $search = array("<br>", "<blockquote>", "</blockquote>");
-               $replace = array("<br>\n", "\n<blockquote>", "</blockquote>\n");
+               $search = array("<br>", "<blockquote>", "</blockquote>",
+                               "<h1>", "</h1>", "<h2>", "</h2>",
+                               "<h3>", "</h3>", "<h4>", "</h4>",
+                               "<h5>", "</h5>", "<h6>", "</h6>");
+               $replace = array("<br>\n", "\n<blockquote>", "</blockquote>\n",
+                               "\n<h1>", "</h1>\n", "\n<h2>", "</h2>\n",
+                               "\n<h3>", "</h3>\n", "\n<h4>", "</h4>\n",
+                               "\n<h5>", "</h5>\n", "\n<h6>", "</h6>\n");
                $statushtml = str_replace($search, $replace, $statushtml);
 
                if ($item['title'] != "")
                $scale_sql = ($scale === false ? "" : sprintf("and scale=%d",intval($scale)));
                $data_sql = ($scale === false ? "" : "data, ");
 
-               $r = q("select %s `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
+               $r = q("select %s `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
                                                `type`, `height`, `width`, `datasize`, `profile`, min(`scale`) as minscale, max(`scale`) as maxscale
                                from photo where `uid` = %d and `resource-id` = '%s' %s group by `resource-id`",
                        $data_sql,
                        $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",'[url=$1]$1[/url]',$Text);
                }
 
-               $Text = preg_replace_callback("((.*?)\[class=(.*?)\](.*?)\[\/class\])ism","api_cleanup_share",$Text);
+               // Simplify "attachment" element
+               $Text = api_clean_attachments($Text);
+
                return($Text);
        }
 
-       function api_cleanup_share($shared) {
-               if ($shared[2] != "type-link")
-                       return($shared[0]);
-
-               if (!preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$shared[3], $bookmark))
-                       return($shared[0]);
-
-               $title = "";
-               $link = "";
-
-               if (isset($bookmark[2][0]))
-                       $title = $bookmark[2][0];
-
-               if (isset($bookmark[1][0]))
-                       $link = $bookmark[1][0];
+       /**
+        * @brief Removes most sharing information for API text export
+        *
+        * @param string $body The original body
+        *
+        * @return string Cleaned body
+        */
+       function api_clean_attachments($body) {
+               $data = get_attachment_data($body);
 
-               if (strpos($shared[1],$title) !== false)
-                       $title = "";
+               if (!$data)
+                       return $body;
 
-               if (strpos($shared[1],$link) !== false)
-                       $link = "";
+               $body = "";
 
-               $text = trim($shared[1]);
+               if (isset($data["text"]))
+                       $body = $data["text"];
 
-               //if (strlen($text) < strlen($title))
-               if (($text == "") AND ($title != ""))
-                       $text .= "\n\n".trim($title);
+               if (($body == "") AND (isset($data["title"])))
+                       $body = $data["title"];
 
-               if ($link != "")
-                       $text .= "\n".trim($link);
+               if (isset($data["url"]))
+                       $body .= "\n".$data["url"];
 
-               return(trim($text));
+               return $body;
        }
 
        function api_best_nickname(&$contacts) {