use Friendica\Content\Text\HTML;
use Friendica\Core\Logger;
use Friendica\Database\DBA;
-use Friendica\DI;
use Friendica\Network\Probe;
use Friendica\Protocol\ActivityNamespace;
use Friendica\Protocol\ActivityPub;
use Friendica\Util\Crypto;
-use Friendica\Util\Network;
-use Friendica\Util\JsonLD;
use Friendica\Util\DateTimeFormat;
-use Friendica\Util\Strings;
+use Friendica\Util\JsonLD;
+use Friendica\Util\Network;
class APContact
{
$apcontact['baseurl'] = null;
}
+ if (empty($apcontact['subscribe'])) {
+ $apcontact['subscribe'] = null;
+ }
+
if (!empty($apcontact['baseurl']) && empty($fetched_contact['gsid'])) {
$apcontact['gsid'] = GServer::getID($apcontact['baseurl']);
} elseif (!empty($fetched_contact['gsid'])) {
$apcontact['updated'] = DateTimeFormat::utcNow();
- DBA::update('apcontact', $apcontact, ['url' => $url], true);
-
// We delete the old entry when the URL is changed
- if (($url != $apcontact['url']) && DBA::exists('apcontact', ['url' => $url]) && DBA::exists('apcontact', ['url' => $apcontact['url']])) {
+ if ($url != $apcontact['url']) {
+ Logger::info('Delete changed profile url', ['old' => $url, 'new' => $apcontact['url']]);
DBA::delete('apcontact', ['url' => $url]);
}
+ if (DBA::exists('apcontact', ['url' => $apcontact['url']])) {
+ DBA::update('apcontact', $apcontact, ['url' => $apcontact['url']]);
+ } else {
+ DBA::replace('apcontact', $apcontact);
+ }
+
Logger::info('Updated profile', ['url' => $url]);
return $apcontact;
if (!DBA::exists('inbox-status', ['url' => $url])) {
$fields = array_merge($fields, ['url' => $url, 'created' => $now]);
- DBA::insert('inbox-status', $fields);
+ DBA::replace('inbox-status', $fields);
} else {
DBA::update('inbox-status', $fields, ['url' => $url]);
}