Complemento ActivityPub

Ok, ¿puedes enlazarme a un ejemplo de una publicación con etiquetas de notas donde las etiquetas de notas fueron ignoradas? Y también la nota en Mastodon o similar.

Si pudieras indicar dónde en la publicación se aplicaron las etiquetas de notas cuando se creó la publicación (ya que no tendré acceso a la vista de edición / historial).

Si también pudieras compartir cuál es el recuento máximo de caracteres de nota configurado actualmente en la configuración del sitio de ActivityPub.

¡Gracias!

Hice un par de pruebas más y lo que no esperaba era que no se debían usar saltos de línea o nuevas líneas entre las etiquetas [note][/note] para que se tuvieran en cuenta.

Funciona mejor una vez que los eliminé, pero el mensaje general no se ve tan bien… Supongo que no hay forma de incluirlos.

Gracias por la actualización. ¿Podrías compartir:

  1. Un ejemplo de lo que te está funcionando actualmente.
  2. Un ejemplo de lo que esperas que funcione.
  3. Idealmente, un enlace a una versión en vivo de la opción 1.

Eso me ayudará a probar y verificar el problema específico al que te refieres. Los ejemplos siempre son útiles para asegurarnos de que estamos en la misma página.

Puedes ver que TicketZon: concerti e mostre nel fediverso - Progetti - forum.linux.it se informa como compartido pero no lo está.
La cuenta existe en Mastodon y en el log tengo algo para ti:

[Discourse Activity Pub] https://forum.linux.it/ap/actor/fc1e23a5fc2214ab70c6c0aa1061a4f0 failed to schedule https://forum.linux.it/ap/activity/229b771ac7e5943928795da1122d847d for delivery: no recipients

/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>'

He añadido soporte de bloque a las etiquetas [note][/note] en esta PR (necesita ser revisada y fusionada)

Esto será el soporte estándar de markdown de bloque de Discourse siguiendo el enfoque descrito aquí

Así que esto

[note]
Primera línea

Segunda línea
[/note]

Tercera línea

Producirá un contenido de Nota de

"Primera línea\nSegunda línea"

Mientras que esto

[note]Primera línea

Segunda línea[/note]

Tercera línea

Producirá un contenido de Nota de

Primera línea\nSegunda línea\nTercera línea

(es decir, las etiquetas [note][/note] se ignoran y se eliminan)

Esto significa que no hay nadie siguiendo al actor de la Categoría, por lo que no tiene a nadie a quien entregar.

2 Me gusta

¿Uhm, entonces por la misma razón debería estar el marcador verde en la publicación que dice que se publicó o no?
Ahora estoy siguiendo todas las diversas categorías en Mastodon y haré una prueba.

Confirmo que funciona, es necesario que la cuenta sea seguida.

1 me gusta

Quizás lo que esperas es que, sin seguidores, las publicaciones del Actor de Categoría aún se muestren como toots en una representación del Actor en Mastodon. Eso requeriría que Mastodon implementara una versión de importación de outbox, es decir:

Ten en cuenta que este plugin pronto admitirá la importación de outbox (la funcionalidad ya está integrada y se expondrá a los administradores en futuras actualizaciones). En otras palabras, podrás rellenar el contenido de un actor remoto.

3 Me gusta

Ahora funciona para mí, usando Making sure you're not a bot!.

1 me gusta

También estoy recibiendo el error de que la nota completa no aparece. ¿Qué estoy haciendo mal? ¿Necesito poner un símbolo @ en la sección que se muestra a continuación?

No estoy seguro de qué estoy haciendo mal aquí.

Lo siento, no entiendo muy bien. ¿Podrías explicar un poco más?

Nada se está publicando en ActivityPub.

¿Podrías explicar un poco más sobre lo que esperas que suceda? Por ejemplo

  1. Hago una publicación en mi foro.
  2. Espero ver…

Bueno, pensé que cuando hago una publicación en las categorías en las que tengo esto habilitado, se publicaría en ActivityPub y no lo hacen. Ni siquiera se publican.

¿Qué quieres decir con “ActivityPub”? ¿Dónde esperas verlo? Lamento las preguntas. Quiero llegar al fondo del problema desde una perspectiva de usabilidad, así que estoy intentando que lo expliques con tus propias palabras :slight_smile:

Puede que tengas el mismo problema que otros han reportado, que es que no hay seguidores de tu categoría. La publicación no aparecerá en ningún lado si nadie la sigue porque no hay a dónde enviarla. O en otras palabras

La publicación de ActivityPub se basa en las relaciones de seguimiento para funcionar. Tu actor de categoría seguirá apareciendo en Mastodon (u otros servicios) sin seguidores, pero ten en cuenta que lo que Mastodon te muestra allí depende de Mastodon.

Si pudieras explicarme un poco más tus expectativas, ¡realmente ayudaría! Quizás podrías dar un ejemplo de otro servicio de ActivityPub donde sientas que esto está funcionando. Gracias.

El pequeño símbolo del ojo tiene una línea y, cuando hago clic en él, dice que no se ha publicado.

Lo más probable es que no haya nadie siguiendo tu categoría. Si activas la configuración del sitio activity_pub_verbose_logging y miras en tus registros, probablemente verás un mensaje que se parece a esto

¡Definitivamente pondré una “razón” en ese modal, ya que ha surgido varias veces! Sigue tu categoría en Mastodon y luego crea un nuevo tema.

editar o quizás simplemente lo cambiaré a “publicado” en ese escenario, ya que de hecho agrega la actividad a la bandeja de salida. Simplemente no la envía a ningún lado (ya que no tiene a dónde enviarla). Por lo tanto, técnicamente está “publicado” (es decir, está en la bandeja de salida).

3 Me gusta

¿Es un buen momento para implementar este protocolo o debería esperar un poco? Me gustaría abrir mi comunidad a Fediverse y archivar todo el contenido para todos y para siempre, pero he leído sobre Mastodon y Lemmy y supongo que no todas las nuevas leyes están en marcha.

Creo que la discusión de las circunstancias legales en cualquier jurisdicción en particular probablemente está fuera del alcance de este tema. :slight_smile:

1 me gusta

¡Tenemos algunas actualizaciones que compartir! Toda la configuración de ActivityPub se trasladará pronto a un panel de administración unificado:

Pronto será posible seguir etiquetas:

Junto con NodeBB, Flarum, Lemmy y varias otras plataformas de ActivityPub, hemos creado un grupo de trabajo de la W3C para alinear mejor el software de foros y de intercambio de enlaces en el Fediverso. Ya estamos coordinando ese trabajo a través de ActivityPub. Por ejemplo, nuestra próxima reunión se está organizando en un solo tema tanto en Discourse como en NodeBB:

6 Me gusta