- foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC]) as $receiver) {
- if ($receiver['url'] == ActivityPub::PUBLIC_COLLECTION) {
- $receivers[$receiver['type']][] = DI::l10n()->t('Public');
- } else {
- $apcontact = DBA::selectFirst('apcontact', ['name'], ['followers' => $receiver['url']]);
- if (!empty($apcontact['name'])) {
- $receivers[$receiver['type']][] = DI::l10n()->t('Followers (%s)', $apcontact['name']);
- } else {
+ foreach (Tag::getByURIId($uriId, [Tag::TO, Tag::CC, Tag::BCC, Tag::AUDIENCE, Tag::ATTRIBUTED]) as $receiver) {
+ // We only display BCC when it contains the current user
+ if (($receiver['type'] == Tag::BCC) && ($receiver['url'] != $own_url)) {
+ continue;
+ }
+
+ switch (Tag::getTargetType($receiver['url'], false)) {
+ case Tag::PUBLIC_COLLECTION:
+ $receivers[$receiver['type']][] = DI::l10n()->t('Public');
+ break;
+ case Tag::GENERAL_COLLECTION:
+ $receivers[$receiver['type']][] = DI::l10n()->t('Collection (%s)', $receiver['name']);
+ break;
+ case Tag::FOLLOWER_COLLECTION:
+ $apcontact = DBA::selectFirst('apcontact', ['name'], ['followers' => $receiver['url']]);
+ $receivers[$receiver['type']][] = DI::l10n()->t('Followers (%s)', $apcontact['name'] ?? $receiver['name']);
+ break;
+ case Tag::ACCOUNT:
+ $apcontact = APContact::getByURL($receiver['url'], false);
+ $receivers[$receiver['type']][] = $apcontact['name'] ?? $receiver['name'];
+ break;
+ default: