}
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/")) {
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]";
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);
$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();