From ddbe906c25fc370c92fa557d3637d50b7af97754 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Sat, 12 Mar 2022 09:11:36 +0100
Subject: Fix not updating a status when newer version is fetched manually
 (#17745)

---
 app/lib/activitypub/activity.rb        | 10 +---------
 app/lib/activitypub/activity/update.rb |  2 +-
 2 files changed, 2 insertions(+), 10 deletions(-)

(limited to 'app/lib')

diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 706960f92..f599e1b58 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -71,15 +71,7 @@ class ActivityPub::Activity
   end
 
   def object_uri
-    @object_uri ||= begin
-      str = value_or_id(@object)
-
-      if str&.start_with?('bear:')
-        Addressable::URI.parse(str).query_values['u']
-      else
-        str
-      end
-    end
+    @object_uri ||= uri_from_bearcap(value_or_id(@object))
   end
 
   def unsupported_object_type?
diff --git a/app/lib/activitypub/activity/update.rb b/app/lib/activitypub/activity/update.rb
index 36ad5f446..5802ead5d 100644
--- a/app/lib/activitypub/activity/update.rb
+++ b/app/lib/activitypub/activity/update.rb
@@ -20,7 +20,7 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
   end
 
   def update_status
-    return reject_payload! if invalid_origin?(@object['id'])
+    return reject_payload! if invalid_origin?(object_uri)
 
     @status = Status.find_by(uri: object_uri, account_id: @account.id)
 
-- 
cgit