X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fnotifier.php;h=ec2b666bede9109304020a3bc3993c66abe7ea03;hb=5b5b94232527a3ab4226378b3667907f06b42a35;hp=84ed9884aaa85d2eb0ae2bab18f6adbdfc2083f8;hpb=8f5d2471ddcbf6b8bcdd51d9f1d9f7a0b3894cb4;p=friendica.git diff --git a/include/notifier.php b/include/notifier.php index 84ed9884aa..ec2b666bed 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -4,6 +4,7 @@ require_once('include/queue_fn.php'); require_once('include/html2plain.php'); require_once("include/Scrape.php"); require_once('include/diaspora.php'); +require_once("include/ostatus.php"); /* * This file was at one time responsible for doing all deliveries, but this caused @@ -295,7 +296,7 @@ function notifier_run(&$argv, &$argc){ $relay_to_owner = false; if($relay_to_owner) { - logger('notifier: followup', LOGGER_DEBUG); + logger('notifier: followup '.$target_item["guid"], LOGGER_DEBUG); // local followup to remote post $followup = true; $public_message = false; // not public @@ -331,6 +332,8 @@ function notifier_run(&$argv, &$argc){ } else { $followup = false; + logger('Distributing directly '.$target_item["guid"], LOGGER_DEBUG); + // don't send deletions onward for other people's stuff if($target_item['deleted'] && (! intval($target_item['wall']))) { @@ -378,7 +381,7 @@ function notifier_run(&$argv, &$argc){ } if (count($url_recipients)) - logger('notifier: url_recipients ' . print_r($url_recipients,true)); + logger('notifier: '.$target_item["guid"].' url_recipients ' . print_r($url_recipients,true)); $conversants = array_unique($conversants); @@ -394,6 +397,8 @@ function notifier_run(&$argv, &$argc){ // 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)) { + logger('Some parent is OStatus for '.$target_item["guid"], LOGGER_DEBUG); + // Send a salmon notification to every person we mentioned in the post $arr = explode(',',$target_item['tag']); foreach($arr as $x) { @@ -525,7 +530,8 @@ function notifier_run(&$argv, &$argc){ unset($photos); } else { - $slap = atom_entry($target_item,'html',null,$owner,false); + $slap = ostatus_salmon($target_item,$owner); + //$slap = atom_entry($target_item,'html',null,$owner,false); if($followup) { foreach($items as $item) { // there is only one item @@ -565,7 +571,8 @@ function notifier_run(&$argv, &$argc){ $atom .= atom_entry($item,'text',null,$owner,true); if(($top_level) && ($public_message) && ($item['author-link'] === $item['owner-link']) && (! $expire)) - $slaps[] = atom_entry($item,'html',null,$owner,true); + $slaps[] = ostatus_salmon($item,$owner); + //$slaps[] = atom_entry($item,'html',null,$owner,true); } } } @@ -611,6 +618,10 @@ function notifier_run(&$argv, &$argc){ $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 (get_config("system", "worker")) + $interval = false; + // delivery loop if(count($r)) { @@ -630,7 +641,7 @@ function notifier_run(&$argv, &$argc){ // This controls the number of deliveries to execute with each separate delivery process. // By default we'll perform one delivery per process. Assuming a hostile shared hosting - // provider, this provides the greatest chance of deliveries if processes start getting + // provider, this provides the greatest chance of deliveries if processes start getting // killed. We can also space them out with the delivery_interval to also help avoid them // getting whacked. @@ -638,8 +649,10 @@ function notifier_run(&$argv, &$argc){ // together into a single process. This will reduce the overall number of processes // spawned for each delivery, but they will run longer. + // When using the workerqueue, we don't need this functionality. + $deliveries_per_process = intval(get_config('system','delivery_batch_count')); - if($deliveries_per_process <= 0) + if (($deliveries_per_process <= 0) OR get_config("system", "worker")) $deliveries_per_process = 1; $this_batch = array(); @@ -650,7 +663,7 @@ function notifier_run(&$argv, &$argc){ if($contact['self']) continue; - logger("Deliver to ".$contact['url'], LOGGER_DEBUG); + logger("Deliver ".$target_item["guid"]." to ".$contact['url'], LOGGER_DEBUG); // potentially more than one recipient. Start a new process and space them out a bit. // we will deliver single recipient types of message and email recipients here. @@ -724,9 +737,9 @@ function notifier_run(&$argv, &$argc){ $ssl_policy = get_config('system','ssl_policy'); fix_contact_ssl_policy($x[0],$ssl_policy); - // If we are setup as a soapbox we aren't accepting input from this person + // If we are setup as a soapbox we aren't accepting top level posts from this person - if($x[0]['page-flags'] == PAGE_SOAPBOX) + if (($x[0]['page-flags'] == PAGE_SOAPBOX) AND $top_level) break; require_once('library/simplepie/simplepie.inc'); @@ -898,11 +911,16 @@ function notifier_run(&$argv, &$argc){ if(! $contact['pubkey']) break; - if($target_item['verb'] === ACTIVITY_DISLIKE) { - // unsupported - break; + $unsupported_activities = array(ACTIVITY_DISLIKE, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE); + + //don't transmit activities which are not supported by diaspora + foreach($unsupported_activities as $act) { + if(activity_match($target_item['verb'],$act)) { + break 2; + } } - elseif(($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup)) { + + if(($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup)) { // send both top-level retractions and relayable retractions for owner to relay diaspora_send_retraction($target_item,$owner,$contact); break;