Merge pull request #8387 from annando/gcontact-discovery
Performance changes to the gcontact discovery
This commit is contained in:
commit
8c10099abf
|
@ -1282,7 +1282,7 @@ class GContact
|
||||||
* @param string $url URL of a profile
|
* @param string $url URL of a profile
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function discoverFollowers(string $url, int $following_gcid = 0, int $follower_gcid = 0)
|
public static function discoverFollowers(string $url)
|
||||||
{
|
{
|
||||||
$gcontact = DBA::selectFirst('gcontact', ['id', 'last_discovery'], ['nurl' => Strings::normaliseLink(($url))]);
|
$gcontact = DBA::selectFirst('gcontact', ['id', 'last_discovery'], ['nurl' => Strings::normaliseLink(($url))]);
|
||||||
if (!DBA::isResult($gcontact)) {
|
if (!DBA::isResult($gcontact)) {
|
||||||
|
@ -1296,16 +1296,6 @@ class GContact
|
||||||
|
|
||||||
$gcid = $gcontact['id'];
|
$gcid = $gcontact['id'];
|
||||||
|
|
||||||
if (!empty($following_gcid)) {
|
|
||||||
$fields = ['gcid' => $following_gcid, 'follower-gcid' => $gcid];
|
|
||||||
Logger::info('Set relation for followed gcontact', $fields);
|
|
||||||
DBA::update('gfollower', ['deleted' => false], $fields, true);
|
|
||||||
} elseif (!empty($follower_gcid)) {
|
|
||||||
$fields = ['gcid' => $gcid, 'follower-gcid' => $follower_gcid];
|
|
||||||
Logger::info('Set relation for following gcontact', $fields);
|
|
||||||
DBA::update('gfollower', ['deleted' => false], $fields, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
$apcontact = APContact::getByURL($url);
|
$apcontact = APContact::getByURL($url);
|
||||||
|
|
||||||
if (!empty($apcontact['followers']) && is_string($apcontact['followers'])) {
|
if (!empty($apcontact['followers']) && is_string($apcontact['followers'])) {
|
||||||
|
@ -1350,17 +1340,12 @@ class GContact
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$follower_gcid = 0;
|
if (!Network::isUrlBlocked($contact)) {
|
||||||
$following_gcid = 0;
|
|
||||||
|
|
||||||
if (in_array($contact, $followers)) {
|
|
||||||
$following_gcid = $gcid;
|
|
||||||
} elseif (in_array($contact, $followings)) {
|
|
||||||
$follower_gcid = $gcid;
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger::info('Discover new AP contact', ['url' => $contact]);
|
Logger::info('Discover new AP contact', ['url' => $contact]);
|
||||||
Worker::add(PRIORITY_LOW, 'UpdateGContact', $contact, '', $following_gcid, $follower_gcid);
|
Worker::add(PRIORITY_LOW, 'UpdateGContact', $contact);
|
||||||
|
} else {
|
||||||
|
Logger::info('No discovery, the URL is blocked.', ['url' => $contact]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!empty($followers)) {
|
if (!empty($followers)) {
|
||||||
// Delete all followers that aren't undeleted
|
// Delete all followers that aren't undeleted
|
||||||
|
@ -1395,8 +1380,12 @@ class GContact
|
||||||
if (DBA::exists('gcontact', ['nurl' => Strings::normaliseLink(($entry['value']))])) {
|
if (DBA::exists('gcontact', ['nurl' => Strings::normaliseLink(($entry['value']))])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!Network::isUrlBlocked($entry['value'])) {
|
||||||
Logger::info('Discover new PoCo contact', ['url' => $entry['value']]);
|
Logger::info('Discover new PoCo contact', ['url' => $entry['value']]);
|
||||||
Worker::add(PRIORITY_LOW, 'UpdateGContact', $entry['value']);
|
Worker::add(PRIORITY_LOW, 'UpdateGContact', $entry['value']);
|
||||||
|
} else {
|
||||||
|
Logger::info('No discovery, the URL is blocked.', ['url' => $entry['value']]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,10 +31,8 @@ class UpdateGContact
|
||||||
* Update global contact via probe
|
* Update global contact via probe
|
||||||
* @param string $url Global contact url
|
* @param string $url Global contact url
|
||||||
* @param string $command
|
* @param string $command
|
||||||
* @param integer $following_gcid gcontact ID of the contact that is followed by this one
|
|
||||||
* @param integer $follower_gcid gcontact ID of the contact that is following this one
|
|
||||||
*/
|
*/
|
||||||
public static function execute(string $url, string $command = '', int $following_gcid = 0, int $follower_gcid = 0)
|
public static function execute(string $url, string $command = '')
|
||||||
{
|
{
|
||||||
$force = ($command == "force");
|
$force = ($command == "force");
|
||||||
|
|
||||||
|
@ -43,7 +41,7 @@ class UpdateGContact
|
||||||
Logger::info('Updated from probe', ['url' => $url, 'force' => $force, 'success' => $success]);
|
Logger::info('Updated from probe', ['url' => $url, 'force' => $force, 'success' => $success]);
|
||||||
|
|
||||||
if ($success && DI::config()->get('system', 'gcontact_discovery')) {
|
if ($success && DI::config()->get('system', 'gcontact_discovery')) {
|
||||||
GContact::discoverFollowers($url, $following_gcid, $follower_gcid);
|
GContact::discoverFollowers($url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user