Add generator to JSON output
This commit is contained in:
parent
6164940e8c
commit
08eca420ca
|
@ -1614,6 +1614,12 @@ class Notice extends Managed_DataObject
|
||||||
|
|
||||||
$act->context = $ctx;
|
$act->context = $ctx;
|
||||||
|
|
||||||
|
$source = $this->getSource();
|
||||||
|
|
||||||
|
if ($source) {
|
||||||
|
$act->generator = ActivityObject::fromNoticeSource($source);
|
||||||
|
}
|
||||||
|
|
||||||
// Source
|
// Source
|
||||||
|
|
||||||
$atom_feed = $profile->getAtomFeed();
|
$atom_feed = $profile->getAtomFeed();
|
||||||
|
|
|
@ -106,7 +106,7 @@ class Activity
|
||||||
public $source; // ActivitySource object representing 'home feed'
|
public $source; // ActivitySource object representing 'home feed'
|
||||||
public $selfLink; // <link rel='self' type='application/atom+xml'>
|
public $selfLink; // <link rel='self' type='application/atom+xml'>
|
||||||
public $editLink; // <link rel='edit' type='application/atom+xml'>
|
public $editLink; // <link rel='edit' type='application/atom+xml'>
|
||||||
|
public $generator; // ActivityObject representing the generating application
|
||||||
/**
|
/**
|
||||||
* Turns a regular old Atom <entry> into a magical activity
|
* Turns a regular old Atom <entry> into a magical activity
|
||||||
*
|
*
|
||||||
|
@ -366,8 +366,11 @@ class Activity
|
||||||
// content
|
// content
|
||||||
$activity['content'] = $this->content;
|
$activity['content'] = $this->content;
|
||||||
|
|
||||||
// generator <-- We could use this when we know a notice is created
|
// generator
|
||||||
// locally. Or if we know the upstream Generator.
|
|
||||||
|
if (!empty($this->generator)) {
|
||||||
|
$activity['generator'] = $this->generator->asArray();
|
||||||
|
}
|
||||||
|
|
||||||
// icon <-- possibly a mini object representing verb?
|
// icon <-- possibly a mini object representing verb?
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,7 @@ class ActivityObject
|
||||||
const SERVICE = 'http://activitystrea.ms/schema/1.0/service';
|
const SERVICE = 'http://activitystrea.ms/schema/1.0/service';
|
||||||
const IMAGE = 'http://activitystrea.ms/schema/1.0/image';
|
const IMAGE = 'http://activitystrea.ms/schema/1.0/image';
|
||||||
const COLLECTION = 'http://activitystrea.ms/schema/1.0/collection';
|
const COLLECTION = 'http://activitystrea.ms/schema/1.0/collection';
|
||||||
|
const APPLICATION = 'http://activitystrea.ms/schema/1.0/application';
|
||||||
|
|
||||||
// Atom elements we snarf
|
// Atom elements we snarf
|
||||||
|
|
||||||
|
@ -597,6 +598,46 @@ class ActivityObject
|
||||||
return $object;
|
return $object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function fromNoticeSource(Notice_source $source)
|
||||||
|
{
|
||||||
|
$object = new ActivityObject();
|
||||||
|
|
||||||
|
if (Event::handle('StartActivityObjectFromNoticeSource', array($source, &$object))) {
|
||||||
|
$object->type = ActivityObject::APPLICATION;
|
||||||
|
|
||||||
|
if (in_array($source->code, array('web', 'xmpp', 'mail', 'omb', 'system', 'api'))) {
|
||||||
|
// We use one ID for all well-known StatusNet sources
|
||||||
|
$object->id = "tag:status.net,2009:notice-source:".$source->code;
|
||||||
|
} else if ($source->url) {
|
||||||
|
// They registered with an URL
|
||||||
|
$object->id = $source->url;
|
||||||
|
} else {
|
||||||
|
// Locally-registered, no URL
|
||||||
|
$object->id = TagURI::mint("notice-source:".$source->code);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($source->url) {
|
||||||
|
$object->link = $source->url;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($source->name) {
|
||||||
|
$object->title = $source->name;
|
||||||
|
} else {
|
||||||
|
$object->title = $source->code;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($source->created) {
|
||||||
|
$object->date = $source->created;
|
||||||
|
}
|
||||||
|
|
||||||
|
$object->extras[] = array('status_net', array('source_code' => $source->code));
|
||||||
|
|
||||||
|
Event::handle('EndActivityObjectFromNoticeSource', array($source, &$object));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $object;
|
||||||
|
}
|
||||||
|
|
||||||
function outputTo($xo, $tag='activity:object')
|
function outputTo($xo, $tag='activity:object')
|
||||||
{
|
{
|
||||||
if (!empty($tag)) {
|
if (!empty($tag)) {
|
||||||
|
@ -799,7 +840,7 @@ class ActivityObject
|
||||||
// summary
|
// summary
|
||||||
$object['summary'] = $this->summary;
|
$object['summary'] = $this->summary;
|
||||||
|
|
||||||
// summary
|
// content
|
||||||
$object['content'] = $this->content;
|
$object['content'] = $this->content;
|
||||||
|
|
||||||
// published (probably don't need. Might be useful for repeats.)
|
// published (probably don't need. Might be useful for repeats.)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user