]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Testing JMS message selectors for notice tags-based routing
authorFederico Marani <federico.marani@ymail.com>
Sat, 28 Mar 2009 17:55:20 +0000 (17:55 +0000)
committerFederico Marani <federico.marani@ymail.com>
Sat, 28 Mar 2009 17:55:20 +0000 (17:55 +0000)
lib/util.php

index 4e09bffcecb6f251d860d7eeaab628b53483090e..79d5cc9430de1dcf98e58ae86e9c2d4e51c6dd6d 100644 (file)
@@ -868,20 +868,38 @@ function common_enqueue_notice($notice)
                }
         common_log(LOG_DEBUG, 'complete remote queueing notice ID = ' . $notice->id . ' for ' . $transport);
        }
+
+       //send tags as headers, so they can be used as JMS selectors
+        common_log(LOG_DEBUG, 'searching for tags ' . $notice->id);
+        $tags = array();
+       $tag = new Notice_tag();
+        $tag->notice_id = $notice->id;
+        if ($tag->find()) {
+            while ($tag->fetch()) {
+               common_log(LOG_DEBUG, 'tag found = ' . $tag->tag);
+               array_push($tags,$tag->tag);
+            }
+        }
+        $tag->free();
+
        $con->send('/topic/laconica.'.$notice->profile_id,
                        $notice->content,
                        array(
                                'profile_id' => $notice->profile_id,
-                               'created' => $notice->created
+                               'created' => $notice->created,
+                               'tags' => implode($tags,' - ')
                                )
                        );
+        common_log(LOG_DEBUG, 'sent to personal topic ' . $notice->id);
        $con->send('/topic/laconica.allusers',
                        $notice->content,
                        array(
                                'profile_id' => $notice->profile_id,
-                               'created' => $notice->created
+                               'created' => $notice->created,
+                               'tags' => implode($tags,' - ')
                                )
                        );
+        common_log(LOG_DEBUG, 'sent to catch-all topic ' . $notice->id);
        $result = true;
     }
     else {