deliver up to 150 contacts per person using dfrn - in case hub is whacked
This commit is contained in:
parent
d8877b88d6
commit
1908c7ad82
|
@ -255,7 +255,7 @@ function notifier_run($argv, $argc){
|
||||||
$recip_str = implode(', ', $recipients);
|
$recip_str = implode(', ', $recipients);
|
||||||
|
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` IN ( %s ) AND `blocked` = 0 ",
|
$r = q("SELECT * FROM `contact` WHERE `id` IN ( %s ) AND `blocked` = 0 AND `pending` = 0 ",
|
||||||
dbesc($recip_str)
|
dbesc($recip_str)
|
||||||
);
|
);
|
||||||
if(! count($r)){
|
if(! count($r)){
|
||||||
|
@ -370,6 +370,54 @@ function notifier_run($argv, $argc){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($notify_hub) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* If you have less than 150 dfrn friends and it's a public message,
|
||||||
|
* we'll just go ahead and push them out securely with dfrn/rino.
|
||||||
|
* If you've got more than that, you'll have to rely on PuSH delivery.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$max_allowed = ((get_config('system','maxpubdeliver') === false) ? 150 : intval(get_config('system','maxdeliver')));
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Only get the bare essentials and go back for the full record.
|
||||||
|
* If you've got a lot of friends and we grab all the details at once it could exhaust memory.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$r = q("SELECT `id`, `name` FROM `contact`
|
||||||
|
WHERE `network` = 'dfrn' AND `uid` = %d AND `blocked` = 0 AND `pending` = 0
|
||||||
|
AND `rel` != %d ",
|
||||||
|
intval($owner['uid']),
|
||||||
|
intval(REL_FAN)
|
||||||
|
);
|
||||||
|
|
||||||
|
if((count($r)) && ($max_allowed < count($r))) {
|
||||||
|
foreach($r as $rr) {
|
||||||
|
|
||||||
|
/* Don't deliver to folks who have already been delivered to */
|
||||||
|
|
||||||
|
if(! in_array($rr['id'], $conversants)) {
|
||||||
|
$n = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
||||||
|
intval($rr['id'])
|
||||||
|
);
|
||||||
|
if(count($n)) {
|
||||||
|
|
||||||
|
logger('notifier: dfrnpubdelivery: ' . $n[0]['name']);
|
||||||
|
$deliver_status = dfrn_deliver($owner,$n[0],$atom);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
logger('notifier: dfrnpubdelivery: ignoring ' . $rr['name']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user