Merge pull request #1546 from annando/1505-diaspora
Bugfix: Shadow copy. Improvement: Fetching of missing items for pictures
This commit is contained in:
commit
da23543ffd
2 changed files with 38 additions and 73 deletions
|
@ -827,18 +827,6 @@ function diaspora_post($importer,$xml,$msg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate a guid on our system - we aren't fixing any collisions.
|
|
||||||
// we're ignoring them
|
|
||||||
|
|
||||||
$g = q("select * from guid where guid = '%s' limit 1",
|
|
||||||
dbesc($guid)
|
|
||||||
);
|
|
||||||
if(! count($g)) {
|
|
||||||
q("insert into guid ( guid ) values ( '%s' )",
|
|
||||||
dbesc($guid)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$created = unxmlify($xml->created_at);
|
$created = unxmlify($xml->created_at);
|
||||||
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
|
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
|
||||||
|
|
||||||
|
@ -1041,10 +1029,10 @@ function diaspora_fetch_message($guid, $server, $level = 0) {
|
||||||
} else {
|
} else {
|
||||||
// Maybe it is a reshare of a photo that will be delivered at a later time (testing)
|
// Maybe it is a reshare of a photo that will be delivered at a later time (testing)
|
||||||
logger('no content found: '.print_r($source_xml,true));
|
logger('no content found: '.print_r($source_xml,true));
|
||||||
$body = "";
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($body == "")
|
if (trim($body) == "")
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$item["tag"] = '';
|
$item["tag"] = '';
|
||||||
|
@ -1093,20 +1081,27 @@ function diaspora_reshare($importer,$xml,$msg) {
|
||||||
$create_original_post = false;
|
$create_original_post = false;
|
||||||
|
|
||||||
// Do we already have this item?
|
// Do we already have this item?
|
||||||
$r = q("SELECT `body`, `tag`, `app`, `author-link`, `plink` FROM `item` WHERE `guid` = '%s' AND `visible` AND NOT `deleted` AND `body` != '' LIMIT 1",
|
$r = q("SELECT `body`, `tag`, `app`, `created`, `author-link`, `plink` FROM `item` WHERE `guid` = '%s' AND `visible` AND NOT `deleted` AND `body` != '' LIMIT 1",
|
||||||
dbesc($orig_guid),
|
dbesc($orig_guid),
|
||||||
dbesc(NETWORK_DIASPORA)
|
dbesc(NETWORK_DIASPORA)
|
||||||
);
|
);
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
logger('reshared message '.orig_guid." reshared by ".$guid.' already exists on system: '.$orig_url);
|
logger('reshared message '.$orig_guid." reshared by ".$guid.' already exists on system: '.$orig_url);
|
||||||
|
|
||||||
// Maybe it is already a reshared item?
|
// Maybe it is already a reshared item?
|
||||||
// Then refetch the content, since there can be many side effects with reshared posts from other networks or reshares from reshares
|
// Then refetch the content, since there can be many side effects with reshared posts from other networks or reshares from reshares
|
||||||
require_once('include/api.php');
|
require_once('include/api.php');
|
||||||
if (api_share_as_retweet($r[0]))
|
if (api_share_as_retweet($r[0]))
|
||||||
$r = array();
|
$r = array();
|
||||||
else
|
else {
|
||||||
$orig_url = $a->get_baseurl().'/display/'.$orig_guid;
|
$body = $r[0]["body"];
|
||||||
|
$str_tags = $r[0]["tag"];
|
||||||
|
$app = $r[0]["app"];
|
||||||
|
$orig_created = $r[0]["created"];
|
||||||
|
$orig_author = $r[0]["author-link"];
|
||||||
|
$create_original_post = ($body != "");
|
||||||
|
$orig_url = $a->get_baseurl()."/display/".$orig_guid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!count($r)) {
|
if (!count($r)) {
|
||||||
|
@ -1150,18 +1145,6 @@ function diaspora_reshare($importer,$xml,$msg) {
|
||||||
|
|
||||||
$person = find_diaspora_person_by_handle($orig_author);
|
$person = find_diaspora_person_by_handle($orig_author);
|
||||||
|
|
||||||
// allocate a guid on our system - we aren't fixing any collisions.
|
|
||||||
// we're ignoring them
|
|
||||||
|
|
||||||
$g = q("select * from guid where guid = '%s' limit 1",
|
|
||||||
dbesc($guid)
|
|
||||||
);
|
|
||||||
if(! count($g)) {
|
|
||||||
q("insert into guid ( guid ) values ( '%s' )",
|
|
||||||
dbesc($guid)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$created = unxmlify($xml->created_at);
|
$created = unxmlify($xml->created_at);
|
||||||
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
|
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
|
||||||
|
|
||||||
|
@ -1270,18 +1253,6 @@ function diaspora_asphoto($importer,$xml,$msg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate a guid on our system - we aren't fixing any collisions.
|
|
||||||
// we're ignoring them
|
|
||||||
|
|
||||||
$g = q("select * from guid where guid = '%s' limit 1",
|
|
||||||
dbesc($guid)
|
|
||||||
);
|
|
||||||
if(! count($g)) {
|
|
||||||
q("insert into guid ( guid ) values ( '%s' )",
|
|
||||||
dbesc($guid)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$created = unxmlify($xml->created_at);
|
$created = unxmlify($xml->created_at);
|
||||||
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
|
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
|
||||||
|
|
||||||
|
@ -1705,7 +1676,7 @@ function diaspora_conversation($importer,$xml,$msg) {
|
||||||
'language' => $importer['language'],
|
'language' => $importer['language'],
|
||||||
'to_name' => $importer['username'],
|
'to_name' => $importer['username'],
|
||||||
'to_email' => $importer['email'],
|
'to_email' => $importer['email'],
|
||||||
'uid' =>$importer['importer_uid'],
|
'uid' =>$importer['uid'],
|
||||||
'item' => array('subject' => $subject, 'body' => $body),
|
'item' => array('subject' => $subject, 'body' => $body),
|
||||||
'source_name' => $person['name'],
|
'source_name' => $person['name'],
|
||||||
'source_link' => $person['url'],
|
'source_link' => $person['url'],
|
||||||
|
@ -1860,6 +1831,20 @@ function diaspora_photo($importer,$xml,$msg,$attempt=1) {
|
||||||
intval($attempt + 1)
|
intval($attempt + 1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$r = q("SELECT `id` FROM `item` WHERE `uid` = 0 AND `guid` = '%s' LIMIT 1", dbesc($status_message_guid));
|
||||||
|
if(!count($r)) {
|
||||||
|
// Fetching the missing item as a public shadow
|
||||||
|
// To-Do: Doing it for every post that is missing
|
||||||
|
$item = array();
|
||||||
|
$item["author-link"] = $contact['url'];
|
||||||
|
$item["owner-link"] = $contact['url'];
|
||||||
|
|
||||||
|
DiasporaFetchGuidSub($status_message_guid, $item);
|
||||||
|
|
||||||
|
logger("Storing missing item ".$status_message_guid." as public shadow", LOGGER_DEBUG);
|
||||||
|
}
|
||||||
|
|
||||||
logger('diaspora_photo: attempt = ' . $attempt . '; status message not found: ' . $status_message_guid . ' for photo: ' . $guid);
|
logger('diaspora_photo: attempt = ' . $attempt . '; status message not found: ' . $status_message_guid . ' for photo: ' . $guid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ function update_thread_uri($itemuri, $uid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_thread($itemid, $setmention = false) {
|
function update_thread($itemid, $setmention = false) {
|
||||||
$items = q("SELECT `uid`, `uri`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`,
|
$items = q("SELECT `uid`, `guid`, `title`, `body`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`,
|
||||||
`deleted`, `origin`, `forum_mode`, `network` FROM `item` WHERE `id` = %d AND (`parent` = %d OR `parent` = 0) LIMIT 1", intval($itemid), intval($itemid));
|
`deleted`, `origin`, `forum_mode`, `network` FROM `item` WHERE `id` = %d AND (`parent` = %d OR `parent` = 0) LIMIT 1", intval($itemid), intval($itemid));
|
||||||
|
|
||||||
if (!$items)
|
if (!$items)
|
||||||
|
@ -126,7 +126,7 @@ function update_thread($itemid, $setmention = false) {
|
||||||
$sql = "";
|
$sql = "";
|
||||||
|
|
||||||
foreach ($item AS $field => $data)
|
foreach ($item AS $field => $data)
|
||||||
if ($field != "uri") {
|
if (!in_array($field, array("guid", "title", "body"))) {
|
||||||
if ($sql != "")
|
if ($sql != "")
|
||||||
$sql .= ", ";
|
$sql .= ", ";
|
||||||
|
|
||||||
|
@ -135,40 +135,20 @@ function update_thread($itemid, $setmention = false) {
|
||||||
|
|
||||||
$result = q("UPDATE `thread` SET ".$sql." WHERE `iid` = %d", intval($itemid));
|
$result = q("UPDATE `thread` SET ".$sql." WHERE `iid` = %d", intval($itemid));
|
||||||
|
|
||||||
logger("update_thread: Update thread for item ".$itemid." - ".print_r($result, true)." ".print_r($item, true), LOGGER_DEBUG);
|
logger("Update thread for item ".$itemid." - guid ".$item["guid"]." - ".print_r($result, true)." ".print_r($item, true), LOGGER_DEBUG);
|
||||||
|
|
||||||
// Updating a shadow item entry
|
// Updating a shadow item entry
|
||||||
$items = q("SELECT `id`, `title`, `body`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`,
|
$items = q("SELECT `id` FROM `item` WHERE `guid` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item["guid"]));
|
||||||
`moderated`, `visible`, `spam`, `starred`, `bookmark`, `deleted`, `origin`, `forum_mode`, `network`
|
|
||||||
FROM `item` WHERE `uri` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item["uri"]));
|
|
||||||
|
|
||||||
if (!$items)
|
if (!$items)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$item = $items[0];
|
$result = q("UPDATE `item` SET `title` = '%s', `body` = '%s' WHERE `id` = %d",
|
||||||
|
|
||||||
$result = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `network` = '%s' WHERE `id` = %d",
|
|
||||||
dbesc($item["title"]),
|
dbesc($item["title"]),
|
||||||
dbesc($item["body"]),
|
dbesc($item["body"]),
|
||||||
dbesc($item["network"]),
|
intval($items[0]["id"])
|
||||||
intval($item["id"])
|
|
||||||
);
|
);
|
||||||
logger("update_thread: Updating public shadow for post ".$item["id"]." Result: ".print_r($result, true), LOGGER_DEBUG);
|
logger("Updating public shadow for post ".$items[0]["id"]." - guid ".$item["guid"]." Result: ".print_r($result, true), LOGGER_DEBUG);
|
||||||
|
|
||||||
/*
|
|
||||||
$sql = "";
|
|
||||||
|
|
||||||
foreach ($item AS $field => $data)
|
|
||||||
if ($field != "id") {
|
|
||||||
if ($sql != "")
|
|
||||||
$sql .= ", ";
|
|
||||||
|
|
||||||
$sql .= "`".$field."` = '".dbesc($data)."'";
|
|
||||||
}
|
|
||||||
//logger("update_thread: Updating public shadow for post ".$item["id"]." SQL: ".$sql, LOGGER_DEBUG);
|
|
||||||
$result = q("UPDATE `item` SET ".$sql." WHERE `id` = %d", intval($item["id"]));
|
|
||||||
logger("update_thread: Updating public shadow for post ".$item["id"]." Result: ".print_r($result, true), LOGGER_DEBUG);
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete_thread_uri($itemuri, $uid) {
|
function delete_thread_uri($itemuri, $uid) {
|
||||||
|
|
Loading…
Reference in a new issue