2
3
4
5
6
7
8
9
10
11
12
13
14
|
# File 'app/services/activity_pub/like_activity_handler.rb', line 2
def self.handle_like_activity(activity_hash_or_id)
activity = Fediverse::Request.dereference(activity_hash_or_id)
actor = Federails::Actor.find_or_create_by_object activity["actor"]
object = Fediverse::Request.dereference(activity["object"])
entity = begin
Federails::Actor.find_by_federation_url(object["id"])&.entity rescue ActiveRecord::RecordNotFound
Federails::Utils::Object.find_or_create!(object)
end
raise ActiveRecord::RecordNotFound unless entity
Federails::Activity.create! actor: actor, action: "Like", entity: entity
entity.is_a?(Comment) ? entity..update_like_count! : entity.update_like_count!
end
|