X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fitems.php;h=22ae2f60a718fcc2b6e23343af8e2b50a20fc746;hb=4fb059095f7ed058af0f77af5f3a68a401e71bc6;hp=37532eaf9adc8c00c05db48ea1e52160a75057cd;hpb=a32682d78c6738f1922547229f6a293bab9aa2b0;p=friendica.git diff --git a/include/items.php b/include/items.php index 37532eaf9a..22ae2f60a7 100644 --- a/include/items.php +++ b/include/items.php @@ -872,9 +872,18 @@ function get_atom_elements($feed, $item, $contact = array()) { } if (isset($contact["network"]) AND ($contact["network"] == NETWORK_FEED) AND $contact['fetch_further_information']) { - $res["body"] = $res["title"].add_page_info($res['plink'], false, "", ($contact['fetch_further_information'] == 2), $contact['ffi_keyword_blacklist']); + $preview = ""; + + // Handle enclosures and treat them as preview picture + if (isset($attach)) + foreach ($attach AS $attachment) + if ($attachment->type == "image/jpeg") + $preview = $attachment->link; + + $res["body"] = $res["title"].add_page_info($res['plink'], false, $preview, ($contact['fetch_further_information'] == 2), $contact['ffi_keyword_blacklist']); $res["title"] = ""; $res["object-type"] = ACTIVITY_OBJ_BOOKMARK; + unset($res["attach"]); } elseif (isset($contact["network"]) AND ($contact["network"] == NETWORK_OSTATUS)) $res["body"] = add_page_info_to_body($res["body"]); elseif (isset($contact["network"]) AND ($contact["network"] == NETWORK_FEED) AND strstr($res['plink'], ".app.net/")) { @@ -903,6 +912,12 @@ function add_page_info_data($data) { if ($no_photos AND ($data["type"] == "photo")) return(""); + // If the link contains BBCode stuff, make a short link out of this to avoid parsing problems + if (strpos($data["url"], '[') OR strpos($data["url"], ']')) { + require_once("include/network.php"); + $data["url"] = short_link($data["url"]); + } + if (($data["type"] != "photo") AND is_string($data["title"])) $text .= "[bookmark=".$data["url"]."]".trim($data["title"])."[/bookmark]"; @@ -933,7 +948,15 @@ function add_page_info_data($data) { function add_page_info($url, $no_photos = false, $photo = "", $keywords = false, $keyword_blacklist = "") { require_once("mod/parse_url.php"); - $data = parseurl_getsiteinfo($url, true); + $data = Cache::get("parse_url:".$url); + if (is_null($data)){ + $data = parseurl_getsiteinfo($url, true); + Cache::set("parse_url:".$url,serialize($data)); + } else + $data = unserialize($data); + + if ($photo != "") + $data["images"][0]["src"] = $photo; logger('add_page_info: fetch page info for '.$url.' '.print_r($data, true), LOGGER_DEBUG); @@ -1161,6 +1184,11 @@ function item_store($arr,$force_parent = false, $notify = false) { $arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 ); $arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid(30)); $arr['network'] = ((x($arr,'network')) ? trim($arr['network']) : ''); + $arr['postopts'] = ((x($arr,'postopts')) ? trim($arr['postopts']) : ''); + $arr['resource-id'] = ((x($arr,'resource-id')) ? trim($arr['resource-id']) : ''); + $arr['event-id'] = ((x($arr,'event-id')) ? intval($arr['event-id']) : 0 ); + $arr['inform'] = ((x($arr,'inform')) ? trim($arr['inform']) : ''); + $arr['file'] = ((x($arr,'file')) ? trim($arr['file']) : ''); if ($arr['plink'] == "") { $a = get_app();