aboutsummaryrefslogtreecommitdiffstats
path: root/include/notifier.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-09-17 20:50:09 -0700
committerfriendica <info@friendica.com>2013-09-17 20:50:09 -0700
commitff2ada207a7c90f095d1fad1513440eb08d3840a (patch)
tree75a0388384a44416c0e18cdb418b113ac5bbb8af /include/notifier.php
parent7f4b865c2bbdf481fa94639518026d70a8bf9492 (diff)
downloadvolse-hubzilla-ff2ada207a7c90f095d1fad1513440eb08d3840a.tar.gz
volse-hubzilla-ff2ada207a7c90f095d1fad1513440eb08d3840a.tar.bz2
volse-hubzilla-ff2ada207a7c90f095d1fad1513440eb08d3840a.zip
Pieces we'll need to tie together chanman and account/channel deletion and directory sync. Please do not mess with any of this.
Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. Please do not mess with any of this. OK? Understood?
Diffstat (limited to 'include/notifier.php')
-rw-r--r--include/notifier.php35
1 files changed, 30 insertions, 5 deletions
diff --git a/include/notifier.php b/include/notifier.php
index e1f150bf2..0c7ac5264 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -54,6 +54,7 @@ require_once('include/html2plain.php');
* ZOT
* permission_update abook_id
* refresh_all channel_id
+ * purge_all channel_id
* expire channel_id
* relay item_id (item was relayed to owner, we will deliver it as owner)
*
@@ -219,6 +220,26 @@ function notifier_run($argv, $argc){
$private = false;
$packet_type = 'refresh';
}
+ elseif($cmd === 'purge_all') {
+ logger('notifier: purge_all: ' . $item_id);
+ $s = q("select * from channel where channel_id = %d limit 1",
+ intval($item_id)
+ );
+ if($s)
+ $channel = $s[0];
+ $uid = $item_id;
+ $recipients = array();
+ $r = q("select abook_xchan from abook where abook_channel = %d",
+ intval($item_id)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $recipients[] = $rr['abook_xchan'];
+ }
+ }
+ $private = false;
+ $packet_type = 'purge';
+ }
else {
// Normal items
@@ -388,7 +409,7 @@ function notifier_run($argv, $argc){
$sql_extra = (($private) ? "" : " or hubloc_url = '" . z_root() . "' ");
- $r = q("select distinct hubloc_sitekey, hubloc_callback, hubloc_host from hubloc
+ $r = q("select distinct hubloc_sitekey, hubloc_flags, hubloc_callback, hubloc_host from hubloc
where hubloc_hash in (" . implode(',',$recipients) . ") $sql_extra group by hubloc_sitekey");
if(! $r) {
logger('notifier: no hubs');
@@ -397,8 +418,12 @@ function notifier_run($argv, $argc){
$hubs = $r;
$hublist = array();
- foreach($hubs as $hub)
- $hublist[] = $hub['hubloc_host'];
+ foreach($hubs as $hub) {
+ // don't try to deliver to deleted hublocs
+ if(! ($hub['hubloc_flags'] & HUBLOC_FLAGS_DELETED)) {
+ $hublist[] = $hub['hubloc_host'];
+ }
+ }
logger('notifier: will notify/deliver to these hubs: ' . print_r($hublist,true), LOGGER_DEBUG);
@@ -414,8 +439,8 @@ function notifier_run($argv, $argc){
foreach($hubs as $hub) {
$hash = random_string();
- if($packet_type === 'refresh') {
- $n = zot_build_packet($channel,'refresh');
+ if($packet_type === 'refresh' || $packet_type === 'purge') {
+ $n = zot_build_packet($channel,$packet_type);
q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($channel['channel_account']),