]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/activitymover.php
Removed plugin Google-Analytics as this is free/libre and decentralized
[quix0rs-gnu-social.git] / lib / activitymover.php
index d5edab5caacb007b73c9fb9745a82a5c3aace820..74c5c68ad688d8d824394f2d414e66ae2e0dc72c 100644 (file)
@@ -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,