diff options
author | friendica <info@friendica.com> | 2013-11-17 20:43:50 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2013-11-17 20:43:50 -0800 |
commit | f8b07e1935dd6d035b7458141eca099a2445b077 (patch) | |
tree | cace5f5777a3679b9112199efca042c5e7c82d17 /include/zot.php | |
parent | 6378600747e70ed19f43614cd022aa332d731c45 (diff) | |
download | volse-hubzilla-f8b07e1935dd6d035b7458141eca099a2445b077.tar.gz volse-hubzilla-f8b07e1935dd6d035b7458141eca099a2445b077.tar.bz2 volse-hubzilla-f8b07e1935dd6d035b7458141eca099a2445b077.zip |
filter out duplicate recipients on local deliveries. We only need to deliver stuff once to any particular channel.
Diffstat (limited to 'include/zot.php')
-rw-r--r-- | include/zot.php | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/zot.php b/include/zot.php index 018f00ba5..1191cc221 100644 --- a/include/zot.php +++ b/include/zot.php @@ -910,11 +910,29 @@ function zot_import($arr, $sender_url) { $deliveries = allowed_public_recips($i); } + + // Go through the hash array and remove duplicates. array_unique() won't do this because the array is more than one level. + + $no_dups = array(); + if($deliveries) { + foreach($deliveries as $d) { + if(! in_array($d['hash'],$no_dups)) + $no_dups[] = $d['hash']; + } + + if($no_dups) { + $deliveries = array(); + foreach($no_dups as $n) { + $deliveries[] = array('hash' => $n); + } + } + } + if(! $deliveries) { logger('zot_import: no deliveries on this site'); continue; } - + if($i['message']) { if($i['message']['type'] === 'activity') { $arr = get_item_elements($i['message']); |