Transmit via BCC if contact is hidden, don't store announces
This commit is contained in:
parent
906f7b5698
commit
809e556009
2 changed files with 20 additions and 5 deletions
|
@ -332,7 +332,10 @@ class Receiver
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only store content related stuff - and no announces, since they possibly overwrite the original content
|
||||||
|
if (in_array($object_data['object_type'], self::CONTENT_TYPES) && ($type != 'as:Announce')) {
|
||||||
self::storeConversation($object_data, $body);
|
self::storeConversation($object_data, $body);
|
||||||
|
}
|
||||||
|
|
||||||
// Internal flag for thread completion. See Processor.php
|
// Internal flag for thread completion. See Processor.php
|
||||||
if (!empty($activity['thread-completion'])) {
|
if (!empty($activity['thread-completion'])) {
|
||||||
|
|
|
@ -307,6 +307,16 @@ class Transmitter
|
||||||
$last_id = $item['id'];
|
$last_id = $item['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$always_bcc = false;
|
||||||
|
|
||||||
|
// Check if we should always deliver our stuff via BCC
|
||||||
|
if (!empty($item['uid'])) {
|
||||||
|
$profile = Profile::getByUID($item['uid']);
|
||||||
|
if (!empty($profile)) {
|
||||||
|
$always_bcc = $profile['hide-friends'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Will be activated in a later step
|
// Will be activated in a later step
|
||||||
// $networks = [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS];
|
// $networks = [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS];
|
||||||
|
|
||||||
|
@ -349,14 +359,16 @@ class Transmitter
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($receiver_list as $receiver) {
|
foreach ($receiver_list as $receiver) {
|
||||||
$contact = DBA::selectFirst('contact', ['url'], ['id' => $receiver, 'network' => $networks]);
|
$contact = DBA::selectFirst('contact', ['url', 'hidden'], ['id' => $receiver, 'network' => $networks]);
|
||||||
if (DBA::isResult($contact) && !empty($profile = APContact::getByURL($contact['url'], false))) {
|
if (DBA::isResult($contact) && !empty($profile = APContact::getByURL($contact['url'], false))) {
|
||||||
// BCC is currently deactivated, due to Pleroma and Mastodon not reacting like expected
|
if ($contact['hidden'] || $always_bcc) {
|
||||||
// $data['bcc'][] = $profile['url'];
|
$data['bcc'][] = $profile['url'];
|
||||||
|
} else {
|
||||||
$data['cc'][] = $profile['url'];
|
$data['cc'][] = $profile['url'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$parents = Item::select(['id', 'author-link', 'owner-link', 'gravity', 'uri'], ['parent' => $item['parent']]);
|
$parents = Item::select(['id', 'author-link', 'owner-link', 'gravity', 'uri'], ['parent' => $item['parent']]);
|
||||||
while ($parent = Item::fetch($parents)) {
|
while ($parent = Item::fetch($parents)) {
|
||||||
|
|
Loading…
Reference in a new issue