Plugin ActivityPub

Ok, você pode me linkar um exemplo de postagem com tags de nota onde as tags de nota foram ignoradas? E também a nota no Mastodon ou similar.

Se você pudesse indicar onde na postagem as tags de nota foram aplicadas quando a postagem foi criada pela primeira vez (já que não terei acesso à visualização de edição / histórico).

Se você também pudesse compartilhar qual é a contagem máxima de caracteres de nota atualmente definida nas configurações do site ActivityPub.

Obrigado!

Fiz mais alguns testes e o que eu não esperava era que novas linhas ou quebras de linha não devem ser usadas entre as tags [note][/note] para que elas sejam levadas em consideração

Funciona melhor depois que eu as removi, mas a mensagem geral não fica tão boa… Suponho que não há como incluí-las?

Obrigado pela atualização. Você poderia compartilhar:

  1. Um exemplo do que está funcionando atualmente para você.
  2. Um exemplo do que você espera que esteja funcionando.
  3. Idealmente, um link para uma versão ativa do item 1.

Isso me ajudará a testar e verificar o problema específico a que você está se referindo. Exemplos são sempre úteis para garantir que estamos na mesma página.

Você pode ver que TicketZon: concerti e mostre nel fediverso - Progetti - forum.linux.it está relatado como compartilhado, mas não está.
A conta existe no Mastodon e no log eu tenho algo para você:

[Discourse Activity Pub] https://forum.linux.it/ap/actor/fc1e23a5fc2214ab70c6c0aa1061a4f0 falhou ao agendar https://forum.linux.it/ap/activity/229b771ac7e5943928795da1122d847d para entrega: sem destinatários

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:93:in `log_failure'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:35:in `can_deliver?'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:13:in `perform'

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:27:in `perform'

/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:140:in `activity_pub_deliver_activity'

/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:38:in `perform_activity_pub_activity'

/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:680:in `block (2 levels) in activate!'

/var/www/discourse/lib/plugin/instance.rb:545:in `block in on'

/var/www/discourse/lib/discourse_event.rb:12:in `block in trigger'

/usr/local/lib/ruby/3.2.0/set.rb:511:in `each_key'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each'
/var/www/discourse/lib/discourse_event.rb:12:in `trigger'

/var/www/discourse/lib/post_destroyer.rb:115:in `recover'

/var/www/discourse/app/controllers/topics_controller.rb:689:in `recover'

actionpack-7.0.8.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack-7.0.8.1/lib/abstract_controller/base.rb:215:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/rendering.rb:165:in `process_action'

actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:234:in `block in process_action'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'

/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'

i18n-1.14.4/lib/i18n.rb:322:in `with_locale'

/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:127:in `block in run_callbacks'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:138:in `run_callbacks'

actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:233:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/rescue.rb:23:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'

activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `block in instrument'

activesupport-7.0.8.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `instrument'

actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:66:in `process_action'

actionpack-7.0.8.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'

activerecord-7.0.8.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack-7.0.8.1/lib/abstract_controller/base.rb:151:in `process'

actionview-7.0.8.1/lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'

actionpack-7.0.8.1/lib/action_controller/metal.rb:188:in `dispatch'

actionpack-7.0.8.1/lib/action_controller/metal.rb:251:in `dispatch'

actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'

actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:32:in `serve'

actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'

actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'

/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'

rack-2.2.8.1/lib/rack/tempfile_reaper.rb:15:in `call'

rack-2.2.8.1/lib/rack/conditional_get.rb:40:in `call'

rack-2.2.8.1/lib/rack/head.rb:12:in `call'

actionpack-7.0.8.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'

/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'

/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'

/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'

/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'

rack-2.2.8.1/lib/rack/session/abstract/id.rb:266:in `context'

rack-2.2.8.1/lib/rack/session/abstract/id.rb:260:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport-7.0.8.1/lib/active_support/callbacks.rb:99:in `run_callbacks'

actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'

logster-2.19.1/lib/logster/middleware/reporter.rb:40:in `call'

railties-7.0.8.1/lib/rails/rack/logger.rb:40:in `call_app'

railties-7.0.8.1/lib/rails/rack/logger.rb:27:in `call'

/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'

/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/request_id.rb:26:in `call'

/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'

rack-2.2.8.1/lib/rack/method_override.rb:24:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/executor.rb:14:in `call'

rack-2.2.8.1/lib/rack/sendfile.rb:110:in `call'

actionpack-7.0.8.1/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'

rack-mini-profiler-3.3.1/lib/mini_profiler.rb:191:in `call'

message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'

/var/www/discourse/lib/middleware/request_tracker.rb:236:in `call'

railties-7.0.8.1/lib/rails/engine.rb:530:in `call'

railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'

railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'

rack-2.2.8.1/lib/rack/urlmap.rb:74:in `block in call'

rack-2.2.8.1/lib/rack/urlmap.rb:58:in `each'

rack-2.2.8.1/lib/rack/urlmap.rb:58:in `call'

unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

Adicionei suporte a blocos às tags [note][/note] neste PR (ele precisa ser revisado e mesclado)

Isso será o suporte padrão de markdown de blocos do Discourse, seguindo a abordagem descrita aqui

Então isto

[note]
Primeira linha

Segunda linha
[/note]

Terceira linha

Produzirá um conteúdo de Nota de

"Primeira linha\nSegunda linha"

Enquanto isto

[note]Primeira linha

Segunda linha[/note]

Terceira linha

Produzirá um conteúdo de Nota de

Primeira linha\nSegunda linha\nTerceira linha

(ou seja, as tags [note][/note] são ignoradas e removidas)

Isso significa que não há ninguém seguindo o ator da Categoria, então ele não tem para quem entregar.

2 curtidas

Uhm, então, pela mesma razão, deveria haver o marcador verde na postagem que diz que foi publicada ou não?
Agora estou seguindo todas as várias categorias no Mastodon e farei um teste.

Confirmo que funciona, é necessário que a conta seja seguida.

1 curtida

Talvez o que você espera é que, sem seguidores, as postagens do Ator de Categoria ainda apareçam como toots em uma representação do Ator no Mastodon? Isso exigiria que o Mastodon implementasse uma versão de importação de outbox, ou seja,

Note que este plugin suportará a importação de outbox em breve (a funcionalidade já está implementada e será exposta aos administradores em futuras atualizações). Em outras palavras, você poderá preencher o conteúdo de um ator remoto.

3 curtidas

Funciona para mim agora, usando Making sure you're not a bot!.

1 curtida

Estou recebendo o erro “whole note not listed” também. O que estou fazendo de errado? Preciso colocar um símbolo de @ na seção mostrada abaixo?

Não tenho certeza do que estou fazendo de errado aqui.

Desculpe, não entendi muito bem. Você poderia explicar um pouco mais?

Nada está sendo publicado no ActivityPub.

Você poderia explicar um pouco mais sobre o que você espera que aconteça? Por exemplo:

  1. Eu faço uma postagem no meu fórum.
  2. Eu espero ver…

Bem, eu imaginei que quando eu faço uma postagem nas categorias em que tenho isso habilitado, ela é publicada no ActivityPub e não está. Elas não estão sendo publicadas de forma alguma.

O que você quer dizer com “ActivityPub”? Onde você espera vê-lo? Desculpe pelas perguntas. Quero chegar ao fundo da questão de uma perspectiva de usabilidade, então estou tentando fazer com que você o explique com suas próprias palavras :slight_smile:

Você pode ter o mesmo problema que outros relataram, que é a ausência de seguidores para sua categoria. A postagem não aparecerá em lugar nenhum se ninguém a estiver seguindo, pois não há para onde enviá-la. Ou, em outras palavras,

A publicação do ActivityPub depende de relacionamentos de seguidores para funcionar. Seu ator de categoria ainda aparecerá no Mastodon (ou em outros serviços) sem nenhum seguidor, mas lembre-se de que o que o Mastodon mostra lá depende do Mastodon.

Se você pudesse me explicar um pouco mais suas expectativas, isso ajudaria muito! Talvez você pudesse dar um exemplo de outro serviço ActivityPub onde você sente que isso está funcionando? Obrigado.

O pequeno símbolo de olho tem uma linha atravessada e, quando clico nele, diz que não foi publicado.

Provavelmente porque não há ninguém seguindo sua categoria. Se você ativar a configuração do site activity_pub_verbose_logging e olhar em seus logs, provavelmente verá uma mensagem parecida com esta:

Com certeza colocarei um “motivo” nessa modal, pois isso já aconteceu algumas vezes! Siga sua categoria no Mastodon e, em seguida, crie um novo tópico.

editar ou talvez eu apenas mude para “publicado” nesse cenário, pois de fato adiciona a atividade à caixa de saída. Apenas não a envia para lugar nenhum (pois não tem para onde enviá-la). Portanto, tecnicamente está “publicado” (ou seja, está na caixa de saída).

3 curtidas

É um bom momento para implementar este protocolo ou devo esperar um pouco? Gostaria de abrir minha comunidade para o fediverso e arquivar todo o conteúdo para todos e para sempre, mas li sobre Mastodon e Lemmy e suponho que não seja a hora certa, já que novas leis estão surgindo.

Acho que a discussão das circunstâncias legais em qualquer jurisdição específica provavelmente está fora do escopo deste tópico. :slight_smile:

1 curtida

Algumas atualizações para compartilhar aqui! Toda a configuração do ActivityPub será em breve movida para um painel de administração unificado:

As seguintes marcações em breve serão possíveis:

Juntamente com NodeBB, Flarum, Lemmy e várias outras plataformas ActivityPub, criamos um grupo de trabalho do W3C para alinhar melhor o software de compartilhamento de Fóruns e Links no Fediverso. Já estamos coordenando esse trabalho via ActivityPub. Por exemplo, nossa próxima reunião está sendo organizada em um único tópico em Discourse e NodeBB

6 curtidas