# frozen_string_literal: true # = Actor = # # Actor es la entidad que realiza acciones en ActivityPub # # @todo Obtener el perfil dinámicamente class ActivityPub class Actor < ApplicationRecord include ActivityPub::Concerns::JsonLdConcern belongs_to :instance has_many :actor_moderation has_many :activity_pubs, as: :object has_many :activities has_many :remote_flags # Obtiene el nombre de la Actor como mención, solo si obtuvimos el # contenido de antemano. # # @return [String, nil] def mention return if content['preferredUsername'].blank? return if instance.blank? @mention ||= "@#{content['preferredUsername']}@#{instance.hostname}" end def object @object ||= ActivityPub::Object::Person.find_or_initialize_by(uri: uri) end def content object.content end end end