Add generator to JSON output
This commit is contained in:
		| @@ -1608,6 +1608,12 @@ class Notice extends Managed_DataObject | ||||
|  | ||||
|             $act->context = $ctx; | ||||
|  | ||||
|             $source = $this->getSource(); | ||||
|  | ||||
|             if ($source) { | ||||
|                 $act->generator = ActivityObject::fromNoticeSource($source); | ||||
|             } | ||||
|  | ||||
|             // Source | ||||
|  | ||||
|             $atom_feed = $profile->getAtomFeed(); | ||||
|   | ||||
| @@ -106,7 +106,7 @@ class Activity | ||||
|     public $source;  // ActivitySource object representing 'home feed' | ||||
|     public $selfLink; // <link rel='self' 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 | ||||
|      * | ||||
| @@ -366,8 +366,11 @@ class Activity | ||||
|         // content | ||||
|         $activity['content'] = $this->content; | ||||
|  | ||||
|         // generator <-- We could use this when we know a notice is created | ||||
|         //               locally. Or if we know the upstream Generator. | ||||
|         // generator | ||||
|  | ||||
|         if (!empty($this->generator)) { | ||||
|             $activity['generator'] = $this->generator->asArray(); | ||||
|         } | ||||
|  | ||||
|         // icon <-- possibly a mini object representing verb? | ||||
|  | ||||
|   | ||||
| @@ -72,6 +72,7 @@ class ActivityObject | ||||
|     const SERVICE   = 'http://activitystrea.ms/schema/1.0/service'; | ||||
|     const IMAGE     = 'http://activitystrea.ms/schema/1.0/image'; | ||||
|     const COLLECTION = 'http://activitystrea.ms/schema/1.0/collection'; | ||||
|     const APPLICATION = 'http://activitystrea.ms/schema/1.0/application'; | ||||
|  | ||||
|     // Atom elements we snarf | ||||
|  | ||||
| @@ -597,6 +598,46 @@ class ActivityObject | ||||
|         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') | ||||
|     { | ||||
|         if (!empty($tag)) { | ||||
| @@ -799,7 +840,7 @@ class ActivityObject | ||||
|             // summary | ||||
|             $object['summary'] = $this->summary; | ||||
|  | ||||
|             // summary | ||||
|             // content | ||||
|             $object['content'] = $this->content; | ||||
|  | ||||
|             // published (probably don't need. Might be useful for repeats.) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user