X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fdelivery.php;h=db2f03c8f4a7c77c5fc25ed6ad9ea3d4e688bddc;hb=e24c3a5b826d2357e40a173d9e7b66048dab5b37;hp=d184fe12e1758cef5f904a19b070060d1a37740b;hpb=2841aa0281442e7a5570c122d5f3d9ab3a6504a7;p=friendica.git diff --git a/include/delivery.php b/include/delivery.php index d184fe12e1..db2f03c8f4 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -53,11 +53,11 @@ function delivery_run(&$argv, &$argc){ dbesc($item_id), dbesc($contact_id) ); - if (!count($r)) { + if (!dbm::is_result($r)) { continue; } - if (App::maxload_reached()) + if ($a->maxload_reached()) return; // It's ours to deliver. Remove it from the queue. @@ -131,7 +131,7 @@ function delivery_run(&$argv, &$argc){ intval($item_id) ); - if ((!count($r)) || (!intval($r[0]['parent']))) { + if ((!dbm::is_result($r)) || (!intval($r[0]['parent']))) { continue; } @@ -178,13 +178,13 @@ function delivery_run(&$argv, &$argc){ $r = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, - `user`.`page-flags`, `user`.`prvnets` + `user`.`page-flags`, `user`.`account-type`, `user`.`prvnets` FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid` WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", intval($uid) ); - if (!count($r)) + if (!dbm::is_result($r)) continue; $owner = $r[0]; @@ -243,7 +243,8 @@ function delivery_run(&$argv, &$argc){ if ((strlen($parent['allow_cid'])) || (strlen($parent['allow_gid'])) || (strlen($parent['deny_cid'])) - || (strlen($parent['deny_gid']))) { + || (strlen($parent['deny_gid'])) + || $parent["private"]) { $public_message = false; // private recipients, not public } @@ -253,7 +254,7 @@ function delivery_run(&$argv, &$argc){ intval($contact_id) ); - if (count($r)) + if (dbm::is_result($r)) $contact = $r[0]; if ($contact['self']) @@ -322,7 +323,7 @@ function delivery_run(&$argv, &$argc){ // perform local delivery if we are on the same site - if (link_compare($basepath,$a->get_baseurl())) { + if (link_compare($basepath,App::get_baseurl())) { $nickname = basename($contact['url']); if ($contact['issued-id']) @@ -380,7 +381,14 @@ function delivery_run(&$argv, &$argc){ if ($deliver_status == (-1)) { logger('notifier: delivery failed: queuing message'); add_to_queue($contact['id'],NETWORK_DFRN,$atom); + + // The message could not be delivered. We mark the contact as "dead" + mark_for_death($contact); + } else { + // We successfully delivered a message, the contact is alive + unmark_for_death($contact); } + break; case NETWORK_OSTATUS: @@ -415,7 +423,7 @@ function delivery_run(&$argv, &$argc){ intval($argv[2]), intval($uid) ); - if (count($r)) + if (dbm::is_result($r)) $it = $r[0]; } if (!$it) @@ -470,14 +478,14 @@ function delivery_run(&$argv, &$argc){ dbesc($it['parent-uri']), intval($uid)); - if (count($r) AND ($r[0]['title'] != '')) + if (dbm::is_result($r) AND ($r[0]['title'] != '')) $subject = $r[0]['title']; else { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($it['parent-uri']), intval($uid)); - if (count($r) AND ($r[0]['title'] != '')) + if (dbm::is_result($r) AND ($r[0]['title'] != '')) $subject = $r[0]['title']; } } @@ -501,7 +509,6 @@ function delivery_run(&$argv, &$argc){ if ($mail) { diaspora::send_mail($item,$owner,$contact); - //diaspora_send_mail($item,$owner,$contact); break; } @@ -522,27 +529,23 @@ function delivery_run(&$argv, &$argc){ if (($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup)) { // top-level retraction - logger('delivery: diaspora retract: '.$loc); - + logger('diaspora retract: '.$loc); diaspora::send_retraction($target_item,$owner,$contact,$public_message); - //diaspora_send_retraction($target_item,$owner,$contact,$public_message); break; } elseif ($followup) { // send comments and likes to owner to relay + logger('diaspora followup: '.$loc); diaspora::send_followup($target_item,$owner,$contact,$public_message); - //diaspora_send_followup($target_item,$owner,$contact,$public_message); break; } elseif ($target_item['uri'] !== $target_item['parent-uri']) { // we are the relay - send comments, likes and relayable_retractions to our conversants - logger('delivery: diaspora relay: '.$loc); + logger('diaspora relay: '.$loc); diaspora::send_relay($target_item,$owner,$contact,$public_message); - //diaspora_send_relay($target_item,$owner,$contact,$public_message); break; } elseif ($top_level && !$walltowall) { // currently no workable solution for sending walltowall - logger('delivery: diaspora status: '.$loc); + logger('diaspora status: '.$loc); diaspora::send_status($target_item,$owner,$contact,$public_message); - //diaspora_send_status($target_item,$owner,$contact,$public_message); break; }