* @link http://status.net/
*/
-if (!defined('STATUSNET'))
-{
- exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
/**
* A class for generating JSON documents that represent an Activity Streams
/* The current authenticated user */
protected $cur;
+ protected $scoped = null;
/* Title of the document */
protected $title;
* @param User $cur the current authenticated user
*/
- function __construct($cur = null, $title = null, $items = null, $links = null, $url = null)
+ function __construct($cur = null, $title = null, array $items=[], $links = null, $url = null)
{
parent::__construct($items, $url);
- $this->cur = $cur;
+ $this->cur = $cur ?: common_current_user();
+ $this->scoped = !is_null($this->cur) ? $this->cur->getProfile() : null;
/* Title of the JSON document */
$this->title = $title;
function addItemFromNotice($notice)
{
- $cur = empty($this->cur) ? common_current_user() : $this->cur;
-
- $act = $notice->asActivity($cur);
- $act->extra[] = $notice->noticeInfo($cur);
+ $act = $notice->asActivity($this->scoped);
+ $act->extra[] = $notice->noticeInfo($this->scoped);
array_push($this->items, $act->asArray());
$this->count++;
}
*/
function asString()
{
- $this->doc['generator'] = 'StatusNet ' . STATUSNET_VERSION; // extension
+ $this->doc['generator'] = 'GNU social ' . GNUSOCIAL_VERSION; // extension
$this->doc['title'] = $this->title;
$this->doc['url'] = $this->url;
$this->doc['totalItems'] = $this->count;
}
}
-
-/**
- * A class for representing MediaLinks in JSON Activities
- *
- * @category Feed
- * @package StatusNet
- * @author Zach Copley <zach@status.net>
- * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://status.net/
- */
-
-class ActivityStreamsMediaLink extends ActivityStreamsLink
-{
- private $linkDict;
-
- function __construct(
- $url = null,
- $width = null,
- $height = null,
- $mediaType = null, // extension
- $rel = null, // extension
- $duration = null
- )
- {
- parent::__construct($url, $rel, $mediaType);
- $this->linkDict = array(
- 'width' => intval($width),
- 'height' => intval($height),
- 'duration' => intval($duration)
- );
- }
-
- function asArray()
- {
- return array_merge(
- parent::asArray(),
- array_filter($this->linkDict)
- );
- }
-}
-
-/*
- * Collection primarily as the root of an Activity Streams doc but can be used as the value
- * of extension properties in a variety of situations.
- *
- * A valid Collection object serialization MUST contain at least the url or items properties.
- */
-class JSONActivityCollection {
-
- /* Non-negative integer specifying the total number of activities within the stream */
- protected $totalItems;
-
- /* An array containing a listing of Objects of any object type */
- protected $items;
-
- /* IRI referencing a JSON document containing the full listing of objects in the collection */
- protected $url;
-
- /**
- * Constructor
- *
- * @param array $items array of activity items
- * @param string $url url of a doc list all the objs in the collection
- * @param int $totalItems total number of items in the collection
- */
- function __construct($items = null, $url = null)
- {
- $this->items = empty($items) ? array() : $items;
- $this->totalItems = count($items);
- $this->url = $url;
- }
-
- /**
- * Get the total number of items in the collection
- *
- * @return int total the total
- */
- public function getTotalItems()
- {
- $this->totalItems = count($items);
- return $this->totalItems;
- }
-}
-
-/**
- * A class for representing links in JSON Activities
- *
- * @category Feed
- * @package StatusNet
- * @author Zach Copley <zach@status.net>
- * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://status.net/
- */
-
-class ActivityStreamsLink
-{
- private $linkDict;
-
- function __construct($url = null, $rel = null, $mediaType = null)
- {
- // links MUST have a URL
- if (empty($url)) {
- throw new Exception('Links must have a URL.');
- }
-
- $this->linkDict = array(
- 'url' => $url,
- 'rel' => $rel, // extension
- 'type' => $mediaType // extension
- );
- }
-
- function asArray()
- {
- return array_filter($this->linkDict);
- }
-}
-