Don't delete and recreate the rows over and over again
This commit is contained in:
parent
bd77556b49
commit
9adf09be51
|
@ -1303,7 +1303,7 @@ class GContact
|
||||||
$gcid = $gcontact['id'];
|
$gcid = $gcontact['id'];
|
||||||
if (!empty($followers)) {
|
if (!empty($followers)) {
|
||||||
// Clear the follower list, since it will be recreated in the next step
|
// Clear the follower list, since it will be recreated in the next step
|
||||||
DBA::delete('gfollower', ['gcid' => $gcid]);
|
DBA::update('gfollower', ['deleted' => true], ['gcid' => $gcid]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$contacts = array_unique(array_merge($followers, $followings));
|
$contacts = array_unique(array_merge($followers, $followings));
|
||||||
|
@ -1317,12 +1317,16 @@ class GContact
|
||||||
$fields = ['gcid' => $gcontact['id'], 'follower-gcid' => $gcid];
|
$fields = ['gcid' => $gcontact['id'], 'follower-gcid' => $gcid];
|
||||||
}
|
}
|
||||||
Logger::info('Set relation between contacts', $fields);
|
Logger::info('Set relation between contacts', $fields);
|
||||||
DBA::update('gfollower', $fields, $fields, true);
|
DBA::update('gfollower', ['deleted' => false], $fields, true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Logger::info('Discover new AP contact', ['url' => $contact]);
|
Logger::info('Discover new AP contact', ['url' => $contact]);
|
||||||
Worker::add(PRIORITY_LOW, 'UpdateGContact', $contact);
|
Worker::add(PRIORITY_LOW, 'UpdateGContact', $contact);
|
||||||
}
|
}
|
||||||
|
if (!empty($followers)) {
|
||||||
|
// Delete all followers that aren't undeleted
|
||||||
|
DBA::delete('gfollower', ['gcid' => $gcid, 'deleted' => true]);
|
||||||
|
}
|
||||||
Logger::info('AP contacts discovery finished', ['url' => $url]);
|
Logger::info('AP contacts discovery finished', ['url' => $url]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -495,6 +495,7 @@ return [
|
||||||
"fields" => [
|
"fields" => [
|
||||||
"gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["gcontact" => "id"], "comment" => "global contact"],
|
"gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["gcontact" => "id"], "comment" => "global contact"],
|
||||||
"follower-gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["gcontact" => "id"], "comment" => "global contact of the follower"],
|
"follower-gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["gcontact" => "id"], "comment" => "global contact of the follower"],
|
||||||
|
"deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 indicates that the connection has been deleted"],
|
||||||
],
|
],
|
||||||
"indexes" => [
|
"indexes" => [
|
||||||
"PRIMARY" => ["gcid", "follower-gcid"],
|
"PRIMARY" => ["gcid", "follower-gcid"],
|
||||||
|
|
Loading…
Reference in a new issue