]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
more accurate activity output for system activities
authorEvan Prodromou <evan@status.net>
Thu, 25 Aug 2011 15:51:50 +0000 (11:51 -0400)
committerEvan Prodromou <evan@status.net>
Thu, 25 Aug 2011 15:51:50 +0000 (11:51 -0400)
plugins/Activity/ActivityPlugin.php

index a97cf51e326186046d0e1c4908613a16ea07dc05..cb337388203a85d9150b5fb3b5fcf3885236ba92 100644 (file)
@@ -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;
     }