$type = $element->getName();
$orig_type = $type;
+ logger("Got message type ".$type.": ".$msg["message"], LOGGER_DATA);
+
// All retractions are handled identically from now on.
// In the new version there will only be "retraction".
if (in_array($type, array("signed_retraction", "relayable_retraction")))
$d = strtotime($person["updated"]." +00:00");
if ($d < strtotime("now - 14 days"))
$update = true;
+
+ if ($person["guid"] == "")
+ $update = true;
}
if (!$person OR $update) {
`request` = '%s',
`nick` = '%s',
`addr` = '%s',
+ `guid` = '%s',
`batch` = '%s',
`notify` = '%s',
`poll` = '%s',
dbesc($arr["request"]),
dbesc($arr["nick"]),
dbesc($arr["addr"]),
+ dbesc($arr["guid"]),
dbesc($arr["batch"]),
dbesc($arr["notify"]),
dbesc($arr["poll"]),
dbesc($arr["network"])
);
} else {
- $r = q("INSERT INTO `fcontact` (`url`,`name`,`photo`,`request`,`nick`,`addr`,
+ $r = q("INSERT INTO `fcontact` (`url`,`name`,`photo`,`request`,`nick`,`addr`, `guid`,
`batch`, `notify`,`poll`,`confirm`,`network`,`alias`,`pubkey`,`updated`)
VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",
dbesc($arr["url"]),
dbesc($arr["request"]),
dbesc($arr["nick"]),
dbesc($arr["addr"]),
+ dbesc($arr["guid"]),
dbesc($arr["batch"]),
dbesc($arr["notify"]),
dbesc($arr["poll"]),
// That makes us friends.
if ($contact) {
if ($following AND $sharing) {
+ logger("Author ".$author." (Contact ".$contact["id"].") wants to have a bidirectional conection.", LOGGER_DEBUG);
self::receive_request_make_friend($importer, $contact);
+
+ // refetch the contact array
+ $contact = self::contact_by_handle($importer["uid"],$author);
+
+ // If we are now friends, we are sending a share message.
+ // Normally we needn't to do so, but the first message could have been vanished.
+ if (in_array($contact["rel"], array(CONTACT_IS_FRIEND, CONTACT_IS_FOLLOWER))) {
+ $u = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`,
+ `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`,
+ `user`.`page-flags`, `user`.`prvnets`, `user`.`guid`
+ FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
+ WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
+ intval($importer["uid"]));
+ if($u) {
+ logger("Sending share message to author ".$author." - Contact: ".$contact["id"]." - User: ".$importer["uid"], LOGGER_DEBUG);
+ $ret = self::send_share($u[0], $contact);
+ }
+ }
return true;
- } else /// @todo Handle all possible variations of adding and retracting of permissions
+ } else { /// @todo Handle all possible variations of adding and retracting of permissions
+ logger("Author ".$author." (Contact ".$contact["id"].") wants to change the relationship: Following: ".$following." - sharing: ".$sharing. "(By now unsupported)", LOGGER_DEBUG);
return false;
+ }
}
if (!$following AND $sharing AND in_array($importer["page-flags"], array(PAGE_SOAPBOX, PAGE_NORMAL))) {
} elseif (!$following AND !$sharing) {
logger("Author ".$author." doesn't want anything - and we don't know the author. Request is ignored.", LOGGER_DEBUG);
return false;
+ } elseif (!$following AND $sharing) {
+ logger("Author ".$author." wants to share with us.", LOGGER_DEBUG);
+ } elseif ($following AND $sharing) {
+ logger("Author ".$author." wants to have a bidirectional conection.", LOGGER_DEBUG);
+ } elseif ($following AND !$sharing) {
+ logger("Author ".$author." wants to listen to us.", LOGGER_DEBUG);
}
$ret = self::person_by_handle($author);
return;
}
+ logger("Author ".$author." was added as contact number ".$contact_record["id"].".", LOGGER_DEBUG);
+
$def_gid = get_default_group($importer['uid'], $ret["network"]);
if(intval($def_gid))
if($importer["page-flags"] == PAGE_NORMAL) {
+ logger("Sending intra message for author ".$author.".", LOGGER_DEBUG);
+
$hash = random_string().(string)time(); // Generate a confirm_key
$ret = q("INSERT INTO `intro` (`uid`, `contact-id`, `blocked`, `knowyou`, `note`, `hash`, `datetime`)
// automatic friend approval
+ logger("Does an automatic friend approval for author ".$author.".", LOGGER_DEBUG);
+
update_contact_avatar($contact_record["photo"],$importer["uid"],$contact_record["id"]);
// technically they are sharing with us (CONTACT_IS_SHARING),
intval($contact_record["id"])
);
- $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer["uid"]));
- if($u)
+ $u = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`,
+ `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`,
+ `user`.`page-flags`, `user`.`prvnets`, `user`.`guid`
+ FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
+ WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
+ intval($importer["uid"]));
+ if($u) {
+ logger("Sending share message (Relation: ".$new_relation.") to author ".$author." - Contact: ".$contact_record["id"]." - User: ".$importer["uid"], LOGGER_DEBUG);
$ret = self::send_share($u[0], $contact_record);
+ }
}
return true;
$message = array("sender_handle" => self::my_handle($owner),
"recipient_handle" => $contact["addr"]);
+ logger("Send share ".print_r($message, true), LOGGER_DEBUG);
+
return self::build_and_transmit($owner, $contact, "request", $message);
}
"diaspora_handle" => self::my_handle($owner),
"type" => "Person");
+ logger("Send unshare ".print_r($message, true), LOGGER_DEBUG);
+
return self::build_and_transmit($owner, $contact, "retraction", $message);
}