]> git.mxchange.org Git - friendica.git/commitdiff
cleaned up the conditions on when to and when not to relay.
authorFriendika <info@friendika.com>
Wed, 24 Aug 2011 11:42:28 +0000 (04:42 -0700)
committerFriendika <info@friendika.com>
Wed, 24 Aug 2011 11:42:28 +0000 (04:42 -0700)
include/diaspora.php
include/items.php
include/notifier.php

index 563eaa4e270a243f0108fccf1c904be575c9492b..75d47e05aa5902ed9bf9c9d1f4c5c5fc929b1469 100644 (file)
@@ -544,7 +544,6 @@ function diaspora_comment($importer,$xml,$msg) {
 
 
        if($parent_author_signature) {
-//             $owner_signed_data = $guid . ';' . $parent_guid . ';' . $text . ';' . $msg['author'];
                $owner_signed_data = $guid . ';' . $parent_guid . ';' . $text . ';' . $diaspora_handle;
 
                $parent_author_signature = base64_decode($parent_author_signature);
@@ -619,13 +618,14 @@ function diaspora_comment($importer,$xml,$msg) {
                        dbesc(base64_encode($author_signature)),
                        dbesc($diaspora_handle)
                );
-       }
 
-       // notify others
-//     proc_run('php','include/notifier.php','comment',$message_id);
+               // if the message isn't already being relayed, notify others
+               // the existence of parent_author_signature means the parent_author or owner
+               // is already relaying.
 
+               proc_run('php','include/notifier.php','comment',$message_id);
+       }
        return;
-
 }
 
 function diaspora_photo($importer,$xml,$msg) {
@@ -845,8 +845,12 @@ EOT;
                );
        }
 
-       // notify others
-//     proc_run('php','include/notifier.php','comment',$message_id);
+       // if the message isn't already being relayed, notify others
+       // the existence of parent_author_signature means the parent_author or owner
+       // is already relaying.
+
+       if(! $parent_author_signature)
+               proc_run('php','include/notifier.php','comment',$message_id);
 
        return;
 }
index 746e3b2944fc2769ec5090afc83042fe091c0238..19e56c0b60329567c66b6fbffc1dbb9813f06e70 100644 (file)
@@ -1556,7 +1556,7 @@ function subscribe_to_hub($url,$importer,$contact) {
                        intval($importer['uid'])
                );
        }
-       if(! count($r))
+       if((! count($r)) || $contact['network'] === NETWORK_DIASPORA)
                return;
 
        $push_url = get_config('system','url') . '/pubsub/' . $r[0]['nickname'] . '/' . $contact['id'];
index 1c8245c7a88fd30f65f478fa5b72d8d5f151c757..7b645844f6985ca4722d834d1e7a8343a57d1424 100644 (file)
@@ -150,7 +150,37 @@ function notifier_run($argv, $argc){
 
                $parent = $items[0];
 
-               if($parent['wall'] == 0 && (! $expire)) {
+               // This is IMPORTANT!!!!
+
+               // We will only send a "notify owner to relay" or followup message if the referenced post
+               // originated on our system by virtue of having our hostname somewhere
+               // in the URI, AND it was a comment (not top_level) AND the parent originated elsewhere.
+               // if $parent['wall'] == 1 we will already have the parent message in our array
+               // and we will relay the whole lot.
+               // expire sends an entire group of expire messages and cannot be forwarded.
+               // However the conversation owner will be a part of the conversation and will 
+               // be notified during this run.
+               // Other DFRN conversation members will be alerted during polled updates.
+
+               // Diaspora members currently are not notified of expirations, and other networks have
+               // either limited or no ability to process deletions. We should at least fix Diaspora 
+               // by stringing togther an array of retractions and sending them onward.
+                
+       
+               $localhost = $a->get_hostname();
+               if(strpos($localhost,':'))
+                       $localhost = substr($localhost,0,strpos($localhost,':'));
+
+               /**
+                *
+                * Be VERY CAREFUL if you make any changes to the following line. Seemingly innocuous changes 
+                * have been known to cause runaway conditions which affected several servers, along with 
+                * permissions issues. 
+                *
+                */
+               if((! $top_level) && ($parent['wall'] == 0) && (! $expire) && (stristr($target_item['uri'],$localhost))) {
                        // local followup to remote post
                        $followup = true;
                        $public_message = false; // not public