- $plink = diaspora_plink($diaspora_handle, $guid);
-
- $datarray['uid'] = $importer['uid'];
- $datarray['contact-id'] = $contact['id'];
- $datarray['wall'] = 0;
- $datarray['network'] = NETWORK_DIASPORA;
- $datarray['verb'] = ACTIVITY_POST;
- $datarray['guid'] = $guid;
- $datarray['uri'] = $datarray['parent-uri'] = $message_id;
- $datarray['changed'] = $datarray['created'] = $datarray['edited'] = datetime_convert('UTC','UTC',$created);
- $datarray['private'] = $private;
- $datarray['parent'] = 0;
- $datarray['plink'] = $plink;
- $datarray['owner-name'] = $contact['name'];
- $datarray['owner-link'] = $contact['url'];
- //$datarray['owner-avatar'] = $contact['thumb'];
- $datarray['owner-avatar'] = ((x($contact,'thumb')) ? $contact['thumb'] : $contact['photo']);
- $datarray['author-name'] = $contact['name'];
- $datarray['author-link'] = $contact['url'];
- $datarray['author-avatar'] = $contact['thumb'];
- $datarray['body'] = $body;
- $datarray['tag'] = $str_tags;
- if ($xml->provider_display_name)
- $datarray["app"] = unxmlify($xml->provider_display_name);
- else
- $datarray['app'] = 'Diaspora';
-
- // if empty content it might be a photo that hasn't arrived yet. If a photo arrives, we'll make it visible.
-
- $datarray['visible'] = ((strlen($body)) ? 1 : 0);
-
- DiasporaFetchGuid($datarray);
- $message_id = item_store($datarray);
-
- logger("Stored item with message id ".$message_id, LOGGER_DEBUG);
-
- return 201;
-
-}
-
-function DiasporaFetchGuid($item) {
- preg_replace_callback("&\[url=/posts/([^\[\]]*)\](.*)\[\/url\]&Usi",
- function ($match) use ($item){
- return(DiasporaFetchGuidSub($match, $item));
- },$item["body"]);
-}
-
-function DiasporaFetchGuidSub($match, $item) {
- $a = get_app();
-
- if (!diaspora_store_by_guid($match[1], $item["author-link"]))
- diaspora_store_by_guid($match[1], $item["owner-link"]);
-}
-
-function diaspora_store_by_guid($guid, $server, $uid = 0) {
- require_once("include/Contact.php");
-
- $serverparts = parse_url($server);
- $server = $serverparts["scheme"]."://".$serverparts["host"];
-
- logger("Trying to fetch item ".$guid." from ".$server, LOGGER_DEBUG);
-
- $item = diaspora_fetch_message($guid, $server);
-
- if (!$item)
- return false;
-
- logger("Successfully fetched item ".$guid." from ".$server, LOGGER_DEBUG);
-
- $body = $item["body"];
- $str_tags = $item["tag"];
- $app = $item["app"];
- $created = $item["created"];
- $author = $item["author"];
- $guid = $item["guid"];
- $private = $item["private"];
- $object = $item["object"];
- $objecttype = $item["object-type"];
-
- $message_id = $author.':'.$guid;
- $r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
- intval($uid),
- dbesc($guid)
- );
- if(count($r))
- return $r[0]["id"];
-
- $person = find_diaspora_person_by_handle($author);
-
- $contact_id = get_contact($person['url'], $uid);
-
- $contacts = q("SELECT * FROM `contact` WHERE `id` = %d", intval($contact_id));
- $importers = q("SELECT * FROM `user` WHERE `uid` = %d", intval($uid));