Plugin ActivityPub

Oui, et c’est une différence subtile par conception. L’hypothèse ici est que la plupart des utilisateurs lisant ce sujet/post n’ont pas nécessairement besoin de savoir immédiatement que « ce post provient d’un utilisateur extérieur à cette communauté ». C’est amusant à savoir en tant qu’administrateur ou en tant que personne mettant en œuvre la fonctionnalité, mais la plupart des gens veulent se concentrer sur le contenu. Nous avons donc choisi d’être relativement discrets sur les aspects techniques d’ActivityPub d’un post.

2 « J'aime »

Alors mes utilisateurs sont différents. Ils voulaient absolument savoir. Mais cela doit être un exemple de différences culturelles et de la façon dont nous, Finlandais, sommes proches du comportement asocial (par les créateurs de contenu américains, car nous n’avons aucune capacité à faire de petites conversations à l’échelle américaine :joy:).

Mais il était relativement facile de régler avec CSS, donc les valeurs par défaut conviennent (et une solution est maintenant là si quelqu’un se pose la même question).

2 « J'aime »

J’ai répondu depuis Mastodon à une publication de Discourse et la réponse n’apparaît pas dans Discourse. Est-ce un bug, ou peut-être qu’une telle fonctionnalité n’est pas encore implémentée, ou peut-être qu’il n’est pas prévu de l’implémenter ?

C’est un bug ou autre chose. Je viens d’avoir une discussion où un sujet a été publié sur Mastodon, j’ai reçu un commentaire de là-bas, j’ai répondu au sujet, et c’était visible là aussi.

Question standard : utilisez-vous la dernière version ?

1 « J'aime »

Oui, j’ai installé le plugin fraîchement, bien que j’aie dû utiliser ce fork (PR en attente) pour qu’il fonctionne du tout : GitHub - kuba-orlik/discourse-activity-pub: Adds ActivityPub support to Discourse.

PR : Fix wrong inbox/outbox URLs by kuba-orlik · Pull Request #193 · discourse/discourse-activity-pub · GitHub

2 « J'aime »

Bonjour, pouvez-vous m’aider à répondre à quelques questions liées vaguement à la modération que je n’ai pas réussi à trouver de réponses, s’il vous plaît ?

  • Une fois qu’un post a été fédéré, peut-il être modéré par les administrateurs locaux ? Je veux dire, édité, masqué, supprimé… ?
  • Que se passe-t-il si le post est modifié dans l’instance d’origine ? Est-il mis à jour dans l’instance fédérée ?
  • Si les modérateurs veulent contacter l’utilisateur fédéré en utilisant l’option de signalement ou par message/chat, peuvent-ils ? Ou ces posters distants ne sont-ils pas de véritables utilisateurs dans l’instance locale ?
  • Si j’ai un compte avec le même nom d’utilisateur et la même adresse e-mail dans deux instances fédérées, seront-ils toujours considérés comme deux comptes différents dans chaque instance, n’est-ce pas ? Il n’y a aucun moyen de les “fusionner”.
  1. oui
  2. oui (ou devrait)
  3. non, mais vous pouvez supprimer un acteur problématique (dans Mastodon, d’autres utilisateurs peuvent signaler, mais ce qui se passe dépend de l’administrateur)
  4. Discourse ne voit jamais les emails via ActivityPub. À la place, il peut y avoir plusieurs icaria@… où la « partie domaine », le nom des instances, change, et tous ces comptes appartiennent toujours à la même personne. Vous ne pouvez pas fusionner ces comptes parce que cela reviendrait à bannir des serveurs pour obtenir des sujets/publications.
1 « J'aime »

Ok, nous avons activé le plugin dans notre instance, nous avons créé un acteur connecté à un tag et nous avons fédéré notre premier post sur le Fediverse. Très excitant ! Et impressionnant.

Quelques questions (qui pourraient être des suggestions de fonctionnalités manquantes, mais j’essaie encore de comprendre ce qui est disponible) :

En tant qu’utilisateur de Discourse voyant le sujet fédéré, y a-t-il un moyen d’obtenir un lien vers le toot (message) correspondant sur Mastodon, pour le booster facilement là-bas ? Je n’ai rien trouvé dans le petit journal ajouté au sujet :

En tant qu’utilisateur de Mastodon voyant un toot venant de Discourse, y a-t-il un moyen facile de trouver le compte Mastodon de l’acteur pour le suivre ? Ils peuvent voir le compte de l’auteur, mais pas celui de l’acteur. S’ils suivent le lien vers le forum, je n’ai pas trouvé comment déduire comment trouver l’acteur.

Pourquoi le plugin booste-t-il toutes les réponses, au lieu de les laisser être de simples réponses, des réponses typiques de « public silencieux » ? Ces boosts créent beaucoup de bruit supplémentaire pour ceux qui suivent l’acteur sur Mastodon.

Que est-il censé se passer lorsqu’un utilisateur de Mastodon démarre un nouveau post (pas une réponse) et mentionne le compte de l’acteur ou le compte d’un utilisateur de Discourse ?

Enfin, cela ne semble pas normal, et nous en recevons beaucoup (plus d’une centaine en quelques heures)

Job exception: stack level too deep

activesupport-7.2.2.1/lib/active_support/core_ext/object/blank.rb:166:in `present?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:57:in `base_object_id'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:58:in `base_object_id'

(snip, des dizaines de ces messages)

/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/json_ld.rb:58:in `base_object_id'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:25:in `process_id'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:8:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job'
sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track'
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke'
sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local'
sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>'
sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats'
sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call'
sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global'
sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare'
sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch'
sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt'
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt'
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one'
sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run'
sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog'
sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread'

Si vous cliquez sur l’étiquette « Note » dans cette capture d’écran, vous obtiendrez un lien vers l’objet Note sur Discourse, mais je ne suis pas sûr que ce soit ce que vous voulez. Pourriez-vous expliquer un peu plus ce que vous attendez qu’il se passe ? Partagez peut-être une petite histoire utilisateur sur ce que vous espérez faire.

Vous parlez de l’utilisateur Discourse ? Vous ne pouvez pas suivre les utilisateurs Discourse actuellement.

Pourriez-vous élaborer sur ce que vous attendez qu’il se passe ici ? Peut-être avec une histoire utilisateur.

Cela devrait être résolu lorsque ceci sera fusionné.

1 « J'aime »

Est-ce le cas ? Ou est-ce fondamentalement la même chose que les questions précédentes sur Job exception: stack level too deep ?

1 « J'aime »

En effet ! J’avais manqué le rapport précédent. Une PR arrive sous peu.

1 « J'aime »

Ça arrive, trop de choses à faire :joy:

Merci.

1 « J'aime »

Bien sûr !

En tant qu’utilisateur de Discourse qui a également un compte Mastodon, je vois un nouveau sujet fédéré sur mon Discourse, et je veux le partager rapidement (le retweeter) depuis mon compte Mastodon, afin que tous mes abonnés Mastodon en soient informés et y répondent peut-être depuis leurs comptes Mastodon, apportant beaucoup de retours fédérés au sujet sur Discourse (et peut-être que quelques-uns d’entre eux qui ne connaissaient pas le forum rejoindront Discourse en conséquence !)

Ok, pour ce faire, l’utilisateur doit pouvoir trouver facilement une URL qu’il pourra coller dans la boîte de recherche de son client Mastodon, qui servira le toot (message) fédéré correspondant au message Discourse.

Je ne trouve pas cette URL dans l’interface Discourse. La seule façon simple de partager un message fédéré depuis Discourse que j’ai trouvée jusqu’à présent est de suivre déjà l’acteur Discourse et d’avoir le message dans ma chronologie Mastodon. C’est bien pour ceux qui suivent déjà l’acteur, mais pas pour les utilisateurs de Discourse qui ne suivent pas encore l’acteur.

J’espère avoir pu expliquer le problème sans embrouiller davantage les choses. :wink: Je publierai l’histoire utilisateur sur le partage continu plus tard, après avoir mieux compris le comportement actuel.

1 « J'aime »

Si j’ai bien compris, on trouve difficilement quoi que ce soit de cette façon sur Mastodon.

Pour moi, le problème de ce genre est la conversation elle-même. Parce que tout est reboosté, je dois trouver le premier post avant de pouvoir avoir le sujet entier, car les commentaires d’un reboost ne sont jamais montrés aux abonnés. Donc cette conversation disparaîtra.

Et si je rebooste un commentaire de Discourse, il sera montré par un « utilisateur-acteur » qui ne peut pas être suivi.

Cela, et le manque certain de tags (dièse) sont les principaux points d’interrogation maintenant — pour moi, en tout cas.

1 « J'aime »

Ok, j’ai trouvé le lien que je veux… dans les réponses, mais pas dans le message principal :

Dans les réponses, c’est l’icône de la fédération en haut à droite, à côté de « 22h » sur cette capture d’écran.

Si vous cliquez dessus, vous obtenez cette boîte de dialogue :

Ce qui pointe effectivement vers la réponse sur Mastodon : icaria36 🎶: "@icaria36@the.socialmusic.network This is a test …" - SoNoMu

Il me manque l’icône et le lien équivalents pour le message principal. C’est probablement quelque part d’évident mais je ne le trouve pas. :nerd_face:

EDIT :

Ah, attendez, ce lien n’apparaît que pour les messages provenant de Mastodon, pas pour les messages natifs de Discourse. Je viens de réaliser que la petite icône a une version bleue et une version verte pour différencier cela. Le bleu-vert n’est pas une bonne combinaison de couleurs pour distinguer une icône aussi petite. Mon écran d’ordinateur est assez bon, je n’ai pas de daltonisme, et pourtant je n’ai remarqué la différence que maintenant, en regardant ces icônes en détail.

Pour moi, un gros problème est que…

En tant qu’utilisateur de Mastodon répondant à une publication fédérée de Discourse, je veux recevoir une notification Mastodon si quelqu’un répond à ma publication ou me mentionne sur Discourse.

Actuellement, les réponses des utilisateurs de Discourse aux publications des utilisateurs de Mastodon sont très susceptibles d’être manquées par les utilisateurs de Mastodon auxquels on répond, car ils ne voient aucune notification même lorsqu’ils ont reçu une réponse ou une mention. Cela rend les conversations réelles encore plus difficiles qu’elles ne le sont déjà sur Mastodon — car vous ne savez même pas que quelqu’un a répondu à votre commentaire. Encore une fois, à moins que je ne rate quelque chose.

MAIS veuillez considérer tout cela simplement comme des commentaires pour amélioration. Ce plugin est déjà impressionnant, nous le gardons, et nous sommes heureux d’aider en signalant les problèmes et en testant de nouvelles fonctionnalités. Merci beaucoup @angus et à son équipe !

1 « J'aime »

Quelle est la différence entre « Publier » et « Livrer » ? Voici une capture d’écran de « Topic Admin », d’un sujet déjà publié mais avec un message… non livré ? Le message est correctement fédéré sur Mastodon, et je me demande ce qui se passe lorsque l’administrateur clique sur « Livrer le message n°1 ».

La publication et la livraison se font automatiquement si vous publiez dans une catégorie ou une étiquette ActivityPub (avec les paramètres pertinents). La distinction entre les deux, et ces contrôles d’administration, sont pour la flexibilité et des cas d’utilisation spécifiques.

Publier = le message est disponible sur le fediverse.
Livrer = le message est livré aux abonnés de l’acteur (ou des acteurs) concerné(s).

Cette action vous permet de livrer le même message quand vous le souhaitez, y compris après qu’il ait déjà été livré. Il existe diverses utilisations pour cela, par exemple :

  1. Vous avez initialement publié un sujet sans livrer tous les messages du sujet à vos abonnés (parce que vous ne vouliez pas les spammer). Vous pouvez ensuite livrer des messages individuels.

  2. Le message a été publié avant qu’un nouvel ensemble d’abonnés ne suive votre acteur. Vous pouvez livrer le même message à nouveau.

Si vous cliquez sur « Informations sur le sujet » pour ce sujet, vous devriez voir que le message a déjà été livré si le message est déjà fédéré sur Mastodon.

2 « J'aime »

Ok, nous avons maintenant une véritable histoire d’utilisateur d’un vrai utilisateur qui explique très bien le problème.

Si nous voulons partager un message fédéré particulier sur Fedi, quelqu’un sait comment faire ? J’ai essayé :

  • regarder le profil de @fediverse@the.socialmusic.network - aucun message visible
  • regarder mon propre profil socialmusic - aucun message visible
  • regarder sur le forum Discourse pour un bouton « partager » : l’URL n’est pas reconnue par la recherche Masto.
2 « J'aime »

C’était moi ! Merci pour ce plugin passionnant, nous nous amusons à expérimenter la Fédération sur notre forum.

J’avais quelques questions, et désolé si cela a déjà été abordé (j’ai cherché sur le forum mais je n’ai rien vu).

  • Du côté de Mastodon/etc., comment les publications privées, réservées aux abonnés et non répertoriées sont-elles gérées ?
  • Pour un utilisateur soucieux de sa vie privée, disons quelqu’un qui utilise Gotosocial, comment ses réponses fédérées sont-elles gérées ?

Je pense particulièrement aux problèmes de consentement : si quelqu’un préfère ne pas avoir ses publications consultables sur un forum public. Il pourrait ne pas être conscient que le sujet auquel il répond est visible publiquement sur Discourse. Les publications des utilisateurs de Discourse sont bien marquées, mais si je réponds à un utilisateur AP dans le même fil, je pourrais manquer le fait qu’il s’agit à l’origine d’un sujet Discourse.

3 « J'aime »