]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/jabber.php
Don't show stretchy-box on avatar if not cropping
[quix0rs-gnu-social.git] / lib / jabber.php
index 099ded9ebd53395b09765733539e07c86530b259..f1be5776813164dd5e37999d4a900d8eaf118c72 100644 (file)
@@ -354,12 +354,13 @@ function jabber_broadcast_notice($notice)
 
     // First, get users to whom this is a direct reply
     $user = new User();
-    $user->query('SELECT user.id, user.jabber ' .
-                 'FROM user JOIN reply ON user.id = reply.profile_id ' .
+    $UT = common_config('db','type')=='pgsql'?'"user"':'user';
+    $user->query("SELECT $UT.id, $UT.jabber " .
+                 "FROM $UT JOIN reply ON $UT.id = reply.profile_id " .
                  'WHERE reply.notice_id = ' . $notice->id . ' ' .
-                 'AND user.jabber is not null ' .
-                 'AND user.jabbernotify = 1 ' .
-                 'AND user.jabberreplies = 1 ');
+                 "AND $UT.jabber is not null " .
+                 "AND $UT.jabbernotify = 1 " .
+                 "AND $UT.jabberreplies = 1 ");
 
     while ($user->fetch()) {
         common_log(LOG_INFO,
@@ -375,12 +376,12 @@ function jabber_broadcast_notice($notice)
     // Now, get users subscribed to this profile
 
     $user = new User();
-    $user->query('SELECT user.id, user.jabber ' .
-                 'FROM user JOIN subscription ' .
-                 'ON user.id = subscription.subscriber ' .
+    $user->query("SELECT $UT.id, $UT.jabber " .
+                 "FROM $UT JOIN subscription " .
+                 "ON $UT.id = subscription.subscriber " .
                  'WHERE subscription.subscribed = ' . $notice->profile_id . ' ' .
-                 'AND user.jabber is not null ' .
-                 'AND user.jabbernotify = 1 ' .
+                 "AND $UT.jabber is not null " .
+                 "AND $UT.jabbernotify = 1 " .
                  'AND subscription.jabber = 1 ');
 
     while ($user->fetch()) {
@@ -392,6 +393,31 @@ function jabber_broadcast_notice($notice)
             // To keep the incoming queue from filling up,
             // we service it after each send.
             $conn->processTime(0);
+            $sent_to[$user->id] = 1;
+        }
+    }
+
+    // Now, get users who have it in their inbox because of groups
+
+    $user = new User();
+    $user->query("SELECT $UT.id, $UT.jabber " .
+                 "FROM $UT JOIN notice_inbox " .
+                 "ON $UT.id = notice_inbox.user_id " .
+                 'WHERE notice_inbox.notice_id = ' . $notice->id . ' ' .
+                 'AND notice_inbox.source = 2 ' .
+                 'AND user.jabber is not null ' .
+                 'AND user.jabbernotify = 1 ');
+
+    while ($user->fetch()) {
+        if (!array_key_exists($user->id, $sent_to)) {
+            common_log(LOG_INFO,
+                       'Sending notice ' . $notice->id . ' to ' . $user->jabber,
+                       __FILE__);
+            $conn->message($user->jabber, $msg, 'chat', null, $entry);
+            // To keep the incoming queue from filling up,
+            // we service it after each send.
+            $conn->processTime(0);
+            $sent_to[$user->id] = 1;
         }
     }