Look for links to diaspora posts and try to fetch them if they aren't on the system.
This commit is contained in:
parent
8490bedefe
commit
86a968002d
|
@ -895,15 +895,38 @@ function diaspora_post($importer,$xml,$msg) {
|
||||||
|
|
||||||
$datarray['visible'] = ((strlen($body)) ? 1 : 0);
|
$datarray['visible'] = ((strlen($body)) ? 1 : 0);
|
||||||
|
|
||||||
|
DiasporaFetchGuid($datarray);
|
||||||
$message_id = item_store($datarray);
|
$message_id = item_store($datarray);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
|
||||||
|
$author = parse_url($item["author-link"]);
|
||||||
|
$authorserver = $author["scheme"]."://".$author["host"];
|
||||||
|
|
||||||
|
$owner = parse_url($item["owner-link"]);
|
||||||
|
$ownerserver = $owner["scheme"]."://".$owner["host"];
|
||||||
|
|
||||||
|
if (!diaspora_store_by_guid($match[1], $authorserver))
|
||||||
|
diaspora_store_by_guid($match[1], $ownerserver);
|
||||||
|
}
|
||||||
|
|
||||||
function diaspora_store_by_guid($guid, $server) {
|
function diaspora_store_by_guid($guid, $server) {
|
||||||
require_once("include/Contact.php");
|
require_once("include/Contact.php");
|
||||||
|
|
||||||
|
logger("fetching item ".$guid." from ".$server, LOGGER_DEBUG);
|
||||||
|
|
||||||
$item = diaspora_fetch_message($guid, $server);
|
$item = diaspora_fetch_message($guid, $server);
|
||||||
|
|
||||||
if (!$item)
|
if (!$item)
|
||||||
|
@ -923,7 +946,7 @@ function diaspora_store_by_guid($guid, $server) {
|
||||||
dbesc($guid)
|
dbesc($guid)
|
||||||
);
|
);
|
||||||
if(count($r))
|
if(count($r))
|
||||||
return true;
|
return $r[0]["id"];
|
||||||
|
|
||||||
$person = find_diaspora_person_by_handle($author);
|
$person = find_diaspora_person_by_handle($author);
|
||||||
|
|
||||||
|
@ -950,6 +973,7 @@ function diaspora_store_by_guid($guid, $server) {
|
||||||
$datarray['app'] = $app;
|
$datarray['app'] = $app;
|
||||||
$datarray['visible'] = ((strlen($body)) ? 1 : 0);
|
$datarray['visible'] = ((strlen($body)) ? 1 : 0);
|
||||||
|
|
||||||
|
DiasporaFetchGuid($datarray);
|
||||||
$message_id = item_store($datarray);
|
$message_id = item_store($datarray);
|
||||||
|
|
||||||
// To-Do:
|
// To-Do:
|
||||||
|
@ -1235,11 +1259,13 @@ function diaspora_reshare($importer,$xml,$msg) {
|
||||||
$datarray2['owner-avatar'] = $datarray2['author-avatar'];
|
$datarray2['owner-avatar'] = $datarray2['author-avatar'];
|
||||||
$datarray2['body'] = $body;
|
$datarray2['body'] = $body;
|
||||||
|
|
||||||
|
DiasporaFetchGuid($datarray2);
|
||||||
$message_id = item_store($datarray2);
|
$message_id = item_store($datarray2);
|
||||||
|
|
||||||
logger("Store original item ".$orig_guid." under message id ".$message_id);
|
logger("Store original item ".$orig_guid." under message id ".$message_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DiasporaFetchGuid($datarray);
|
||||||
$message_id = item_store($datarray);
|
$message_id = item_store($datarray);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -1332,6 +1358,7 @@ function diaspora_asphoto($importer,$xml,$msg) {
|
||||||
|
|
||||||
$datarray['app'] = 'Diaspora/Cubbi.es';
|
$datarray['app'] = 'Diaspora/Cubbi.es';
|
||||||
|
|
||||||
|
DiasporaFetchGuid($datarray);
|
||||||
$message_id = item_store($datarray);
|
$message_id = item_store($datarray);
|
||||||
|
|
||||||
//if($message_id) {
|
//if($message_id) {
|
||||||
|
@ -1512,6 +1539,7 @@ function diaspora_comment($importer,$xml,$msg) {
|
||||||
if(($parent_item['origin']) && (! $parent_author_signature))
|
if(($parent_item['origin']) && (! $parent_author_signature))
|
||||||
$datarray['app'] = 'Diaspora';
|
$datarray['app'] = 'Diaspora';
|
||||||
|
|
||||||
|
DiasporaFetchGuid($datarray);
|
||||||
$message_id = item_store($datarray);
|
$message_id = item_store($datarray);
|
||||||
|
|
||||||
//if($message_id) {
|
//if($message_id) {
|
||||||
|
|
Loading…
Reference in a new issue