Merge pull request #14528 from annando/deletion

Process deletions via ActivityPub
This commit is contained in:
Tobias Diekershoff 2024-11-03 13:48:22 +01:00 committed by GitHub
commit c21e6b5e6d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 9 additions and 6 deletions

View file

@ -1082,7 +1082,7 @@ class Contact
*/ */
public static function markForArchival(array $contact) public static function markForArchival(array $contact)
{ {
if ((!isset($contact['url']) || !isset($contact['uri-id'])) && !empty($contact['id'])) { if ((!isset($contact['uri-id']) || !isset($contact['url']) || !isset($contact['archive']) || !isset($contact['self']) || !isset($contact['term-date'])) && !empty($contact['id'])) {
$fields = ['id', 'uri-id', 'url', 'archive', 'self', 'term-date']; $fields = ['id', 'uri-id', 'url', 'archive', 'self', 'term-date'];
$contact = DBA::selectFirst('contact', $fields, ['id' => $contact['id']]); $contact = DBA::selectFirst('contact', $fields, ['id' => $contact['id']]);
if (!DBA::isResult($contact)) { if (!DBA::isResult($contact)) {

View file

@ -1391,7 +1391,7 @@ class Transmitter
} }
} }
if (!$api_mode && !$item['origin']) { if (!$api_mode && !$item['deleted'] && !$item['origin']) {
Logger::debug('Post is not ours and is not stored', ['id' => $item['id'], 'uri-id' => $item['uri-id']]); Logger::debug('Post is not ours and is not stored', ['id' => $item['id'], 'uri-id' => $item['uri-id']]);
return false; return false;
} }

View file

@ -986,7 +986,7 @@ class DFRN
Logger::notice('Got exception', ['code' => $th->getCode(), 'message' => $th->getMessage()]); Logger::notice('Got exception', ['code' => $th->getCode(), 'message' => $th->getMessage()]);
return -25; return -25;
} }
Item::incrementOutbound(Protocol::DFRN);
$xml = $postResult->getBodyString(); $xml = $postResult->getBodyString();
$curl_stat = $postResult->getReturnCode(); $curl_stat = $postResult->getReturnCode();
@ -1017,6 +1017,7 @@ class DFRN
if (!empty($contact['gsid'])) { if (!empty($contact['gsid'])) {
GServer::setReachableById($contact['gsid'], Protocol::DFRN); GServer::setReachableById($contact['gsid'], Protocol::DFRN);
Item::incrementOutbound(Protocol::DFRN);
} }
if (!empty($res->message)) { if (!empty($res->message)) {

View file

@ -2962,7 +2962,6 @@ class Diaspora
return 0; return 0;
} }
$return_code = $postResult->getReturnCode(); $return_code = $postResult->getReturnCode();
Item::incrementOutbound(Protocol::DIASPORA);
} else { } else {
Logger::notice('test_mode'); Logger::notice('test_mode');
return 200; return 200;
@ -2971,6 +2970,7 @@ class Diaspora
if (!empty($contact['gsid']) && (empty($return_code) || $postResult->isTimeout())) { if (!empty($contact['gsid']) && (empty($return_code) || $postResult->isTimeout())) {
GServer::setFailureById($contact['gsid']); GServer::setFailureById($contact['gsid']);
} elseif (!empty($contact['gsid']) && ($return_code >= 200) && ($return_code <= 299)) { } elseif (!empty($contact['gsid']) && ($return_code >= 200) && ($return_code <= 299)) {
Item::incrementOutbound(Protocol::DIASPORA);
GServer::setReachableById($contact['gsid'], Protocol::DIASPORA); GServer::setReachableById($contact['gsid'], Protocol::DIASPORA);
} }

View file

@ -297,7 +297,9 @@ class HTTPSignature
self::setInboxStatus($target, ($return_code >= 200) && ($return_code <= 299)); self::setInboxStatus($target, ($return_code >= 200) && ($return_code <= 299));
Item::incrementOutbound(Protocol::ACTIVITYPUB); if (($return_code >= 200) && ($return_code <= 299)) {
Item::incrementOutbound(Protocol::ACTIVITYPUB);
}
return $postResult; return $postResult;
} }

View file

@ -527,7 +527,7 @@ class Notifier
continue; continue;
} }
Logger::info('Delivery', ['batch' => $in_batch, 'target' => $post_uriid, 'uid' => $sender_uid, 'guid' => $target_item['guid'] ?? '', 'to' => $contact]); Logger::info('Delivery', ['cmd' => $cmd, 'batch' => $in_batch, 'target' => $post_uriid, 'uid' => $sender_uid, 'guid' => $target_item['guid'] ?? '', 'to' => $contact]);
// Ensure that posts with our own protocol arrives before Diaspora posts arrive. // Ensure that posts with our own protocol arrives before Diaspora posts arrive.
// Situation is that sometimes Friendica servers receive Friendica posts over the Diaspora protocol first. // Situation is that sometimes Friendica servers receive Friendica posts over the Diaspora protocol first.