]> git.mxchange.org Git - friendica.git/blobdiff - include/queue.php
freeform text area for private contact info - notes or things you just want to rememb...
[friendica.git] / include / queue.php
index 7df510ef43226d27ca3bf0b03915212846a1d4a7..96ddfa81bc143df6fb2def04ae0111502abbb22d 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 
-function update_queue_item($id) {
+function update_queue_time($id) {
        logger('queue: requeue item ' . $id);
        q("UPDATE `queue` SET `last` = '%s' WHERE `id` = %d LIMIT 1",
                dbesc(datetime_convert()),
@@ -33,6 +33,9 @@ function remove_queue_item($id) {
 
        $a->set_baseurl(get_config('system','url'));
 
+       $deadguys = array();
+
+       logger('queue: start');
 
        $r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue` 
                LEFT JOIN `contact` ON `queue`.`cid` = `contact`.`id` 
@@ -62,12 +65,18 @@ function remove_queue_item($id) {
                        continue;
 
                $c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
-                       intval($q_item['cid'])
+                       intval($qi[0]['cid'])
                );
                if(! count($c)) {
                        remove_queue_item($q_item['id']);
                        continue;
                }
+               if(in_array($c[0]['notify'],$deadguys)) {
+                               logger('queue: skipping known dead url: ' . $c[0]['notify']);
+                               update_queue_time($q_item['id']);
+                               continue;
+               }
+
                $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
                        intval($c[0]['uid'])
                );
@@ -87,11 +96,13 @@ function remove_queue_item($id) {
                                logger('queue: dfrndelivery: item ' . $q_item['id'] . ' for ' . $contact['name']);
                                $deliver_status = dfrn_deliver($owner,$contact,$data);
 
-                               if($deliver_status == (-1))
+                               if($deliver_status == (-1)) {
                                        update_queue_time($q_item['id']);
-                               else
+                                       $deadguys[] = $contact['notify'];
+                               }
+                               else {
                                        remove_queue_item($q_item['id']);
-
+                               }
                                break;
                        default:
                                if($contact['notify']) {