- $uid = $contact['uid'];
-
- $data = Probe::uri($contact['url'], '', 0, false);
-
- // 'Feed' or 'Unknown' is mostly a sign of communication problems
- if ((in_array($data['network'], [Protocol::FEED, Protocol::PHANTOM])) && ($data['network'] != $contact['network'])) {
- return;
- }
-
- $updatefields = ['name', 'nick', 'url', 'addr', 'batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'network', 'alias'];
- $fields = [];
-
- if ($data['network'] == Protocol::OSTATUS) {
- $result = Model\Contact::createFromProbe($uid, $data['url'], false);
-
- if ($result['success']) {
- $fields['subhub'] = true;
- }
- }
-
- foreach ($updatefields AS $field) {
- if (!empty($data[$field])) {
- $fields[$field] = $data[$field];
- }
- }
-
- $fields['nurl'] = Strings::normaliseLink($data['url']);
-
- if (!empty($data['priority'])) {
- $fields['priority'] = intval($data['priority']);
- }
-
- if (empty($fields)) {
- return;
- }
-
- DBA::update('contact', $fields, ['id' => $contact_id, 'uid' => local_user()]);
-