]> git.mxchange.org Git - friendica.git/blobdiff - include/notifier.php
Merge pull request #2172 from tobiasd/20151212-frosticons
[friendica.git] / include / notifier.php
index 593933b3266c4e58b1cca8167ed7ca6af41ca5f1..ec2b666bede9109304020a3bc3993c66abe7ea03 100644 (file)
@@ -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
@@ -529,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
@@ -569,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);
                        }
                }
        }
@@ -638,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.
 
@@ -646,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();
@@ -732,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');
@@ -906,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;