Bugfix: Answers to OStatus posts should never reach Diaspora
This commit is contained in:
parent
ee39aba490
commit
906c7d528b
1 changed files with 21 additions and 20 deletions
|
@ -220,6 +220,9 @@ function notifier_run(&$argv, &$argc){
|
||||||
|
|
||||||
$hub = get_config('system','huburl');
|
$hub = get_config('system','huburl');
|
||||||
|
|
||||||
|
// Should the post be transmitted to Diaspora?
|
||||||
|
$diaspora_delivery = true;
|
||||||
|
|
||||||
// If this is a public conversation, notify the feed hub
|
// If this is a public conversation, notify the feed hub
|
||||||
$public_message = true;
|
$public_message = true;
|
||||||
|
|
||||||
|
@ -240,7 +243,7 @@ function notifier_run(&$argv, &$argc){
|
||||||
$thr_parent = q("SELECT `network`, `author-link`, `owner-link` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
|
$thr_parent = q("SELECT `network`, `author-link`, `owner-link` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
|
||||||
dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
|
dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
|
||||||
|
|
||||||
logger('Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
|
logger('GUID: '.$target_item["guid"].': Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
|
||||||
|
|
||||||
// This is IMPORTANT!!!!
|
// This is IMPORTANT!!!!
|
||||||
|
|
||||||
|
@ -396,6 +399,8 @@ function notifier_run(&$argv, &$argc){
|
||||||
// We have not only to look at the parent, since it could be a Friendica thread.
|
// We have not only to look at the parent, since it could be a Friendica thread.
|
||||||
if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) {
|
if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) {
|
||||||
|
|
||||||
|
$diaspora_delivery = false;
|
||||||
|
|
||||||
logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent[0]['author-link']." - Owner: ".$thr_parent[0]['owner-link'], LOGGER_DEBUG);
|
logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent[0]['author-link']." - Owner: ".$thr_parent[0]['owner-link'], LOGGER_DEBUG);
|
||||||
|
|
||||||
// Send a salmon to the parent author
|
// Send a salmon to the parent author
|
||||||
|
@ -413,7 +418,7 @@ function notifier_run(&$argv, &$argc){
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send a salmon to the parent owner
|
// Send a salmon to the parent owner
|
||||||
$r = q("SELECT `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
|
$r = q("SELECT `url`, `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
|
||||||
dbesc(normalise_link($thr_parent[0]['owner-link'])),
|
dbesc(normalise_link($thr_parent[0]['owner-link'])),
|
||||||
intval($uid));
|
intval($uid));
|
||||||
if ($r)
|
if ($r)
|
||||||
|
@ -443,12 +448,6 @@ function notifier_run(&$argv, &$argc){
|
||||||
$sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."')";
|
$sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."')";
|
||||||
} else
|
} else
|
||||||
$sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."', '".NETWORK_DIASPORA."', '".NETWORK_MAIL."', '".NETWORK_MAIL2."')";
|
$sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."', '".NETWORK_DIASPORA."', '".NETWORK_MAIL."', '".NETWORK_MAIL2."')";
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` IN ($conversant_str) AND NOT `blocked` AND NOT `pending` AND NOT `archive`".$sql_extra);
|
|
||||||
|
|
||||||
if (dbm::is_result($r))
|
|
||||||
$contacts = $r;
|
|
||||||
|
|
||||||
} else
|
} else
|
||||||
$public_message = false;
|
$public_message = false;
|
||||||
|
|
||||||
|
@ -479,11 +478,10 @@ function notifier_run(&$argv, &$argc){
|
||||||
if ($relocate)
|
if ($relocate)
|
||||||
$r = $recipients_relocate;
|
$r = $recipients_relocate;
|
||||||
else
|
else
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND NOT `blocked` AND NOT `pending` AND NOT `archive`",
|
$r = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND NOT `blocked` AND NOT `pending` AND NOT `archive`".$sql_extra,
|
||||||
dbesc($recip_str)
|
dbesc($recip_str)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$interval = ((get_config('system','delivery_interval') === false) ? 2 : intval(get_config('system','delivery_interval')));
|
$interval = ((get_config('system','delivery_interval') === false) ? 2 : intval(get_config('system','delivery_interval')));
|
||||||
|
|
||||||
// If we are using the worker we don't need a delivery interval
|
// If we are using the worker we don't need a delivery interval
|
||||||
|
@ -570,10 +568,12 @@ function notifier_run(&$argv, &$argc){
|
||||||
|
|
||||||
if($public_message) {
|
if($public_message) {
|
||||||
|
|
||||||
|
$r0 = array();
|
||||||
|
$r1 = array();
|
||||||
|
|
||||||
|
if ($diaspora_delivery) {
|
||||||
if (!$followup)
|
if (!$followup)
|
||||||
$r0 = Diaspora::relay_list();
|
$r0 = Diaspora::relay_list();
|
||||||
else
|
|
||||||
$r0 = array();
|
|
||||||
|
|
||||||
$r1 = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s'
|
$r1 = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s'
|
||||||
AND `uid` = %d AND `rel` != %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` GROUP BY `batch` ORDER BY rand()",
|
AND `uid` = %d AND `rel` != %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` GROUP BY `batch` ORDER BY rand()",
|
||||||
|
@ -581,6 +581,7 @@ function notifier_run(&$argv, &$argc){
|
||||||
intval($owner['uid']),
|
intval($owner['uid']),
|
||||||
intval(CONTACT_IS_SHARING)
|
intval(CONTACT_IS_SHARING)
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$r2 = q("SELECT `id`, `name`,`network` FROM `contact`
|
$r2 = q("SELECT `id`, `name`,`network` FROM `contact`
|
||||||
WHERE `network` in ( '%s', '%s') AND `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
WHERE `network` in ( '%s', '%s') AND `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
||||||
|
|
Loading…
Reference in a new issue