]> git.mxchange.org Git - friendica.git/blobdiff - include/notifier.php
Merge remote-tracking branch 'friendica/develop' into develop
[friendica.git] / include / notifier.php
index cfe4e184120cb7c5307e537782e0ba87db14a2e5..7221fa376db154eba4656d2e4f1049cade18ab36 100644 (file)
@@ -134,7 +134,7 @@ function notifier_run(&$argv, &$argc){
        } elseif($cmd === 'removeme') {
                $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`.`guid`
+                               `user`.`page-flags`, `user`.`prvnets`, `user`.`account-type`, `user`.`guid`
                        FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
                                WHERE `contact`.`uid` = %d AND `contact`.`self` LIMIT 1",
                                intval($item_id));
@@ -170,7 +170,7 @@ function notifier_run(&$argv, &$argc){
                        intval($item_id)
                );
 
-               if((! count($r)) || (! intval($r[0]['parent']))) {
+               if((! dbm::is_result($r)) || (! intval($r[0]['parent']))) {
                        return;
                }
 
@@ -204,13 +204,13 @@ function notifier_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`.`prvnets`, `user`.`account-type`
                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))
                return;
 
        $owner = $r[0];
@@ -321,7 +321,7 @@ function notifier_run(&$argv, &$argc){
                                                intval($uid),
                                                dbesc(NETWORK_DFRN)
                                        );
-                                       if(count($r))
+                                       if (dbm::is_result($r))
                                                foreach($r as $rr)
                                                        $recipients_followup[] = $rr['id'];
                                }
@@ -445,7 +445,7 @@ function notifier_run(&$argv, &$argc){
 
                $r = q("SELECT * FROM `contact` WHERE `id` IN ($conversant_str) AND NOT `blocked` AND NOT `pending` AND NOT `archive`".$sql_extra);
 
-               if(count($r))
+               if (dbm::is_result($r))
                        $contacts = $r;
 
        } else
@@ -463,7 +463,7 @@ function notifier_run(&$argv, &$argc){
                                intval($uid),
                                dbesc(NETWORK_MAIL)
                        );
-                       if(count($r)) {
+                       if (dbm::is_result($r)) {
                                foreach($r as $rr)
                                        $recipients[] = $rr['id'];
                        }
@@ -491,7 +491,7 @@ function notifier_run(&$argv, &$argc){
 
        // delivery loop
 
-       if(count($r)) {
+       if (dbm::is_result($r)) {
 
                foreach($r as $contact) {
                        if(!$contact['self']) {
@@ -575,7 +575,7 @@ function notifier_run(&$argv, &$argc){
                        $r0 = array();
 
                $r1 = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s'
-                       AND `uid` = %d AND `rel` != %d group by `batch` ORDER BY rand() ",
+                       AND `uid` = %d AND `rel` != %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` GROUP BY `batch` ORDER BY rand()",
                        dbesc(NETWORK_DIASPORA),
                        intval($owner['uid']),
                        intval(CONTACT_IS_SHARING)
@@ -592,17 +592,17 @@ function notifier_run(&$argv, &$argc){
 
                $r = array_merge($r2,$r1,$r0);
 
-               if(count($r)) {
+               if (dbm::is_result($r)) {
                        logger('pubdeliver '.$target_item["guid"].': '.print_r($r,true), LOGGER_DEBUG);
 
                        // throw everything into the queue in case we get killed
 
                        foreach($r as $rr) {
                                if((! $mail) && (! $fsuggest) && (! $followup)) {
-                                       q("insert into deliverq ( `cmd`,`item`,`contact` ) values ('%s', %d, %d )",
-                                               dbesc($cmd),
-                                               intval($item_id),
-                                               intval($rr['id'])
+                                       q("INSERT INTO `deliverq` (`cmd`,`item`,`contact`) VALUES ('%s', %d, %d)
+                                               ON DUPLICATE KEY UPDATE `cmd` = '%s', `item` = %d, `contact` = %d",
+                                               dbesc($cmd), intval($item_id), intval($rr['id']),
+                                               dbesc($cmd), intval($item_id), intval($rr['id'])
                                        );
                                }
                        }
@@ -642,8 +642,8 @@ function notifier_run(&$argv, &$argc){
                                if ($h === '[internal]') {
                                        // Set push flag for PuSH subscribers to this topic,
                                        // they will be notified in queue.php
-                                       q("UPDATE `push_subscriber` SET `push` = 1 " .
-                                         "WHERE `nickname` = '%s'", dbesc($owner['nickname']));
+                                       q("UPDATE `push_subscriber` SET `push` = 1 ".
+                                         "WHERE `nickname` = '%s' AND `push` = 0", dbesc($owner['nickname']));
 
                                        logger('Activating internal PuSH for item '.$item_id, LOGGER_DEBUG);