From 3ff029953177d9b2c7caaafb844f268085463ce0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 25 Aug 2011 11:51:50 -0400 Subject: [PATCH] more accurate activity output for system activities --- plugins/Activity/ActivityPlugin.php | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/plugins/Activity/ActivityPlugin.php b/plugins/Activity/ActivityPlugin.php index a97cf51e32..cb33738820 100644 --- a/plugins/Activity/ActivityPlugin.php +++ b/plugins/Activity/ActivityPlugin.php @@ -320,6 +320,50 @@ class ActivityPlugin extends Plugin function onEndNoticeAsActivity($notice, &$activity) { + switch ($notice->verb) { + case ActivityVerb::FAVORITE: + $fave = Fave::staticGet('uri', $notice->uri); + if (!empty($fave)) { + $notice = Notice::staticGet('id', $fave->notice_id); + if (!empty($notice)) { + $target = $notice->asActivity(); + if ($target->verb == ActivityVerb::POST) { + // "I like the thing you posted" + $activity->objects = $target->objects; + } else { + // "I like that you did whatever you did" + $activity->objects = array($target); + } + } + } + break; + case ActivityVerb::UNFAVORITE: + // FIXME: do something here + break; + case ActivityVerb::JOIN: + $mem = Group_member::staticGet('uri', $notice->uri); + if (!empty($mem)) { + $group = $mem->getGroup(); + $activity->objects = array(ActivityObject::fromGroup($group)); + } + break; + case ActivityVerb::LEAVE: + // FIXME: ???? + break; + case ActivityVerb::FOLLOW: + $sub = Subscription::staticGet('uri', $notice->uri); + if (!empty($sub)) { + $profile = Profile::staticGet('id', $sub->subscribed); + if (!empty($profile)) { + $activity->objects = array(ActivityObject::fromProfile($profile)); + } + } + break; + case ActivityVerb::UNFOLLOW: + // FIXME: ???? + break; + } + return true; }