X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Factivitymover.php;h=74c5c68ad688d8d824394f2d414e66ae2e0dc72c;hb=0b9a2fdf3ad19942e85a66b94d08501ce9c927dd;hp=d5edab5caacb007b73c9fb9745a82a5c3aace820;hpb=2a4dc77a633cc78907934fd93200ac16d55be78e;p=quix0rs-gnu-social.git diff --git a/lib/activitymover.php b/lib/activitymover.php index d5edab5caa..74c5c68ad6 100644 --- a/lib/activitymover.php +++ b/lib/activitymover.php @@ -56,7 +56,14 @@ class ActivityMover extends QueueHandler list ($act, $sink, $userURI, $remoteURI) = $data; $user = User::getKV('uri', $userURI); - $remote = Profile::fromURI($remoteURI); + try { + $remote = Profile::fromUri($remoteURI); + } catch (UnknownUriException $e) { + // Don't retry. It's hard to tell whether it's because of + // lookup failures or because the URI is permanently gone. + // If we knew it was temporary, we'd return false here. + return true; + } try { $this->moveActivity($act, $sink, $user, $remote); @@ -86,7 +93,7 @@ class ActivityMover extends QueueHandler } switch ($act->verb) { - case ActivityVerb::FAVORITE: +/* case ActivityVerb::FAVORITE: $this->log(LOG_INFO, "Moving favorite of {$act->objects[0]->id} by ". "{$act->actor->id} to {$remote->nickname}."); @@ -98,7 +105,7 @@ class ActivityMover extends QueueHandler 'notice_id' => $notice->id)); $fave->delete(); } - break; + break;*/ case ActivityVerb::POST: $this->log(LOG_INFO, "Moving notice {$act->objects[0]->id} by ". @@ -107,7 +114,7 @@ class ActivityMover extends QueueHandler $sink->postActivity($act); $notice = Notice::getKV('uri', $act->objects[0]->id); if (!empty($notice)) { - $notice->delete(); + $notice->deleteAs($user->getProfile(), false); } break; case ActivityVerb::JOIN: @@ -121,14 +128,16 @@ class ActivityMover extends QueueHandler } break; case ActivityVerb::FOLLOW: - if ($act->actor->id == $user->uri) { + if ($act->actor->id === $user->getUri()) { $this->log(LOG_INFO, "Moving subscription to {$act->objects[0]->id} by ". "{$act->actor->id} to {$remote->nickname}."); $sink->postActivity($act); - $other = Profile::fromURI($act->objects[0]->id); - if (!empty($other)) { + try { + $other = Profile::fromUri($act->objects[0]->id); Subscription::cancel($user->getProfile(), $other); + } catch (UnknownUriException $e) { + // Can't cancel subscription if we don't know who to alert } } else { $otherUser = User::getKV('uri', $act->actor->id); @@ -137,7 +146,7 @@ class ActivityMover extends QueueHandler "Changing sub to {$act->objects[0]->id}". "by {$act->actor->id} to {$remote->nickname}."); $otherProfile = $otherUser->getProfile(); - Subscription::start($otherProfile, $remote); + Subscription::ensureStart($otherProfile, $remote); Subscription::cancel($otherProfile, $user->getProfile()); } else { $this->log(LOG_NOTICE,