]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Add a registration activity to the end of every backup
authorEvan Prodromou <evan@e14n.com>
Sun, 2 Jun 2013 18:38:00 +0000 (14:38 -0400)
committerEvan Prodromou <evan@e14n.com>
Sun, 2 Jun 2013 18:38:00 +0000 (14:38 -0400)
classes/User.php
lib/useractivitystream.php

index 726a7e5c30d7954b52449e69fbebe6148d98f18c..32a04238c2845582e11691bfe2b31d5d13087218 100644 (file)
@@ -1152,7 +1152,7 @@ class User extends Managed_DataObject
             $osp = Old_school_prefs::staticGet('user_id', $this->id);
             if (!empty($osp)) {
                 return $osp->stream_mode_only;
-            } 
+            }
         }
 
         return false;
@@ -1180,4 +1180,34 @@ class User extends Managed_DataObject
         }
         return false;
     }
+
+    function registrationActivity()
+    {
+        $profile = $this->getProfile();
+
+        $service = new ActivityObject();
+
+        $service->type = "service";
+        $service->displayName = common_config('site', 'name');
+        $service->url = common_root_url();
+
+        $act = new Activity();
+
+        $act->actor = ActivityObject::fromProfile($profile);
+        $act->verb = ActivityVerb::JOIN;
+        $act->objects[] = $service;
+
+        $act->id = TagURI::mint('user:register:%d',
+                                $this->id);
+
+        $act->time = strtotime($this->created);
+
+        $act->title = _("Register");
+
+        $act->content = sprintf(_('%1$s joined %2$s.'),
+                               $profile->getBestName(),
+                               $service->displayName);
+
+        return $act;
+    }
 }
index 5422afc2c0a89c434e06c8c114678c0fe3df955b..59ae6184b3e27ac16c0ace731ff4eeedb060cb02 100644 (file)
@@ -192,6 +192,25 @@ class UserActivityStream extends AtomUserNoticeFeed
                 common_log(LOG_ERR, $e->getMessage());
             }
         }
+
+        // We always add the registration activity at the end, even if
+        // they have older activities (from restored backups) in their stream.
+
+        try {
+            $ract = $this->user->registrationActivity();
+            if ($format == Feed::ATOM) {
+                $ract->outputTo($this, false, false);
+            } else {
+                if ($haveOne) {
+                    fwrite($handle, ",");
+                }
+                fwrite($handle, json_encode($ract->asArray()));
+                $haveOne = true;
+            }
+        } catch (Exception $e) {
+            common_log(LOG_ERR, $e->getMessage());
+            continue;
+        }
     }
 
     function compareObject($a, $b)