. * * @category Plugin * @package GNUsocial * @author Daniel Supernault * @author Diogo Cordeiro * @copyright 2015 Free Software Foundaction, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link https://gnu.io/social */ if (!defined('GNUSOCIAL')) { exit(1); } class Activitypub_notice extends Managed_DataObject { public static function noticeToObject($notice) { // todo: fix timestamp formats $item = [ 'id' => $notice->getUrl(), // TODO: handle other types 'type' => 'Notice', 'actor' => $notice->getProfile()->getUrl(), 'published' => $notice->created, 'to' => [ // TODO: handle proper scope 'https://www.w3.org/ns/activitystreams#Public' ], 'cc' => [ // TODO: add cc's "{$notice->getProfile()->getUrl()}/subscribers", ], 'content' => $notice->getContent(), 'rendered' => $notice->getRendered(), 'url' => $notice->getUrl(), 'reply_to' => empty($notice->reply_to) ? null : Notice::getById($notice->reply_to)->getUrl(), 'is_local' => $notice->is_local, 'conversation' => $notice->conversation, 'attachment' => [], 'tag' => [] ]; return $item; } }