Convert OStatus tag to ActivityPub id on in_reply_to resolution (#4756)
This commit is contained in:
parent
af2d22f88c
commit
504737e860
|
@ -56,6 +56,16 @@ class OStatus::Activity::Base
|
|||
Status.find_by(uri: uri)
|
||||
end
|
||||
|
||||
def find_activitypub_status(uri, href)
|
||||
tag_matches = /tag:([^,:]+)[^:]*:objectId=([\d]+)/.match(uri)
|
||||
href_matches = %r{/users/([^/]+)}.match(href)
|
||||
|
||||
unless tag_matches.nil? || href_matches.nil?
|
||||
uri = "https://#{tag_matches[1]}/users/#{href_matches[1]}/statuses/#{tag_matches[2]}"
|
||||
Status.find_by(uri: uri)
|
||||
end
|
||||
end
|
||||
|
||||
def redis
|
||||
Redis.current
|
||||
end
|
||||
|
|
|
@ -36,7 +36,7 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
|
|||
language: content_language,
|
||||
visibility: visibility_scope,
|
||||
conversation: find_or_create_conversation,
|
||||
thread: thread? ? find_status(thread.first) : nil
|
||||
thread: thread? ? find_status(thread.first) || find_activitypub_status(thread.first, thread.second) : nil
|
||||
)
|
||||
|
||||
save_mentions(status)
|
||||
|
|
Reference in a new issue