From befb4796f914664f76a714519b70b84fc8fd01a3 Mon Sep 17 00:00:00 2001 From: Art4 Date: Thu, 23 Jan 2025 13:36:57 +0000 Subject: [PATCH] Extract Transmitter::filterReceiverData() as own method --- src/Protocol/ActivityPub/Transmitter.php | 43 ++++++++++++++---------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index a4446e5978..82fb32174a 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -805,25 +805,45 @@ class Transmitter } } + $data = self::filterReceiverData($data, $item['author-link']); + + $receivers = ['to' => array_values($data['to']), 'cc' => array_values($data['cc']), 'bto' => array_values($data['bto']), 'bcc' => array_values($data['bcc']), 'audience' => array_values($data['audience'])]; + + if (!$blindcopy) { + unset($receivers['bto']); + unset($receivers['bcc']); + } + + if (!$blindcopy && count($receivers['audience']) == 1) { + $receivers['audience'] = $receivers['audience'][0]; + } elseif (!$receivers['audience']) { + unset($receivers['audience']); + } + + return $receivers; + } + + private static function filterReceiverData(array $data, string $author_link): array + { $data['to'] = array_unique($data['to']); $data['cc'] = array_unique($data['cc']); $data['bto'] = array_unique($data['bto']); $data['bcc'] = array_unique($data['bcc']); $data['audience'] = array_unique($data['audience']); - if (($key = array_search($item['author-link'], $data['to'])) !== false) { + if (($key = array_search($author_link, $data['to'])) !== false) { unset($data['to'][$key]); } - if (($key = array_search($item['author-link'], $data['cc'])) !== false) { + if (($key = array_search($author_link, $data['cc'])) !== false) { unset($data['cc'][$key]); } - if (($key = array_search($item['author-link'], $data['bto'])) !== false) { + if (($key = array_search($author_link, $data['bto'])) !== false) { unset($data['bto'][$key]); } - if (($key = array_search($item['author-link'], $data['bcc'])) !== false) { + if (($key = array_search($author_link, $data['bcc'])) !== false) { unset($data['bcc'][$key]); } @@ -857,20 +877,7 @@ class Transmitter } } - $receivers = ['to' => array_values($data['to']), 'cc' => array_values($data['cc']), 'bto' => array_values($data['bto']), 'bcc' => array_values($data['bcc']), 'audience' => array_values($data['audience'])]; - - if (!$blindcopy) { - unset($receivers['bto']); - unset($receivers['bcc']); - } - - if (!$blindcopy && count($receivers['audience']) == 1) { - $receivers['audience'] = $receivers['audience'][0]; - } elseif (!$receivers['audience']) { - unset($receivers['audience']); - } - - return $receivers; + return $data; } /**