Renamed function

This commit is contained in:
Michael Vogel 2019-08-30 07:52:21 +02:00
parent 438394bc1d
commit 3b92f7357c
2 changed files with 7 additions and 26 deletions

View file

@ -434,7 +434,7 @@ class PostUpdate
Logger::info('Start'); Logger::info('Start');
$contacts = DBA::p("SELECT ANY_VALUE(`id`) AS `id`, ANY_VALUE(`nurl`) AS `nurl` FROM `contact` $contacts = DBA::p("SELECT `nurl`, `uid` FROM `contact`
WHERE EXISTS (SELECT `nurl` FROM `contact` AS `c2` WHERE EXISTS (SELECT `nurl` FROM `contact` AS `c2`
WHERE `c2`.`nurl` = `contact`.`nurl` AND `c2`.`id` != `contact`.`id` AND `c2`.`uid` = `contact`.`uid` AND `c2`.`network` IN (?, ?, ?) AND NOT `deleted`) WHERE `c2`.`nurl` = `contact`.`nurl` AND `c2`.`id` != `contact`.`id` AND `c2`.`uid` = `contact`.`uid` AND `c2`.`network` IN (?, ?, ?) AND NOT `deleted`)
AND (`network` IN (?, ?, ?) OR (`uid` = ?)) AND NOT `deleted` GROUP BY `nurl`, `uid`", AND (`network` IN (?, ?, ?) OR (`uid` = ?)) AND NOT `deleted` GROUP BY `nurl`, `uid`",
@ -442,8 +442,8 @@ class PostUpdate
Protocol::DIASPORA, Protocol::OSTATUS, Protocol::ACTIVITYPUB, 0); Protocol::DIASPORA, Protocol::OSTATUS, Protocol::ACTIVITYPUB, 0);
while ($contact = DBA::fetch($contacts)) { while ($contact = DBA::fetch($contacts)) {
Logger::info('Remove duplicates', ['id' => $contact['id']]); Logger::info('Remove duplicates', ['nurl' => $contact['nurl'], 'uid' => $contact['uid']]);
Contact::handleDuplicateByID($contact['id']); Contact::removeDuplicates($contact['nurl'], $contact['uid']);
} }
DBA::close($contact); DBA::close($contact);

View file

@ -156,7 +156,7 @@ class Contact extends BaseObject
} }
// Search for duplicated contacts and get rid of them // Search for duplicated contacts and get rid of them
self::handleDuplicates($contact['nurl'], $contact['uid']); self::removeDuplicates($contact['nurl'], $contact['uid']);
return $ret; return $ret;
} }
@ -1880,7 +1880,7 @@ class Contact extends BaseObject
} }
// Search for duplicated contacts and get rid of them // Search for duplicated contacts and get rid of them
if (self::handleDuplicates(Strings::normaliseLink($url), $uid) || ($uid != 0)) { if (self::removeDuplicates(Strings::normaliseLink($url), $uid) || ($uid != 0)) {
return; return;
} }
@ -1921,34 +1921,15 @@ class Contact extends BaseObject
DBA::update('contact', $fields, $condition); DBA::update('contact', $fields, $condition);
} }
/**
* Check and remove duplicate contact entries
*
* @param integer $contact_id Contact ID
* @throws \Exception
*/
public static function handleDuplicateByID(int $contact_id)
{
$contact = DBA::selectFirst('contact', ['nurl', 'uid'], ['id' => $contact_id, 'deleted' => false]);
if (!DBA::isResult($contact)) {
return;
}
// Search for duplicated contacts and get rid of them
self::handleDuplicates($contact['nurl'], $contact['uid']);
return;
}
/** /**
* @brief Helper function for "updateFromProbe". Remove duplicated contacts * @brief Remove duplicated contacts
* *
* @param string $nurl Normalised contact url * @param string $nurl Normalised contact url
* @param integer $uid User id * @param integer $uid User id
* @return boolean * @return boolean
* @throws \Exception * @throws \Exception
*/ */
private static function handleDuplicates(string $nurl, int $uid) public static function removeDuplicates(string $nurl, int $uid)
{ {
$condition = ['nurl' => $nurl, 'uid' => $uid, 'deleted' => false, 'network' => Protocol::FEDERATED]; $condition = ['nurl' => $nurl, 'uid' => $uid, 'deleted' => false, 'network' => Protocol::FEDERATED];
$count = DBA::count('contact', $condition); $count = DBA::count('contact', $condition);