Merge pull request #11331 from annando/forum-receivers

Send community posts only to the community
This commit is contained in:
Tobias Diekershoff 2022-03-14 06:43:43 +01:00 committed by GitHub
commit 5a4b97b0e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -618,10 +618,17 @@ class Transmitter
} }
} }
$is_forum_thread = false;
if (!empty($item['parent'])) { if (!empty($item['parent'])) {
$parents = Post::select(['id', 'author-link', 'owner-link', 'gravity', 'uri'], ['parent' => $item['parent']]); $parents = Post::select(['id', 'author-link', 'owner-link', 'causer-link', 'gravity', 'uri', 'post-reason'], ['parent' => $item['parent']], ['order' => ['id']]);
while ($parent = Post::fetch($parents)) { while ($parent = Post::fetch($parents)) {
if ($parent['gravity'] == GRAVITY_PARENT) { if ($parent['gravity'] == GRAVITY_PARENT) {
if (($parent['post-reason'] == Item::PR_ANNOUNCEMENT) && !empty($parent['causer-link'])) {
$profile = APContact::getByURL($parent['causer-link'], false);
$is_forum_thread = ($profile['type'] == 'Group');
}
$profile = APContact::getByURL($parent['owner-link'], false); $profile = APContact::getByURL($parent['owner-link'], false);
if (!empty($profile)) { if (!empty($profile)) {
if ($item['gravity'] != GRAVITY_PARENT) { if ($item['gravity'] != GRAVITY_PARENT) {
@ -633,11 +640,11 @@ class Transmitter
$data['to'][] = $profile['url']; $data['to'][] = $profile['url'];
} else { } else {
$data['cc'][] = $profile['url']; $data['cc'][] = $profile['url'];
if (($item['private'] != Item::PRIVATE) && !empty($actor_profile['followers'])) { if (($item['private'] != Item::PRIVATE) && !empty($actor_profile['followers'])&& !$is_forum_thread) {
$data['cc'][] = $actor_profile['followers']; $data['cc'][] = $actor_profile['followers'];
} }
} }
} elseif (!$exclusive) { } elseif (!$exclusive && !$is_forum_thread) {
// Public thread parent post always are directed to the followers. // Public thread parent post always are directed to the followers.
if ($item['private'] != Item::PRIVATE) { if ($item['private'] != Item::PRIVATE) {
$data['cc'][] = $actor_profile['followers']; $data['cc'][] = $actor_profile['followers'];