2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'app/services/activity_pub/quote_request_handler.rb', line 2
def self.handle_quote_request(activity_hash_or_id)
real_activity = Fediverse::Request.dereference(activity_hash_or_id)
quoting_actor = Federails::Actor.find_or_create_by_object real_activity["actor"]
local_object_route = Federails::Utils::Host.local_route(
Fediverse::Request.dereference(real_activity["object"])["id"]
)
object = case local_object_route[:publishable_type]
when "comments"
Comment.find_param(local_object_route[:id])
end
quote = Fediverse::Request.dereference(real_activity["instrument"])
quote_authorization = Federails::QuoteAuthorization.create!(
quote_request_url: real_activity["id"],
quoting_actor: quoting_actor,
interaction_target: object,
interacting_object_url: quote["id"],
federails_actor: object.federails_actor
)
object&.on_new_quote_request(quote_authorization)
end
|