-- ------------------------------------------
-- Friendica 2024.03-rc (Yellow Archangel)
--- DB_UPDATE_VERSION 1556
+-- DB_UPDATE_VERSION 1557
-- ------------------------------------------
}
$apcontact['discoverable'] = JsonLD::fetchElement($compacted, 'toot:discoverable', '@value');
+ if (is_null($apcontact['discoverable']) && ($apcontact['type'] == 'Application')) {
+ $apcontact['discoverable'] = false;
+ }
if (!empty($apcontact['photo'])) {
$apcontact['photo'] = Network::addBasePath($apcontact['photo'], $apcontact['url']);
{
// Always unarchive the relay contact entry
if (!empty($contact['batch']) && !empty($contact['term-date']) && ($contact['term-date'] > DBA::NULL_DATETIME)) {
- $fields = ['failed' => false, 'term-date' => DBA::NULL_DATETIME, 'archive' => false];
+ $fields = ['failed' => false, 'term-date' => DBA::NULL_DATETIME, 'archive' => false, 'unsearchable' => true];
$condition = ['uid' => 0, 'network' => Protocol::FEDERATED, 'batch' => $contact['batch'], 'contact-type' => self::TYPE_RELAY];
if (!DBA::exists('contact', array_merge($condition, $fields))) {
self::update($fields, $condition);
'following', 'followers', 'inbox', 'outbox', 'sharedinbox',
'priority', 'network', 'pubkey', 'manually-approve', 'baseurl', 'gsid'];
- $numeric_fields = ['gsid', 'hide', 'account-type', 'manually-approve'];
+ $numeric_fields = ['gsid', 'account-type'];
+ $boolean_fields = ['hide', 'manually-approve'];
if (!empty($data['photo'])) {
$data['photo'] = Network::addBasePath($data['photo'], $data['url']);
if (isset($data[$field])) {
if (in_array($field, $numeric_fields)) {
$newdata[$field] = (int)$data[$field];
+ } elseif (in_array($field, $boolean_fields)) {
+ $newdata[$field] = (bool)$data[$field];
} else {
$newdata[$field] = trim($data[$field]);
}
$fields['contact-type'] = Contact::TYPE_RELAY;
Logger::info('Assigning missing data for relay contact', ['server' => $gserver['url'], 'id' => $old['id']]);
}
- } elseif (empty($fields)) {
+ } elseif (empty($fields) && $old['unsearchable']) {
Logger::info('No content to update, quitting', ['server' => $gserver['url']]);
return;
}
if (DBA::isResult($old)) {
- $fields['updated'] = DateTimeFormat::utcNow();
+ $fields['updated'] = DateTimeFormat::utcNow();
+ $fields['unsearchable'] = true;
Logger::info('Update relay contact', ['server' => $gserver['url'], 'id' => $old['id'], 'fields' => $fields]);
Contact::update($fields, ['id' => $old['id']], $old);
'rel' => Contact::FOLLOWER, 'blocked' => false,
'pending' => false, 'writable' => true,
'gsid' => $gserver['id'],
+ 'unsearchable' => true,
'baseurl' => $gserver['url'], 'contact-type' => Contact::TYPE_RELAY];
$fields = array_merge($default, $fields);
// This file is required several times during the test in DbaDefinition which justifies this condition
if (!defined('DB_UPDATE_VERSION')) {
- define('DB_UPDATE_VERSION', 1556);
+ define('DB_UPDATE_VERSION', 1557);
}
return [
use Friendica\Protocol\Delivery;
use Friendica\Security\PermissionSet\Repository\PermissionSet;
use Friendica\Util\DateTimeFormat;
+use Friendica\Worker\UpdateContact;
// Post-update script of PR 5751
function update_1298()
return Update::SUCCESS;
}
+
+function update_1557()
+{
+ $contacts = DBA::select('account-view', ['id'], ['platform' => 'friendica', 'contact-type' => Contact::TYPE_RELAY]);
+ while ($contact = DBA::fetch($contacts)) {
+ UpdateContact::add(Worker::PRIORITY_LOW, $contact['id']);
+ }
+ DBA::close($contacts);
+ return Update::SUCCESS;
+}