X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fostatus.php;h=b798a605f91eb9a609dee34335949eafaff5847b;hb=57cadf5b8f5d5c45f1931607c22145647ca52f36;hp=4775e2ccb9f083e02554e2cb9dff05cae7a384c4;hpb=08fb662b4a7b9c94a5882b0c6f47ed463dfb0ba2;p=friendica.git diff --git a/include/ostatus.php b/include/ostatus.php index 4775e2ccb9..b798a605f9 100644 --- a/include/ostatus.php +++ b/include/ostatus.php @@ -90,13 +90,20 @@ class ostatus { // 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; @@ -136,6 +143,23 @@ class ostatus { 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', + `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(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); @@ -1586,8 +1610,10 @@ class ostatus { 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"])) @@ -1686,7 +1712,8 @@ class ostatus { $as_object = $doc->createElement("activity:object"); - $parent = q("SELECT * FROM `item` WHERE `id` = %d", intval($item["parent"])); + $parent = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d", + dbesc($item["thr-parent"]), intval($item["uid"])); $parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']); xml::add_element($doc, $as_object, "activity:object-type", self::construct_objecttype($parent[0]));