Plugin ActivityPub

Pour cela, je connais la réponse. Non, vous ne pouvez pas. Nous ne pouvons même pas l’utiliser à l’intérieur de Mastodon, Pixelfed, etc. Et la réponse réelle est que ce plugin, ou ActivityPub en général, n’a rien à voir avec les connexions.

Mais ce serait bien. Mais d’un autre côté, l’idée d’ActivityPub est précisément de supprimer le besoin de se connecter à d’autres services.

1 « J'aime »

C’est la beauté d’un système où il n’y a pas d’algorithme :smirking_face:. Oui, c’est ce que vous devez faire, mais cela ne fonctionne qu’au sein d’une seule instance. Vous avez toujours besoin de followers.

L’analogie largement utilisée sur le fonctionnement des e-mails est également vraie ici. Vous avez besoin de quelqu’un pour envoyer des e-mails, sinon cela serait considéré comme du spam.

Je suis assez actif sur Mastodon, car j’ai dit adieu à Meta. J’ai en fait des comptes sur trois instances différentes. Mon compte principal suit mes catégories et deux autres suivent mon compte d’instance principal. Avec cela, je maximise la visibilité, et le reste dépend de la merci des autres utilisateurs.

Au fait, j’ai remarqué que l’incapacité de Mastodon à traiter le markdown et le html agace un peu les autres.

Est-il trop tôt pour demander son inclusion dans Crowdin pour les traductions ?

Bonne question.

Nous devrons évaluer si ce plugin est ok experimentalofficial. Si c’est le cas, nous pourrons l’ajouter à Crowdin.

Par curiosité, à quelle(s) langue(s) pensiez-vous ?

5 « J'aime »

Tchèque. La raison est qu’en essayant de terminer une localisation complète, j’essaie de parcourir différents forums tchèques et de voir comment les traductions fonctionnent (parfois, vous voyez des choses différentes en raison de la combinaison de données que vous ne voyez pas sur votre propre forum – différents pluriels utilisés, différents plugins, etc.).

Et je suis tombé sur un forum qui a ActivityPub visible dans les paramètres utilisateur. Et je veux que les paramètres utilisateur soient entièrement localisés :slight_smile:

4 « J'aime »

La traduction manuelle est toujours une option. Et pour l’instant, la seule option. Cela m’a pris environ 10 minutes maximum. Mais bien sûr, si cela vient automatiquement, c’est plus facile pour les administrateurs.

Oui, je pense que nous pouvons ajouter cela à Crowdin, je vais m’en occuper.

6 « J'aime »

Les sujets vont dans le grand monde sans tags. Est-il possible d’ajouter des tags depuis Discourse d’une manière ou d’une autre ?

Il faudrait ajouter les tags utilisés dans un post, mais uniquement pour la direction Mastodon, et je ne sais pas si c’est possible, ou vraiment nécessaire. Eh bien, c’est nécessaire car les tags jouent un rôle si important dans Mastodon (ou partout dans le monde fédéré, je pense).

Bien sûr, je pourrais simplement ajouter #tag, mais c’est un peu maladroit car Discourse a sa propre façon agréable d’utiliser les tags.

2 « J'aime »

https://caneandable.social/@WeirdWriter/113933429408828411

@Angus Je suis curieux de savoir s’il existe un moyen de faire cela aussi. Les acteurs provenant du plugin Discourse ont-ils un identifiant commun (comme une métadonnée de type source: Discourse) qui peut être recherché dans le fediverse ? Ou peut-être existe-t-il des identifiants pour les publications ?

1 « J'aime »

Oui, il serait possible de le faire. Comme vous le suggérez, cela soulève quelques questions, car les tags jouent des rôles légèrement différents dans Discourse et sur d’autres plateformes. Cela nécessitera une étude approfondie.

Ceci est lié à la question des tags, mais va au-delà. Il y a différentes couches à cela. Nous pourrions mettre en œuvre une approche spécifique à Mastodon pour améliorer la découverte. Nous pourrions également mettre en œuvre une approche “normalisée” d’ActivityPub pour la découverte. Sur ce dernier point, voir

Mais oui, nous pouvons discuter plus en détail des objectifs du produit à court, moyen et long terme, et je peux développer une stratégie de mise en œuvre en tenant compte de ces différentes couches. J’ai soulevé ce point auprès des personnes concernées par ActivityPub :

3 « J'aime »

J’aimerais connaître votre avis sur la manière dont les acteurs du discours pourraient être adressables depuis le fediverse.

Cette question m’est venue à l’esprit en réfléchissant à la manière dont le discours, en tant que jardin numérique, pourrait être connecté au fediverse.

Si je lis quelque chose quelque part sur le fediverse, j’aimerais pouvoir le transférer vers TAG@my.garden ou CATEGORY@my.garden.

Que faire de ce contenu transféré, ou, à quels endroits dans le discours ces messages devraient-ils arriver ?

Si le transfert devait être possible pour tout le monde, un processus de révision devrait avoir lieu.
S’il y avait une possibilité de lier des comptes étrangers du fediverse à son propre compte, le contenu transféré pourrait arriver sous forme de brouillon, prêt à être intégré davantage dans le jardin.

Actuellement, les acteurs qu’un acteur de tag ou de catégorie suit peuvent publier de nouveaux sujets dans ce tag ou cette catégorie.

Si vous avez une catégorie dans votre Discourse appelée « fediverse », et que fediverse@yourforum.com suit un compte sur Mastodon, disons fediverse@mastodon.com, alors chaque fois que fediverse@mastodon.com crée un nouveau toot, qui n’est pas une réponse à un autre toot, ce toot deviendra un nouveau sujet dans votre catégorie « fediverse », et toute réponse à ce toot deviendra une réponse dans ce sujet.

En appliquant cela à votre cas, si le « je » dans cette phrase est un compte fediverse que TAG@my.garden ou CATEGORY@my.garden suit, alors lorsque vous créez un nouveau toot, ou que vous retweetez un toot (également appelé « annonce »), il deviendra un nouveau sujet avec TAG ou dans CATEGORY.

Nous pourrions ajouter la possibilité de pousser le contenu envoyé à un acteur de tag ou de catégorie par un acteur externe non suivi par le tag ou la catégorie dans la file d’attente de révision. Ce serait une implémentation relativement simple, mais le filtrage serait un problème important. La révision de tout le contenu entrant ne serait pas réalisable dans un certain nombre de cas.

Par exemple, socialhub.activitypub.rocks a douze acteurs Discourse ActivityPub (tags et catégories). Il reçoit (littéralement) des centaines de POST entrants chaque minute. Si vous y déployiez un système de révision comme celui-ci, vous feriez exploser immédiatement la file d’attente de révision, la rendant inutilisable.

Cela a un certain potentiel en tant qu’idée, en partie parce que vous pouvez déjà le faire, consultez « ActivityPub » dans votre profil et vous verrez que vous pouvez lier des acteurs sur n’importe quel Discourse ou Mastodon externe à votre compte utilisateur Discourse. Ainsi, une façon de filtrer les acteurs externes non suivis pourrait être le contenu provenant d’acteurs liés à des utilisateurs ayant une confiance suffisante sur le forum.

3 « J'aime »

Et voilà : https://discourse.crowdin.com/activity-pub, les traducteurs peuvent désormais contribuer aux traductions du plugin ActivityPub.

4 « J'aime »

Y a-t-il des limites quant aux acteurs qu’une catégorie peut suivre ? Je pouvais suivre les miens, mais je n’en trouve pas d’étranges.

edit

Certaines de mes catégories peuvent être trouvées, certains comptes non. Cela peut-il provenir d’un réglage de l’instance :thinking:

Une catégorie suit un compte Mastodon. Lorsqu’un message (écrit ou boosté par un acteur suivi) contient une image, celle-ci n’est jamais incluse. S’agit-il d’un problème technique lié à la manière dont Mastodon envoie les données, au fonctionnement d’ActivityPub ou à la façon dont Discourse gère ce type de contenu ?

Quelque chose ne va pas. Il n’y a rien à traduire.

1 « J'aime »

Je pense qu’il peut encore y avoir des problèmes d’intégration avec le système Authorized Fetch de Mastodon que nous devons encore résoudre. Cela pourrait affecter la découvrabilité des comptes sur certaines instances Mastodon. Si vous pouviez donner des exemples, cela aiderait.

Nous chercherons à améliorer la prise en charge des images prochainement.

1 « J'aime »

mastodon.social échoue à chaque fois — et cela signifie que j’ai essayé des comptes de là-bas une demi-douzaine de fois. C’est pourquoi je me demandais si cela provenait des paramètres d’une instance d’une manière ou d’une autre.

Mais un compte est @ScienceScholar@mastodon.social. Un autre exemple pourrait être @GetCarter@mastodonapp.uk.

Juste un autre rêve pour les phases ultérieures :face_with_peeking_eye:

Si une catégorie pouvait suivre les (hash)tags de Mastodon… ce serait un véritable game changer — oui, je n’ai absolument aucune idée si c’est techniquement possible car une instance Mastodon fonctionne très différemment de Discourse, mais ce serait une fonctionnalité géniale.

1 « J'aime »

Qu’est-ce que ceci :

[details= discourseactivitypub::AP::Handlers::Warning]
Message (3765 copies reportées)

[Discourse Activity Pub] DiscourseActivityPub::AP::Handlers::Warning

Traceback
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:dans block in warn' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:dans block in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:dans each' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:dans dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:dans warn' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:26:dans log’
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:63:dans warn' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:42:dans rescue in block in perform_transactions’
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:35:dans block in perform_transactions' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:616:dans block in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/concurrency/null_lock.rb:9:dans synchronize' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:613:dans within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:361:dans transaction' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:dans block in transaction’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:dans with_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:dans with_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:dans transaction' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:dans perform_transactions’
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:26:dans process' /var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:dans execute’
/var/www/discourse/app/jobs/base.rb:316:dans block (2 levels) in perform' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:dans with_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:dans with_connection' /var/www/discourse/app/jobs/base.rb:303:dans block in perform’
/var/www/discourse/app/jobs/base.rb:299:dans each' /var/www/discourse/app/jobs/base.rb:299:dans perform’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:dans execute_job' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:dans block (2 levels) in process’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:dans block in invoke' /var/www/discourse/lib/sidekiq/pausable.rb:132:dans call’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:dans block in invoke' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:dans invoke’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:dans block in process' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:dans block (6 levels) in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:dans local' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:dans block (5 levels) in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:dans block in'<module:Sidekiq> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in block (4 niveaux) dans dispatchə
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in stats' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in block (3 niveaux) dans dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/s…