]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/activity.php
subscriber actions show the profile menu in object area
[quix0rs-gnu-social.git] / lib / activity.php
index 218c965c4d0d505fe0ee4165106b259780bba0b8..b781e498467f0331dbf9dd10db41d015b0cf1faa 100644 (file)
@@ -354,16 +354,38 @@ class Activity
         // body
         $activity['body'] = $this->content;
 
-        // generator <-- We should use this when we know a notice is created
-        //               locally
+        // generator <-- We could use this when we know a notice is created
+        //               locally. Or if we know the upstream Generator.
+
+        // icon <-- I've decided to use the posting user's stream avatar here
+        //          for now (also included in the avatarLinks extension)
 
-        // icon <-- Should we use this? Maybe a little bubble like we have
-        //          on Facebook posts?
 
         // object
         if ($this->verb == ActivityVerb::POST && count($this->objects) == 1) {
             $activity['object'] = $this->objects[0]->asArray();
 
+            // Context stuff. For now I'm just sticking most of it
+            // in a property called "context"
+
+            if (!empty($this->context)) {
+
+                if (!empty($this->context->location)) {
+                    $loc = $this->context->location;
+
+                    // GeoJSON
+
+                    $activity['geopoint'] = array(
+                        'type'        => 'Point',
+                        'coordinates' => array($loc->lat, $loc->lon)
+                    );
+
+                }
+
+                $activity['to']      = $this->context->getToArray();
+                $activity['context'] = $this->context->asArray();
+            }
+
             // Instead of adding enclosures as an extension to JSON
             // Activities, it seems like we should be using the
             // attachedObjects property of ActivityObject
@@ -415,8 +437,14 @@ class Activity
 
         $activity['postedTime'] = self::iso8601Date($this->time); // Change to exactly be RFC3339?
 
-        // provider <-- We should probably use this for showing the the source
-        //              of remote notices, if known
+        // provider
+        $provider = array(
+            'objectType' => 'service',
+            'displayName' => common_config('site', 'name'),
+            'url' => common_root_url()
+        );
+
+        $activity['provider'] = $provider;
 
         // target
         if (!empty($this->target)) {
@@ -437,6 +465,15 @@ class Activity
 
         /* Purely extensions hereafter */
 
+        $tags = array();
+
+        // Use an Activity Object for term? Which object? Note?
+        foreach ($this->categories as $cat) {
+            $tags[] = $cat->term;
+        }
+
+        $activity['tags'] = $tags;
+
         // XXX: a bit of a hack... Since JSON isn't namespaced we probably
         // shouldn't be using 'statusnet:notice_info', but this will work
         // for the moment.
@@ -448,29 +485,6 @@ class Activity
             }
         }
 
-        /* more extensions */
-
-        // Context stuff. For now I'm just sticking most of it
-        // in a property called "context"
-
-        if (!empty($this->context)) {
-
-            if (!empty($this->context->location)) {
-                $loc = $this->context->location;
-
-                // GeoJSON
-
-                $activity['geopoint'] = array(
-                    'type'        => 'Point',
-                    'coordinates' => array($loc->lat, $loc->lon)
-                );
-
-            }
-
-            $activity['to']      = $this->context->getToArray();
-            $activity['context'] = $this->context->asArray();
-        }
-
         return array_filter($activity);
     }