Plugin ActivityPub

Ok, pouvez-vous me donner un lien vers un exemple de publication avec des balises de note qui ont été ignorées ? Et aussi la note sur Mastodon ou similaire.

Si vous pouviez indiquer où dans la publication les balises de note ont été appliquées lors de la création initiale de la publication (car je n’aurai pas accès à la vue d’édition / à l’historique).

Si vous pouviez également partager quel est le nombre maximum de caractères de note actuellement défini dans les paramètres du site ActivityPub.

Merci !

J’ai effectué quelques tests supplémentaires et ce à quoi je ne m’attendais pas, c’est que les nouvelles lignes ou sauts de ligne ne doivent pas être utilisés entre les balises [note][/note] pour qu’elles soient prises en compte.

Cela fonctionne mieux une fois que je les ai supprimées, mais le message général n’est pas aussi beau… Je suppose qu’il n’y a aucun moyen de les inclure ?

Merci pour la mise à jour. Pourriez-vous partager :

  1. Un exemple de ce qui fonctionne actuellement pour vous.
  2. Un exemple de ce que vous vous attendez à ce que cela fonctionne.
  3. Idéalement, un lien vers une version en direct de 1.

Cela m’aidera à tester et à vérifier le problème spécifique auquel vous faites référence. Les exemples sont toujours utiles pour nous assurer que nous sommes sur la même longueur d’onde.

Vous pouvez voir que TicketZon: concerti e mostre nel fediverso - Progetti - forum.linux.it est signalé comme partagé alors qu’il ne l’est pas.
Le compte existe sur Mastodon et dans le journal, j’ai enfin quelque chose pour vous :

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

J’ai ajouté la prise en charge des blocs aux balises [note][/note] dans cette PR (elle doit être examinée et fusionnée)

Cela deviendra la prise en charge standard des blocs Markdown de Discourse, en suivant l’approche décrite ici

Donc ceci

[note]
Première ligne

Deuxième ligne
[/note]

Troisième ligne

Produira un contenu de Note de

"Première ligne\nDeuxième ligne"

Alors que ceci

[note]Première ligne

Deuxième ligne[/note]

Troisième ligne

Produira un contenu de Note de

Première ligne\nDeuxième ligne\nTroisième ligne

(c’est-à-dire que les balises [note][/note] sont ignorées et supprimées)

Cela signifie que personne ne suit l’acteur de la catégorie, il n’y a donc personne à qui livrer.

2 « J'aime »

Euh, donc pour la même raison, il devrait y avoir le marqueur vert sur le post qui indique qu’il a été publié ou non ?
Maintenant, je suis toutes les différentes catégories sur Mastodon et je vais faire un test.

Je peux confirmer que cela fonctionne, il est nécessaire que le compte soit suivi.

1 « J'aime »

Peut-être vous attendez-vous à ce que, sans aucun abonné, les publications de l’Acteur de Catégorie s’affichent toujours comme des toots sur une représentation de l’Acteur sur Mastodon ? Cela nécessiterait que Mastodon implémente une version de l’importation de la boîte d’envoi, c’est-à-dire :

Notez que ce plugin prendra bientôt en charge l’importation de la boîte d’envoi (la fonctionnalité est déjà intégrée et sera exposée aux administrateurs dans les futures mises à jour). En d’autres termes, vous pourrez remplir le contenu d’un acteur distant a posteriori.

3 « J'aime »

Cela fonctionne pour moi maintenant, en utilisant Making sure you're not a bot!.

1 « J'aime »

J’obtiens également l’erreur “note not listed”. Qu’est-ce que je fais de mal ? Dois-je mettre un symbole @ dans la section montrée ci-dessous ?

Je ne suis pas sûr de ce que je fais de mal ici.

Désolé, je ne comprends pas très bien. Pourriez-vous expliquer un peu plus ?

Rien n’est publié sur ActivityPub.

Pourriez-vous expliquer un peu plus ce que vous attendez qu’il se passe ? Par exemple

  1. Je fais une publication sur mon forum.
  2. Je m’attends à voir…

Eh bien, j’ai pensé que lorsque je publie dans les catégories où j’ai activé cela, elles seraient publiées sur ActivityPub et ce n’est pas le cas. Elles ne sont pas publiées du tout.

Qu’entendez-vous par « ActivityPub » ? Où vous attendez-vous à le voir ? Je suis désolé pour ces questions. Je veux aller au fond du problème d’un point de vue de l’utilisabilité, alors j’essaie de vous faire l’expliquer avec vos propres mots :slight_smile:

Vous pourriez avoir le même problème que d’autres ont signalé, à savoir qu’il n’y a pas d’abonnés à votre catégorie. La publication n’apparaîtra nulle part si personne ne la suit car il n’y a nulle part où l’envoyer. Autrement dit :

La publication ActivityPub repose sur les relations d’abonnement pour fonctionner. Votre acteur de catégorie apparaîtra toujours sur Mastodon (ou d’autres services) sans aucun abonné, mais gardez à l’esprit que ce que Mastodon vous montre là-bas dépend de Mastodon.

Si vous pouviez m’expliquer un peu plus vos attentes, cela m’aiderait beaucoup ! Peut-être pourriez-vous donner un exemple d’un autre service ActivityPub où vous avez l’impression que cela fonctionne ? Merci.

Le petit symbole en forme d’œil est barré et lorsque je clique dessus, il est indiqué que cela n’a pas été publié.

Très probablement parce que personne ne suit votre catégorie. Si vous activez le paramètre du site activity_pub_verbose_logging et que vous consultez vos journaux, vous verrez probablement un message ressemblant à ceci :

Je vais certainement ajouter une « raison » à cette modale car cela est arrivé à quelques reprises ! Suivez votre catégorie sur Mastodon, puis créez un nouveau sujet.

edit ou peut-être que je vais simplement le changer en « publié » dans ce scénario, car il ajoute en fait l’activité à la boîte d’envoi. Il ne l’envoie nulle part (car il n’y a nulle part où l’envoyer). Donc, c’est techniquement « publié » (c’est-à-dire qu’il est dans la boîte d’envoi).

3 « J'aime »

C’est un bon moment pour implémenter ce protocole ou devrais-je attendre un peu ? Je souhaite ouvrir ma communauté au fediverse et archiver tout le contenu pour tout le monde et pour toujours, mais j’ai lu des choses sur Mastodon et Lemmy et je suppose que ce n’est pas le moment avec toutes les nouvelles lois qui arrivent.

Je pense que la discussion des circonstances juridiques dans une juridiction particulière est probablement hors du cadre de ce sujet. :slight_smile:

1 « J'aime »

Quelques mises à jour à partager ici ! Toute la configuration ActivityPub sera bientôt déplacée vers un panneau d’administration unifié :

Les tags suivants deviendront bientôt possibles :

Avec NodeBB, Flarum, Lemmy et un certain nombre d’autres plateformes ActivityPub, nous avons créé un groupe de travail W3C pour mieux aligner les logiciels de forum et de partage de liens dans le Fediverse. Nous coordonnons déjà ce travail via ActivityPub. Par exemple, notre prochaine réunion est organisée dans un seul sujet à la fois sur Discourse et NodeBB

6 « J'aime »