Plugin ActivityPub

Per questo conosco la risposta. No, non puoi. Non possiamo nemmeno usarlo all’interno di Mastodon, Pixelfed, ecc. E la risposta effettiva è che questo plugin, o ActivityPub in generale, non ha nulla a che fare con gli accessi.

Ma sarebbe bello. Ma d’altra parte, l’idea di ActivityPub è esattamente quella di rimuovere la necessità di accedere ad altri servizi.

1 Mi Piace

Questa è la bellezza di un sistema in cui non c’è un algoritmo :smirking_face:. Sì, è quello che devi fare, ma funziona solo all’interno di una singola istanza. Hai ancora bisogno di follower.

La diffusa analogia di come funzionano le email è vera anche qui. Hai bisogno di qualcuno che invii email, altrimenti verrebbe considerato spam.

Sono abbastanza attivo su Mastodon, perché ho detto addio a Meta. Ho effettivamente account su tre istanze diverse. Il mio account principale segue le mie categorie e altri due seguono il mio account dell’istanza principale. In questo modo massimizzo la visibilità e il resto è in balia degli altri utenti.

A proposito, ho notato che l’incapacità di Mastodon di elaborare markdown e html infastidisce un po’ gli altri.

È troppo presto per chiedere che venga incluso in Crowdin per le traduzioni?

Ottima domanda.

Dovremo valutare se questo plugin va bene da #sperimentale a #ufficiale. In tal caso, possiamo aggiungerlo a Crowdin.

Per curiosità, a quali lingue stavi pensando?

5 Mi Piace

Ceco. Il motivo è che mentre cerco di completare una localizzazione, provo a consultare diversi forum cechi per vedere come funzionano le traduzioni (a volte si vedono cose diverse a causa delle combinazioni di dati che non si vedono sul proprio forum – plurali diversi usati, plugin diversi, ecc.).

E mi sono appena imbattuto in un forum che ha ActivityPub visibile nelle impostazioni utente. E voglio che le impostazioni utente siano completamente localizzate :slight_smile:

4 Mi Piace

Tradurre manualmente è sempre un’opzione. E al momento l’unica opzione. Mi ci sono voluti circa 10 minuti al massimo. Ma certo, se arriva automaticamente è più facile per gli amministratori.

Sì, penso che possiamo aggiungerlo a Crowdin, lo farò.

6 Mi Piace

Gli argomenti vanno nel grande mondo senza tag. È possibile aggiungere tag da Discourse in qualche modo?

Sarebbe necessario aggiungere i tag utilizzati a un post, ma solo per la direzione Mastodon, e non so se ciò sia possibile o realmente necessario. Beh, è necessario perché i tag giocano un ruolo così importante in Mastodon (o ovunque nel mondo federato, credo).

Certo, potrei semplicemente aggiungere #tag, ma è un po’ goffo perché Discourse ha il suo bel modo di usare i tag.

2 Mi Piace

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

@Angus Sono curioso di sapere se c’è un modo per farlo anche. Gli attori provenienti dal plugin Discourse hanno un identificatore comune (come metadati di tipo source: Discourse) che può essere cercato nel fediverso? O forse ci sono identificatori per i post?

1 Mi Piace

Sì, sarebbe possibile farlo. Come alludi, solleverà alcune domande poiché i tag svolgono ruoli leggermente diversi in Discourse e in altre piattaforme. Richiederà un’attenta considerazione.

Questo è correlato alla questione dei tag, ma va anche oltre. Ci sono vari livelli a questo. Potremmo implementare un approccio specifico di Mastodon per migliorare la scoperta. Potremmo anche implementare un approccio ActivityPub “normalizzato” per la scoperta. Su quest’ultimo fronte, vedi

Ma sì, possiamo discutere ulteriormente quali siano gli obiettivi di prodotto a breve, medio e lungo termine e posso sviluppare una strategia di implementazione tenendo conto di questi vari livelli. Ho già sollevato la questione con le persone pertinenti di ActivityPub:

3 Mi Piace

Vorrei conoscere i tuoi pensieri, se e come gli attori del discorso potrebbero essere indirizzabili dal fediverso.

Questa domanda è sorta mentre pensavo a come il discorso, come giardino digitale, potrebbe essere collegato al fediverso.

Se leggessi qualcosa da qualche parte sul fediverso, vorrei poterlo inoltrare a TAG@my.garden o CATEGORY@my.garden.

Cosa si dovrebbe fare con questo contenuto inoltrato, o, in quali punti all’interno del discorso dovrebbero arrivare questi messaggi?

Se l’inoltro dovesse essere possibile per chiunque, dovrebbe avvenire un processo di revisione.
Se ci fosse la possibilità di collegare account fediverse esterni ai propri, il contenuto inoltrato potrebbe arrivare come bozza, pronto per essere ulteriormente incorporato nel giardino.

Attualmente, gli attori che un attore di tag o categoria segue possono pubblicare nuovi argomenti in quel tag o categoria.

Se hai una categoria nel tuo Discourse chiamata “fediverse” e fediverse@yourforum.com segue un account su Mastodon, ad esempio fediverse@mastodon.com, allora ogni volta che fediverse@mastodon.com crea un nuovo toot, non in risposta a un altro toot, quel toot diventerà un nuovo argomento nella tua categoria “fediverse”, e qualsiasi risposta a quel toot diventerà una risposta in quell’argomento.

Applicando ciò al tuo caso, se l’“io” in quella frase è un account fediverse che TAG@my.garden o CATEGORY@my.garden segue, allora quando crei un nuovo toot, o ritwitterai un toot (alias “annunciandolo”), diventerà un nuovo argomento con TAG o in CATEGORIA.

Potremmo aggiungere la possibilità di inviare contenuti inviati a un attore di tag o categoria da un attore esterno non seguito dal tag o dalla categoria alla coda di revisione. Sarebbe un’implementazione relativamente semplice, ma il filtraggio sarebbe un problema significativo. La revisione di tutti i contenuti in arrivo non sarebbe fattibile in molti casi.

Ad esempio socialhub.activitypub.rocks ha dodici attori Discourse ActivityPub (tag e categorie). Riceve (letteralmente) centinaia di POST in arrivo ogni minuto. Se implementassi lì un sistema di revisione come quello, faresti esplodere immediatamente la coda di revisione, rendendola inutilizzabile.

Questo ha del potenziale come idea, in parte perché puoi già farlo, dai un’occhiata a “ActivityPub” nel tuo profilo e vedrai che puoi collegare attori su qualsiasi Discourse o Mastodon esterno con il tuo account utente Discourse. Quindi un modo per filtrare l’arrivo di attori non seguiti potrebbe essere il contenuto da attori collegati a utenti con sufficiente fiducia sul forum.

3 Mi Piace

E fatto: https://discourse.crowdin.com/activity-pub, i traduttori possono ora contribuire con le traduzioni per il plugin ActivityPub.

4 Mi Piace

Ci sono dei limiti su quali attori una categoria può seguire? Potrei seguire i miei, ma non riesco a trovarne di strani.

modifica

Alcune delle mie categorie riescono a trovarle, altri account no. Può dipendere in qualche modo da qualche impostazione dell’istanza :thinking:

Una categoria segue un account Mastodon. Quando un post (scritto o potenziato da un attore seguito) ha un’immagine, questa non viene mai inclusa. È un problema tecnico di come Mastodon invia i dati, di come funziona ActivityPub o di come Discourse gestisce tali contenuti?

C’è qualcosa che non va. Non c’è nulla da tradurre.

1 Mi Piace

Penso che ci possano essere ancora alcuni problemi nell’integrazione con l’Authorized Fetch di Mastodon che dobbiamo ancora risolvere. Ciò potrebbe influire sulla reperibilità degli account su alcune istanze di Mastodon. Se potessi fornire degli esempi, sarebbe d’aiuto.

Presto cercheremo di migliorare il supporto delle immagini.

1 Mi Piace

mastodon.social fallisce ogni volta, e questo significa che ho provato account da lì circa una mezza dozzina di volte. Ecco perché mi chiedevo se dipendesse in qualche modo dalle impostazioni di un’istanza.

Ma un account è @ScienceScholar@mastodon.social. Un altro esempio potrebbe essere @GetCarter@mastodonapp.uk.

Solo un altro sogno per le fasi successive :face_with_peeking_eye:

Se una categoria potesse seguire i (hash)tag di Mastodon… sarebbe un vero punto di svolta — sì, non ho assolutamente idea se sia tecnicamente possibile dato che un’istanza Mastodon funziona in modo molto diverso da Discourse, ma sarebbe comunque un’ottima funzionalità.

1 Mi Piace

Che cos’è questo:

[dettagli= discourseactivitypub::AP::Handlers::Warning]
Messaggio (3765 copie segnalate)

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

Tracciamento

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in 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:in 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:in each' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in warn' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:26:in log’
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/logger.rb:63:in warn' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:42:in rescue in block in perform_transactions’
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:35:in 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:in 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:in 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:in 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:in transaction' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:234:in 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:in with_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in with_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/transactions.rb:233:in transaction' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:34:in perform_transactions’
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:26:in process' /var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_process.rb:12:in execute’
/var/www/discourse/app/jobs/base.rb:316:in 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:in with_connection’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/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’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in execute_job' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in 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:in block in invoke' /var/www/discourse/lib/sidekiq/pausable.rb:132:in call’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in block in invoke' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in invoke’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in block in process' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in 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:in local' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in block (5 levels) in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq.rb:44:in block in '<modulo:Sidekiq> ' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in block (4 livelli) in 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 livelli) in dispatch’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/s…