Obrigado pelo seu trabalho aqui! Estou realmente ansioso para ativar isso e agradeço por liberá-lo para testes, para que aqueles de nós com várias configurações possam contribuir pelo menos com testes em um conjunto mais amplo de cenários.
Ao pensar em quando ativar isso para o meu site, estou tentando pensar sobre quais seriam as “portas de mão única”.
Subcategorias
Tenho 8 categorias de nível superior, mas, além disso, tenho 21 subcategorias públicas. Ter que seguir 29 atores para acompanhar toda a atividade pública do site parece muito. Além disso, pode ser uma surpresa para os usuários que seguir uma categoria não segue as subcategorias.
Se eu pudesse selecionar uma opção nas configurações de AtividadePub da categoria para “federar também subcategorias públicas”, eu faria isso. Se federar separadamente as subcategorias parece ser uma porta majoritariamente de mão única do ponto de vista do usuário, eu acho. Portanto, se você considerar uma opção de “federar também subcategorias”, isso pode informar meus planos. Nossa barra lateral padrão mostra apenas as categorias de nível superior, e o padrão do Discourse ao visualizá-las é todo o conteúdo de nível superior e subcategoria juntos, então isso parece razoavelmente consistente com as expectativas do Discourse.
Federar tudo!
Acho que seria interessante também adicionar uma configuração em todo o site para um ator de AtividadePub que federe todas as postagens públicas em um site. Eu usaria isso pessoalmente. Mas não vejo isso como uma porta de mão única — eu configuraria a federação de categorias assim que estivesse pronta, mesmo que depois eu adicionasse um ator “all@” para federar tudo.
Limitações de edição
Uma das coisas que não é óbvia em sua postagem é que ela pode ser lida como se apenas a seção literal [note]...[/note] não pudesse ser editada. Para outros aqui, o que isso realmente significa é que, se você federar, a edição está atualmente desativada em todas as postagens assim que elas são federadas (exceto para postagens com uma seção literal [note]...[/note]); esta mensagem aparece apenas quando você tenta salvar sua edição:
Meu site permite intencionalmente que usuários suficientemente confiáveis editem indefinidamente, então não posso ativar isso sem a capacidade de desativar esse controle (ou o controle ser removido porque as edições são federadas). Como um exemplo geral aplicável além de sites confiáveis, qualquer categoria com postagens em modo wiki será quebrada ao configurar a federação para essa categoria.
Tentei excluir uma postagem federada que eu havia tornado um wiki e recebi isto:
No entanto, a postagem foi excluída e a exclusão foi federada.
Personalidade
Seria bom fornecer uma imagem de perfil para cada ator designado. No Mastodon, vejo apenas a imagem do elefante cinza para cada ator de categoria, e eu adoraria adicionar um pouco de personalidade aqui. ![]()
Logs de erro
Recebi dois tipos de erros em meus logs do plugin de atividadepub até agora:
Message (3 copies reported)
NoMethodError (undefined method `ap_type' for nil:NilClass)
(eval):7:in `_fast_attributes'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Backtrace
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:18:in `object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:18:in `_object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:9:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:50:in `json'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `map'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `ordered_items'
(eval):7:in `_fast_attributes'
Message
Job exception: undefined method `model' for #<DiscourseActivityPubActivity id: 2, ap_id: "https://social.makerforums.info/cf2e1e8d-83e3-447e...", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 3, object_id: "1", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 02:23:13.798564000 +0000", updated_at: "2023-06-01 02:23:13.798564000 +0000">
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activemodel-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'
/var/www/discourse/app/jobs/base.rb:232:in `each'
/var/www/discourse/app/jobs/base.rb:232:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'
Obrigado novamente pelo seu trabalho nisso!

