X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Factivity.php;h=b781e498467f0331dbf9dd10db41d015b0cf1faa;hb=f23184a8d6778b8aecfb5dca2c8de9dfb850bf15;hp=a8e6d25af955281c33244ab3be419a38fd73a96b;hpb=e98e443605cff0266dcf9b412641b42c82e45824;p=quix0rs-gnu-social.git diff --git a/lib/activity.php b/lib/activity.php index a8e6d25af9..b781e49846 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -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. @@ -447,6 +484,7 @@ class Activity $activity[$objectName] = $props; } } + return array_filter($activity); }