$options = array('uri' => $bookmark->id,
'url' => $bookmark->link,
- 'is_local' => Notice::REMOTE_OMB,
+ 'is_local' => Notice::REMOTE,
'source' => 'ostatus');
return self::_postBookmark($author->localProfile(), $activity, $options);
// TRANS: Application title.
return _m('TITLE','Bookmark');
}
+
+ function onEndUpgrade()
+ {
+ // Version 0.9.x of the plugin didn't stamp notices
+ // with verb and object-type (for obvious reasons). Update
+ // those notices here.
+
+ $notice = new Notice();
+
+ $notice->whereAdd('exists (select uri from bookmark where bookmark.uri = notice.uri)');
+ $notice->whereAdd('((object_type is null) or (object_type = "' .ActivityObject::NOTE.'"))');
+
+ $notice->find();
+
+ while ($notice->fetch()) {
+ $original = clone($notice);
+ $notice->verb = ActivityVerb::POST;
+ $notice->object_type = ActivityObject::BOOKMARK;
+ $notice->update($original);
+ }
+ }
+
+ public function activityObjectOutputJson(ActivityObject $obj, array &$out)
+ {
+ assert($obj->type == ActivityObject::BOOKMARK);
+
+ $bm = Bookmark::staticGet('uri', $obj->id);
+
+ if (empty($bm)) {
+ throw new ServerException("Unknown bookmark: " . $obj->id);
+ }
+
+ $out['displayName'] = $bm->title;
+ $out['targetUrl'] = $bm->url;
+
+ return true;
+ }
}