- if ($this->isMyActivity($activity)) {
-
- $actor = $oprofile->checkAuthorship($activity);
-
- if (empty($actor)) {
- throw new ClientException(_('Can\'t get author for activity.'));
- }
-
- $object = $activity->objects[0];
-
- $options = array('uri' => $object->id,
- 'url' => $object->link,
- 'is_local' => Notice::REMOTE_OMB,
- 'source' => 'ostatus');
-
- $this->saveNoticeFromActivity($activity, $actor);
-
- 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)) {
- 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;
- }
-
- /**
- * 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');
-
- $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');
-
- $saved = $this->saveNoticeFromActivity($activity,
- $user->getProfile(),
- $options);
-
- if (!empty($saved)) {
- $done = true;
- }
-
- return false;
- }
-
- return true;