]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/activitycontext.php
Add context to Activity Streams JSON
[quix0rs-gnu-social.git] / lib / activitycontext.php
index fd0dfe06c1b7bfef81f9e82a322dc689d23f31be..3dc53d869d18a29f737ec50be579c3db06e391b5 100644 (file)
@@ -130,4 +130,50 @@ class ActivityContext
         common_log(LOG_ERR, "Ignoring bogus georss:point value $point");
         return null;
     }
+
+    /**
+     * Returns context (StatusNet stuff) as an array suitable for serializing
+     * in JSON. Right now context stuff is an extension to Activity.
+     *
+     * @return array the context
+     */
+    function asArray()
+    {
+        $context = array();
+
+        $context['replyToId']    = $this->replyToID;
+        $context['replyToUrl']   = $this->replyToUrl;
+        $context['conversation'] = $this->conversation;
+        $context['forwardId']    = $this->forwardID;
+        $context['forwardUrl']   = $this->forwardUrl;
+
+        // XXX: We might want to have the attention to stuff
+        //      in here like we do with Atom
+
+        return array_filter($context);
+    }
+
+    /**
+     * Returns an array of arrays representing Activity Objects (intended to be
+     * serialized in JSON) that represent WHO the Activity is supposed to
+     * be received by. This is not really specified but appears in an example
+     * of the current spec as an extension. We might want to figure out a JSON
+     * serialization for OStatus and use that to express mentions instead.
+     *
+     * XXX: People's ideas on how to do this are all over the place
+     *
+     * @return array the array of recipients
+     */
+    function getToArray()
+    {
+        $tos = array();
+
+        foreach ($this->attention as $attnUrl) {
+            $to = array('id' => $attnUrl, 'url' => $attnUrl);
+            $tos[] = $to;
+        }
+
+        return $tos;
+    }
+
 }