- 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)) {
- 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)) {
- throw new ClientException(_("Object not posted ".
- "to this user."));
- }
- } else {
- throw new ServerException(_("Don't 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_OMB,
- '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;