- function oldShowNotice($nli)
- {
- $out = $nli->out;
- $notice = $nli->notice;
-
- try {
- $this->showNotice($notice, $out);
- } catch (Exception $e) {
- common_log(LOG_ERR, $e->getMessage());
- // try to fall back
- $out->elementStart('div');
- $nli->showAuthor();
- $nli->showContent();
- }
-
- $nli->showNoticeLink();
- $nli->showNoticeSource();
- $nli->showNoticeLocation();
- $nli->showContext();
- $nli->showRepeat();
-
- $out->elementEnd('div');
-
- $nli->showNoticeOptions();
- }
-
- /**
- * Render a notice as one of our objects
- *
- * @param Notice $notice Notice to render
- * @param ActivityObject &$object Empty object to fill
- *
- * @return boolean hook value
- */
- function onStartActivityObjectFromNotice($notice, &$object)
- {
- if ($this->isMyNotice($notice)) {
- $object = $this->activityObjectFromNotice($notice);
- return false;
- }
-
- return true;
- }
-
- /**
- * Handle a posted object from PuSH
- *
- * @param Activity $activity activity to handle
- * @param Ostatus_profile $oprofile Profile for the feed
- *
- * @return boolean hook value
- */
- function onStartHandleFeedEntryWithProfile($activity, $oprofile, &$notice)
- {
- if ($this->isMyActivity($activity)) {
-
- $actor = $oprofile->checkAuthorship($activity);
-
- if (empty($actor)) {
- // TRANS: Client exception thrown when no author for an activity was found.
- throw new ClientException(_('Cannot get author for activity.'));
- }
-
- $object = $activity->objects[0];
-
- $options = array('uri' => $object->id,
- 'url' => $object->link,
- 'is_local' => Notice::REMOTE,
- 'source' => 'ostatus');
-
- // $actor is an ostatus_profile
- $notice = $this->saveNoticeFromActivity($activity, $actor->localProfile(), $options);
-
- return false;
- }
-
- return true;
- }
-
- /**
- * Handle a posted object from Salmon
- *
- * @param Activity $activity activity to handle
- * @param mixed $target user or group targeted
- *
- * @return boolean hook value
- */
-
- function onStartHandleSalmonTarget($activity, $target)
- {
- if ($this->isMyActivity($activity)) {
- $this->log(LOG_INFO, "Checking {$activity->id} as a valid Salmon slap.");
-
- if ($target instanceof User_group) {
- $uri = $target->getUri();
- if (!in_array($uri, $activity->context->attention)) {
- // @todo FIXME: please document (i18n).
- // TRANS: Client exception thrown when ...
- throw new ClientException(_('Bookmark not posted to this group.'));
- }
- } else if ($target instanceof User) {
- $uri = $target->uri;
- $original = null;
- if (!empty($activity->context->replyToID)) {
- $original = Notice::staticGet('uri',
- $activity->context->replyToID);
- }
- if (!in_array($uri, $activity->context->attention) &&
- (empty($original) ||
- $original->profile_id != $target->id)) {
- // @todo FIXME: Please document (i18n).
- // TRANS: Client exception when ...
- throw new ClientException(_('Object not posted to this user.'));
- }
- } else {
- // TRANS: Server exception thrown when a micro app plugin uses a target that cannot be handled.
- throw new ServerException(_('Do not know how to handle this kind of target.'));
- }
-
- $actor = Ostatus_profile::ensureActivityObjectProfile($activity->actor);
-
- $object = $activity->objects[0];
-
- $options = array('uri' => $object->id,
- 'url' => $object->link,
- 'is_local' => Notice::REMOTE,
- 'source' => 'ostatus');
-
- // $actor is an ostatus_profile
- $this->saveNoticeFromActivity($activity, $actor->localProfile(), $options);
-
- return false;
- }
-
- return true;
- }
-
- /**
- * Handle object posted via AtomPub
- *
- * @param Activity &$activity Activity that was posted
- * @param User $user User that posted it
- * @param Notice &$notice Resulting notice
- *
- * @return boolean hook value
- */
- function onStartAtomPubNewActivity(&$activity, $user, &$notice)
- {
- if ($this->isMyActivity($activity)) {
-
- $options = array('source' => 'atompub');
-
- // $user->getProfile() is a Profile
- $this->saveNoticeFromActivity($activity,
- $user->getProfile(),
- $options);
-
- return false;
- }
-
- return true;
- }
-
- /**
- * Handle object imported from a backup file
- *
- * @param User $user User to import for
- * @param ActivityObject $author Original author per import file
- * @param Activity $activity Activity to import
- * @param boolean $trusted Is this a trusted user?
- * @param boolean &$done Is this done (success or unrecoverable error)
- *
- * @return boolean hook value
- */
- function onStartImportActivity($user, $author, $activity, $trusted, &$done)
- {
- if ($this->isMyActivity($activity)) {
-
- $obj = $activity->objects[0];
-
- $options = array('uri' => $object->id,
- 'url' => $object->link,
- 'source' => 'restore');
-
- // $user->getProfile() is a Profile
- $saved = $this->saveNoticeFromActivity($activity,
- $user->getProfile(),
- $options);
-
- if (!empty($saved)) {
- $done = true;
- }
-
- return false;
- }
-
- return true;
- }
-
- /**
- * Event handler gives the plugin a chance to add custom
- * Atom XML ActivityStreams output from a previously filled-out
- * ActivityObject.
- *
- * The atomOutput method is called if it's one of
- * our matching types.
- *
- * @param ActivityObject $obj
- * @param XMLOutputter $out to add elements at end of object
- * @return boolean hook return value
- */
- function onEndActivityObjectOutputAtom(ActivityObject $obj, XMLOutputter $out)
- {
- if (in_array($obj->type, $this->types())) {
- $this->activityObjectOutputAtom($obj, $out);
- }
- return true;
- }
-
- /**
- * Event handler gives the plugin a chance to add custom
- * JSON ActivityStreams output from a previously filled-out
- * ActivityObject.
- *
- * The activityObjectOutputJson method is called if it's one of
- * our matching types.
- *
- * @param ActivityObject $obj
- * @param array &$out JSON-targeted array which can be modified
- * @return boolean hook return value
- */
- function onEndActivityObjectOutputJson(ActivityObject $obj, array &$out)
- {
- if (in_array($obj->type, $this->types())) {
- $this->activityObjectOutputJson($obj, $out);
- }
- return true;
- }
-