X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fdistribqueuehandler.php;h=036d970f2af9c3be343ffa36d350265b690895ac;hb=7220b3ddd4a32b947e851c946cb6ad6146bebf7d;hp=8f4b72d5c37e3128cb782aabea4475d0d1d88a14;hpb=cd29d3d646379aa9a1352035973c8e379cc7f42b;p=quix0rs-gnu-social.git diff --git a/lib/distribqueuehandler.php b/lib/distribqueuehandler.php index 8f4b72d5c3..036d970f2a 100644 --- a/lib/distribqueuehandler.php +++ b/lib/distribqueuehandler.php @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); } /** * Base class for queue handlers. @@ -43,7 +43,7 @@ class DistribQueueHandler * @return string */ - function transport() + public function transport() { return 'distrib'; } @@ -58,33 +58,45 @@ class DistribQueueHandler * 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) + public function handle(Notice $notice) { + // We have to manually add attentions to non-profile subs and non-mentions + $ptAtts = $notice->getAttentionsFromProfileTags(); + foreach (array_keys($ptAtts) as $profile_id) { + $profile = Profile::getKV('id', $profile_id); + if ($profile instanceof Profile) { + try { + common_debug('Adding Attention for '.$notice->getID().' profile '.$profile->getID()); + Attention::saveNew($notice, $profile); + } catch (Exception $e) { + $this->logit($notice, $e); + } + } + } + try { - $notice->addToInboxes(); + $notice->sendReplyNotifications(); } catch (Exception $e) { $this->logit($notice, $e); } try { - $notice->sendReplyNotifications(); + 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);