Add avatars and notice info

This commit is contained in:
Zach Copley 2011-02-16 18:55:13 -08:00
parent b1675ff175
commit a199192ebf
3 changed files with 39 additions and 20 deletions

View File

@ -437,10 +437,14 @@ class Activity
/* Purely extensions hereafter */
if ($this->verb == ActivityVerb::POST) {
$activity['noticeInfo'] = $this->noticeInfo;
}
// 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.
foreach ($this->extra as $e) {
list($objectName, $props, $txt) = $e;
$activity[$objectName] = $props;
}
return array_filter($activity);
}

View File

@ -663,24 +663,33 @@ class ActivityObject
|| $this->type == ActivityObject::GROUP) {
// XXX: Not sure what the best avatar is to use for the
// author's "image". For now, I'm using the stream size
// one, but possibly it should be large
$avatarLink = null;
// author's "image". For now, I'm using the large size.
$avatarLarge = null;
$avatarMediaLinks = array();
foreach ($this->avatarLinks as $a) {
if ($a->height == AVATAR_STREAM_SIZE) {
$avatarLink = $a;
break;
}
}
$imgLink = new ActivityStreamsMediaLink(
$avatarLink->url,
$avatarLink->width,
$avatarLink->height,
$avatarLink->type
// Make a MediaLink for every other Avatar
$avatar = new ActivityStreamsMediaLink(
$a->url,
$a->width,
$a->height,
$a->type,
'avatar'
);
// Find the big avatar to use as the "image"
if ($a->height == AVATAR_PROFILE_SIZE) {
$imgLink = $avatar;
}
$avatarMediaLinks[] = $avatar->asArray();
}
$object['avatars'] = $avatarMediaLinks; // extension
// image
$object['image'] = $imgLink->asArray();
}
@ -698,7 +707,12 @@ class ActivityObject
// url (XXX: need to put the right thing here...)
$object['url'] = $this->id;
// TODO: extensions (OStatus stuff, etc.)
/* Extensions */
foreach ($this->extra as $e) {
list($objectName, $props, $txt) = $e;
$object[$objectName] = $props;
}
return array_filter($object);
}

View File

@ -77,6 +77,7 @@ class ActivityStreamJSONDocument
*
* @param String $title the title
*/
function setTitle($title)
{
$this->doc['title'] = $title;
@ -207,7 +208,7 @@ class ActivityStreamsLink
$this->linkDict = array(
'url' => $url,
'rel' => $rel, // extension
'mediaType' => $mediaType // extension
'type' => $mediaType // extension
);
}