mirror of
https://github.com/friendica/friendica
synced 2024-11-19 13:03:41 +00:00
Refactor Worker/Notifier part 2
- Move self-removal in a sub-method in Worker/Notifier
This commit is contained in:
parent
507c215c76
commit
d0228b9b97
1 changed files with 33 additions and 27 deletions
|
@ -82,33 +82,7 @@ class Notifier
|
||||||
$uid = $suggest['uid'];
|
$uid = $suggest['uid'];
|
||||||
$recipients[] = $suggest['cid'];
|
$recipients[] = $suggest['cid'];
|
||||||
} elseif ($cmd == Delivery::REMOVAL) {
|
} elseif ($cmd == Delivery::REMOVAL) {
|
||||||
$r = q("SELECT `contact`.*, `user`.`prvkey` AS `uprvkey`,
|
return self::notifySelfRemoval($target_id, $a->queue['priority'], $a->queue['created']);
|
||||||
`user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`,
|
|
||||||
`user`.`page-flags`, `user`.`prvnets`, `user`.`account-type`, `user`.`guid`
|
|
||||||
FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
|
|
||||||
WHERE `contact`.`uid` = %d AND `contact`.`self` LIMIT 1",
|
|
||||||
intval($target_id));
|
|
||||||
if (!$r) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$user = $r[0];
|
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE NOT `self` AND `uid` = %d", intval($target_id));
|
|
||||||
if (!$r) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
foreach ($r as $contact) {
|
|
||||||
Contact::terminateFriendship($user, $contact, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
$inboxes = ActivityPub\Transmitter::fetchTargetInboxesforUser(0);
|
|
||||||
foreach ($inboxes as $inbox) {
|
|
||||||
Logger::log('Account removal for user ' . $target_id . ' to ' . $inbox .' via ActivityPub', Logger::DEBUG);
|
|
||||||
Worker::add(['priority' => PRIORITY_NEGLIGIBLE, 'created' => $a->queue['created'], 'dont_fork' => true],
|
|
||||||
'APDelivery', Delivery::REMOVAL, '', $inbox, $target_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
} elseif ($cmd == Delivery::RELOCATION) {
|
} elseif ($cmd == Delivery::RELOCATION) {
|
||||||
$normal_mode = false;
|
$normal_mode = false;
|
||||||
$uid = $target_id;
|
$uid = $target_id;
|
||||||
|
@ -525,6 +499,38 @@ class Notifier
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $self_user_id
|
||||||
|
* @param int $priority The priority the Notifier queue item was created with
|
||||||
|
* @param string $created The date the Notifier queue item was created on
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
private static function notifySelfRemoval($self_user_id, $priority, $created)
|
||||||
|
{
|
||||||
|
$owner = User::getOwnerDataById($self_user_id);
|
||||||
|
if (!$owner) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$contacts_stmt = DBA::select('contact', [], ['self' => false, 'uid' => $self_user_id]);
|
||||||
|
if (!DBA::isResult($contacts_stmt)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
while($contact = DBA::fetch($contacts_stmt)) {
|
||||||
|
Contact::terminateFriendship($owner, $contact, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$inboxes = ActivityPub\Transmitter::fetchTargetInboxesforUser(0);
|
||||||
|
foreach ($inboxes as $inbox) {
|
||||||
|
Logger::log('Account removal for user ' . $self_user_id . ' to ' . $inbox .' via ActivityPub', Logger::DEBUG);
|
||||||
|
Worker::add(['priority' => PRIORITY_NEGLIGIBLE, 'created' => $created, 'dont_fork' => true],
|
||||||
|
'APDelivery', Delivery::REMOVAL, '', $inbox, $self_user_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $cmd
|
* @param string $cmd
|
||||||
* @param array $target_item
|
* @param array $target_item
|
||||||
|
|
Loading…
Reference in a new issue