]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/PortableContact.php
Merge branch 'master' into develop
[friendica.git] / src / Protocol / PortableContact.php
index 672956ffb952fe492b23262b9031fe55e3f8e6ee..4eaf5bbb6c74c76e4eda74763a6478f42f16831f 100644 (file)
@@ -522,7 +522,12 @@ class PortableContact
                        }
                }
 
-               $fields = ['updated' => $last_updated, 'last_contact' => DateTimeFormat::utcNow()];
+               $fields = ['last_contact' => DateTimeFormat::utcNow()];
+
+               if (!empty($last_updated)) {
+                       $fields['updated'] = $last_updated;
+               }
+
                dba::update('gcontact', $fields, ['nurl' => normalise_link($profile)]);
 
                if (($gcontacts[0]["generation"] == 0)) {
@@ -1316,20 +1321,8 @@ class PortableContact
                                        $version = $data->version;
                                        $site_name = $data->site_name;
                                        $info = $data->info;
-                                       $register_policy_str = $data->register_policy;
+                                       $register_policy = constant($data->register_policy);
                                        $platform = $data->platform;
-
-                                       switch ($register_policy_str) {
-                                               case "REGISTER_CLOSED":
-                                                       $register_policy = REGISTER_CLOSED;
-                                                       break;
-                                               case "REGISTER_APPROVE":
-                                                       $register_policy = REGISTER_APPROVE;
-                                                       break;
-                                               case "REGISTER_OPEN":
-                                                       $register_policy = REGISTER_OPEN;
-                                                       break;
-                                       }
                                }
                        }
                }
@@ -1427,7 +1420,7 @@ class PortableContact
                        }
 
                        foreach ($tags as $tag) {
-                               dba::insert('gserver-tag', ['gserver-id' => $gserver['id'], 'tag' => $tag]);
+                               dba::insert('gserver-tag', ['gserver-id' => $gserver['id'], 'tag' => $tag], true);
                        }
                }
 
@@ -1436,11 +1429,19 @@ class PortableContact
                if (isset($data->protocols)) {
                        if (isset($data->protocols->diaspora)) {
                                $fields['network'] = NETWORK_DIASPORA;
-                               $fields['batch'] = $data->protocols->diaspora;
+                               if (isset($data->protocols->diaspora->receive)) {
+                                       $fields['batch'] = $data->protocols->diaspora->receive;
+                               } elseif (is_string($data->protocols->diaspora)) {
+                                       $fields['batch'] = $data->protocols->diaspora;
+                               }
                        }
                        if (isset($data->protocols->dfrn)) {
                                $fields['network'] = NETWORK_DFRN;
-                               $fields['batch'] = $data->protocols->dfrn;
+                               if (isset($data->protocols->dfrn->receive)) {
+                                       $fields['batch'] = $data->protocols->dfrn->receive;
+                               } elseif (is_string($data->protocols->dfrn)) {
+                                       $fields['batch'] = $data->protocols->dfrn;
+                               }
                        }
                }
                Diaspora::setRelayContact($server_url, $fields);
@@ -1514,8 +1515,10 @@ class PortableContact
                if ($serverdata) {
                        $servers = json_decode($serverdata);
 
-                       foreach ($servers->pods as $server) {
-                               Worker::add(PRIORITY_LOW, "DiscoverPoCo", "server", "https://".$server->host);
+                       if (is_array($servers->pods)) {
+                               foreach ($servers->pods as $server) {
+                                       Worker::add(PRIORITY_LOW, "DiscoverPoCo", "server", "https://".$server->host);
+                               }
                        }
                }