Avoid that forum posts are received via the Diaspora protocol first

This commit is contained in:
Michael 2019-01-19 12:30:16 +00:00
parent 8bd04cb515
commit 103b92fc48
1 changed files with 23 additions and 6 deletions

View File

@ -436,8 +436,9 @@ class Notifier
// The function will ensure that there are no duplicates
$r1 = Diaspora::participantsForThread($item_id, $r1);
// Add the relay to the list, avoid duplicates
if (!$followup) {
// Add the relay to the list, avoid duplicates.
// Don't send community posts to the relay. Forum posts via the Diaspora protocol are looking ugly.
if (!$followup && !self::isForumPost($target_item, $owner)) {
$r1 = Diaspora::relayList($item_id, $r1);
}
}
@ -453,8 +454,16 @@ class Notifier
foreach ($r as $rr) {
$conversants[] = $rr['id'];
Logger::log('Public delivery of item ' . $target_item["guid"] . ' (' . $item_id . ') to ' . json_encode($rr), Logger::DEBUG);
Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
'Delivery', $cmd, $item_id, (int)$rr['id']);
// 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.
// The conversion in Markdown reduces the formatting, so these posts should arrive after the Friendica posts.
if ($rr['network'] == Protocol::DIASPORA) {
$deliver_options = ['priority' => $a->queue['priority'], 'dont_fork' => true];
} else {
$deliver_options = ['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true];
}
Worker::add($deliver_options, 'Delivery', $cmd, $item_id, (int)$rr['id']);
}
}
@ -477,8 +486,16 @@ class Notifier
}
Logger::log('Delivery of item ' . $item_id . ' to ' . json_encode($contact), Logger::DEBUG);
Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
'Delivery', $cmd, $item_id, (int)$contact['id']);
// 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.
// The conversion in Markdown reduces the formatting, so these posts should arrive after the Friendica posts.
if ($contact['network'] == Protocol::DIASPORA) {
$deliver_options = ['priority' => $a->queue['priority'], 'dont_fork' => true];
} else {
$deliver_options = ['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true];
}
Worker::add($deliver_options, 'Delivery', $cmd, $item_id, (int)$contact['id']);
}
}