X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fapi.php;h=488e858445648baedf6eb8a0f2a7aa99b936451a;hb=6f72bc8d3a9d82f4762ff77fd008d7a9866ba07f;hp=305a86ca13e7148de24210c2515ea675a1ffd9f0;hpb=01b02dbcaa8532f965389375e961d9c47d74eeec;p=friendica.git diff --git a/include/api.php b/include/api.php index 305a86ca13..488e858445 100644 --- a/include/api.php +++ b/include/api.php @@ -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','*'); @@ -1334,9 +1335,12 @@ $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){ @@ -2867,7 +2871,7 @@ $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, @@ -3121,42 +3125,37 @@ $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) {