// Only update the contacts if it is an OStatus contact
if ($r AND !$onlyfetch AND ($contact["network"] == NETWORK_OSTATUS)) {
+
// Update contact data
- $value = $xpath->query("atom:link[@rel='salmon']", $context)->item(0)->nodeValue;
- if ($value != "")
- $contact["notify"] = $value;
+ // This query doesn't seem to work
+ // $value = $xpath->query("atom:link[@rel='salmon']", $context)->item(0)->nodeValue;
+ // if ($value != "")
+ // $contact["notify"] = $value;
+
+ // This query doesn't seem to work as well - I hate these queries
+ // $value = $xpath->query("atom:link[@rel='self' and @type='application/atom+xml']", $context)->item(0)->nodeValue;
+ // if ($value != "")
+ // $contact["poll"] = $value;
- $value = $xpath->evaluate('atom:author/uri/text()', $context)->item(0)->nodeValue;
+ $value = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue;
if ($value != "")
$contact["alias"] = $value;
update_contact_avatar($author["author-avatar"], $importer["uid"], $contact["id"]);
}
+ // Ensure that we are having this contact (with uid=0)
+ $cid = get_contact($author["author-link"], 0);
+
+ if ($cid) {
+ // Update it with the current values
+ q("UPDATE `contact` SET `url` = '%s', `name` = '%s', `nick` = '%s', `alias` = '%s',
+ `about` = '%s', `location` = '%s', `notify` = '%s', `poll` = '%s',
+ `success_update` = '%s', `last-update` = '%s'
+ WHERE `id` = %d",
+ dbesc($author["author-link"]), dbesc($contact["name"]), dbesc($contact["nick"]),
+ dbesc($contact["alias"]), dbesc($contact["about"]), dbesc($contact["location"]),
+ dbesc($contact["notify"]), dbesc($contact["poll"]),
+ dbesc(datetime_convert()), dbesc(datetime_convert()), intval($cid));
+
+ // Update the avatar
+ update_contact_avatar($author["author-avatar"], 0, $cid);
+ }
+
$contact["generation"] = 2;
$contact["photo"] = $author["author-avatar"];
update_gcontact($contact);
if (!isset($contact["poll"])) {
$data = probe_url($url);
- $contact["alias"] = $data["alias"];
$contact["poll"] = $data["poll"];
+
+ if (!$contact["alias"])
+ $contact["alias"] = $data["alias"];
}
if (!isset($contact["alias"]))