]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/distribqueuehandler.php
Update translator documentation.
[quix0rs-gnu-social.git] / lib / distribqueuehandler.php
index c31b675c1a11a48a54b21cfc1cb444dfba4033b2..a7519c1d50729465000f6155f61d31f20e2bbe5f 100644 (file)
@@ -49,57 +49,48 @@ class DistribQueueHandler
     }
 
     /**
-     * Here's the meat of your queue handler -- you're handed a Notice
-     * object, which you may do as you will with.
+     * Handle distribution of a notice after we've saved it:
+     * @li add to local recipient inboxes
+     * @li send email notifications to local @-reply targets
+     * @li run final EndNoticeSave plugin events
+     * @li put any remaining post-processing into the queues
      *
      * If this function indicates failure, a warning will be logged
      * and the item is placed back in the queue to be re-run.
      *
+     * @fixme addToInboxes is known to fail sometimes with large recipient sets
+     *
      * @param Notice $notice
      * @return boolean true on success, false on failure
      */
     function handle($notice)
     {
-        // XXX: do we need to change this for remote users?
-
-        try {
-            $notice->saveTags();
-        } catch (Exception $e) {
-            $this->logit($notice, $e);
-        }
-
         try {
-            $groups = $notice->saveGroups();
+            $notice->addToInboxes();
         } catch (Exception $e) {
             $this->logit($notice, $e);
         }
 
         try {
-            $recipients = $notice->getReplies();
+            $notice->sendReplyNotifications();
         } catch (Exception $e) {
             $this->logit($notice, $e);
         }
 
         try {
-            $notice->addToInboxes($groups, $recipients);
-        } catch (Exception $e) {
-            $this->logit($notice, $e);
-        }
-
-        try {
-            $notice->saveUrls();
+            Event::handle('EndNoticeDistribute', array($notice));
         } catch (Exception $e) {
             $this->logit($notice, $e);
         }
 
         try {
             Event::handle('EndNoticeSave', array($notice));
-            // Enqueue for other handlers
         } catch (Exception $e) {
             $this->logit($notice, $e);
         }
 
         try {
+            // Enqueue for other handlers
             common_enqueue_notice($notice);
         } catch (Exception $e) {
             $this->logit($notice, $e);