X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FPortableContact.php;h=672956ffb952fe492b23262b9031fe55e3f8e6ee;hb=dd6fd32883bb814fe19d92436352204f5e315224;hp=d5e9d8f8c6a09e1ed3ce231cd63bbf19d8afdbbc;hpb=7868de529e49e9c271fe290ab351038214a943b2;p=friendica.git diff --git a/src/Protocol/PortableContact.php b/src/Protocol/PortableContact.php index d5e9d8f8c6..672956ffb9 100644 --- a/src/Protocol/PortableContact.php +++ b/src/Protocol/PortableContact.php @@ -18,6 +18,7 @@ use Friendica\Model\Profile; use Friendica\Network\Probe; use Friendica\Util\DateTimeFormat; use Friendica\Util\Network; +use Friendica\Protocol\Diaspora; use dba; use DOMDocument; use DOMXPath; @@ -1418,10 +1419,31 @@ class PortableContact dba::delete('gserver-tag', ['gserver-id' => $gserver['id']]); if ($data->scope == 'tags') { + // Avoid duplicates + $tags = []; foreach ($data->tags as $tag) { + $tag = mb_strtolower($tag); + $tags[$tag] = $tag; + } + + foreach ($tags as $tag) { dba::insert('gserver-tag', ['gserver-id' => $gserver['id'], 'tag' => $tag]); } } + + // Create or update the relay contact + $fields = []; + if (isset($data->protocols)) { + if (isset($data->protocols->diaspora)) { + $fields['network'] = NETWORK_DIASPORA; + $fields['batch'] = $data->protocols->diaspora; + } + if (isset($data->protocols->dfrn)) { + $fields['network'] = NETWORK_DFRN; + $fields['batch'] = $data->protocols->dfrn; + } + } + Diaspora::setRelayContact($server_url, $fields); } /**