-
- 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)) {
- 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');
-
- $this->saveNoticeFromActivity($activity, $actor, $options);
-
- return false;
- }
-
- return true;