Plugin ActivityPub

Potresti dovermelo spiegare come se avessi 5 anni.

Se la mia organizzazione è su Mastodon all’indirizzo https://example.social/@MyOrganization

Posso avere una categoria in Discourse che mostri tutti i post dell’organizzazione su Mastodon?

https://discourse.example.org//c/fediverse/67

E qualsiasi interazione con quei post (Preferito o Risposta) su Mastodon sarà rappresentata nei post di Discourse in quella categoria?

E qualsiasi interazione con quei post in Discourse sarà visibile in Mastodon?

Aspetterò la tua conferma o smentita prima di porre le mie domande di follow-up.

1 Mi Piace

Rispondo per tutti quelli che conosco con certezza.

Sì, puoi. Quindi quella categoria segue il tuo account Mastodon.

Le risposte sì. I preferiti (stelle) no, perché il loro ruolo è solo quello di mostrare questi “mi piace” localmente a quegli utenti di Mastodon. Altri, come la tua categoria o chiunque segua quell’utente, alias la tua organizzazione, non vedono mai i preferiti dati.

Questo è il mio problema al momento, ma no nel senso che i commenti scritti sotto un argomento in una categoria non viaggiano su Mastodon.

Ma se lo permetti, allora quella categoria può essere seguita da Mastodon e quindi tutto ciò che viene scritto è pubblico su Mastodon — a seconda delle tue impostazioni, argomenti e post, o solo il primo post degli argomenti. Le reazioni non si spostano su Mastodon.

Fondamentalmente:

  • se una categoria segue un utente mastodon: Discourse riceve da Mastodon
  • se un utente mastodon segue una categoria: Mastodon riceve da Discourse

Quindi l’enfasi è, da un punto di vista semplificato certo,

  • se il punto principale è informare gli utenti del forum, e gli utenti di Mastodon vedono solo se seguono, allora la pubblicazione avviene negli argomenti e gli utenti di Mastodon vedono solo se qualcuno segue quella categoria (o sanno come trovare quella categoria come utente ActivityPub)
  • se il punto principale è informare gli utenti di Mastodon, e gli utenti del forum vedono se seguono quella categoria, e la partecipazione federata non è necessaria dalla categoria, allora quella categoria segue il tuo utente mastodon

Quasi la stessa cosa, ma i messaggi vengono mostrati in modo diverso su Mastodon.

Una cosa. A causa dei limiti di Mastodon, praticamente tutti i tag markdown vengono mostrati così come sono, il che significa ad esempio che il grassetto non avviene su Mastodon, e i follower vedono **grassetto** invece di grassetto. E i tag non si spostano né di qua né di là.

2 Mi Piace

Ho una sandbox di Discourse, se hai bisogno di un beta tester.

1 Mi Piace

[quote=“Jakke Lehtonen, post:388, topic:266794, username:Jagster”]nessun account è @ScienceScholar@mastodon.social
[/quote]

Il motivo per cui al momento non è possibile seguire quell’account è che si tratta di un bot. Non abbiamo ancora aggiunto il supporto per seguire i bot.

Questo sembra essere dovuto all’attivazione del “Authorized fetch” di Mastodon su mastodonapp.uk. Ci darò un’altra occhiata nei prossimi giorni.

Va notato che quando segui un hashtag su Mastodon, vedrai solo i post con quell’hashtag che sono già presenti sul server a cui sei connesso. Se ci sono post con quell’hashtag su un altro server Mastodon, non li vedrai. In altre parole, Mastodon non ha aggiunto il supporto primario di ActivityPub ai propri hashtag (ad esempio, non li ha resi “Actor” come fa il plugin Discourse per i tag di Discourse). Vedi la documentazione e la discussione qui. Potrebbe essere ancora possibile farlo, ma richiederà una qualche forma di inoltro o forse di polling.

Dovrai condividere il messaggio stesso per poterti dire di più (cioè, non solo il backtrace). Quando hai abilitato il logging dettagliato, il plugin registrerà i fallimenti nell’elaborazione degli oggetti in arrivo. Ci possono essere molte ragioni per un fallimento nell’elaborazione, molte delle quali non sono correlate a Discourse. Il fediverso ha molti oggetti che volano in giro tutto il tempo. Potrei cambiare il livello di log di questi fallimenti nell’elaborazione in solo “info”, poiché penso che suggeriscano alle persone un problema con il plugin stesso, quando nella maggior parte dei casi non c’è un problema dal lato Discourse.

Sì, dovrebbero apparire come risposte su Mastodon. Gli esempi specifici sono sempre i migliori, poiché posso analizzare cosa è successo e affrontare qualsiasi cosa debba essere affrontata (se qualcosa deve essere affrontata).

Sì, è così che funziona l’impostazione “Argomento completo”. Vedi ulteriormente

1 Mi Piace

Non so a quali messaggi sia correlato, ma ne ho ricevuti molti. Cercherò di capirlo (sono abbastanza sicuro di avere il logging dettagliato abilitato, ma la mia memoria è davvero inaffidabile). D’altra parte, non vedo alcun comportamento strano da nessuna parte.

Tag, bot, ecc. - grazie, questo ha spiegato molto.

Come posso farlo? Perché succede con ognuno di essi, non con alcuni.


modifica

Non so se questo aiuta un po’, ma questo è apparso un minuto prima di quell’avviso:

[Discourse Activity Pub] Failed to process https://mastodon.social/users/fesshole: Object is not supported

Era un messaggio potenziato da me.

E con lo stesso timestamp di quell’avviso c’era questo:

[Discourse Activity Pub] Failed to process https://mastodon.social/users/moa333#delete: Object is not ready

Se devo indovinare, quest’ultimo è correlato a handlers::warning, ed entrambi sono informativi, e non devo preoccuparmene affatto?

modifica2

Sì, il problema era la firma HTTP. Il plugin la voleva, ma il mio Mastodon non la usava. Quando è stata disabilitata su entrambe le estremità (forse abilitarla su entrambi i siti farebbe lo stesso) i messaggi hanno iniziato a viaggiare qua e là.

Devo scavare più a fondo per capire quali siano i reali pro e contro dell’utilizzo di quell’impostazione.

Grazie per avermi guidato nella giusta direzione!

1 Mi Piace

Grazie per aver condiviso. Esaminerò di nuovo la nostra implementazione delle firme HTTP nei prossimi giorni nel contesto dell’analisi di Mastodon Authorized fetch. Forse hanno cambiato il modo in cui gestiscono le firme, o dobbiamo modificare il nostro metodo di gestione.

Perché pensavo (a livello di immaginazione, nessun fatto) che se avessi avuto le firme attive in Discourse e disattivate in Mastodon, i messaggi sarebbero passati da Discourse a Mastodon (perché l’istanza non usa firme HTTP), ma non da Mastodon a Discourse (perché il forum richiede firme HTTP). Ma è successo l’esatto contrario.

Ma l’attore di Mastodon (il mio account) è collegato al mio utente Discourse e sono un amministratore: può significare qualcosa?

Comunque, quando entrambi non usano la firma HTTP tutto funziona come previsto. Per me va bene così, ma per te come sviluppatore potrebbe essere un’altra storia :smirking_face:

Non sono sicuro di quanto forti siano i benefici validi della firma HTTP. A un certo punto, non molto tempo fa, Pixelfed ha avuto problemi con Mastodon quando le firme erano in uso. E abbiamo anche un terzo attore: Wordpress.

Comunque, sto andando fuori tema.

1 Mi Piace

Questo account dovrebbe essere individuabile quando questo verrà unito e poi distribuito sul tuo server.

3 Mi Piace

@Jagster Tutte le tue risposte verranno visualizzate correttamente anche su Mastodon quando questo verrà unito.

(Mastodon ha modificato alcune impostazioni lato loro)

4 Mi Piace

Ora è risolto @tvavrda. Mi scuso per l’inconveniente, ho saltato un passaggio nel processo.

2 Mi Piace

Sto provando a seguire un account peertube in una categoria ma non va oltre lo stato in sospeso.

Ecco cosa c’è nei log

La richiesta POST a https://spectra.video/accounts/spoilerdiacre/inbox è fallita: Expected([200, 201, 202]) <=> Actual(403 Forbidden)
https://community.derpandchill.com/ap/actor/ca233d6f9d47cde558877fb7609a6b3a non è riuscito a consegnare a https://spectra.video/accounts/spoilerdiacre/inbox

Ci ho provato più volte. So che sono diversi, ma sarebbe bello pubblicare automaticamente i video sulla mia community.

Grazie per il rapporto, lo indagherò più da vicino nel corso di questa settimana.

Informazioni sulla federazione tra Discourse e Mastodon. Ci sono alcune cose che non capisco, non posso o/e mi aspetto troppo. Ho inserito alcuni link. Il contenuto è in finlandese, ma immagino che il contenuto non sia importante.

Attori del forum e boosting

Se ho capito bene, un attore di categoria federà l’argomento potenziandolo, perché l’utente reale è un attore, ma le cose semplicemente non funzionano così, almeno per ora. Quindi il boosting è l’unico modo per federare?
Ma crea una situazione in cui un utente di Mastodon lo vede come potenziato e il mittente originale è, ad esempio, il mio @Jagster@foorumi.katiska.eu. Ma loro non seguono mai l’account che potenzia, ma quello originale, come il mio account personale del forum — ma non possono, perché vedono una richiesta di approvazione, e io non posso farlo. Quindi non seguono mai nessuno.

Articolo vs. Nota

Non capisco cosa dovrei aspettarmi, ma penso che questi funzionino al contrario.
Se uso il modulo Nota, Discourse federerà il primo post così com’è. Come questo: Sokeriton kofeiini voi olla terveellistä - Ihminen, luonto & maailma - Katiskan foorumi (e come al solito i link di ActivityPub ecc. si trovano come al solito; a proposito, mi piace quel nuovo modo di mostrarlo, anche se non lo uso completamente)
Quello mostra “Leggi di più” ma cliccandoci sopra apre il contenuto in Mastodon.
Questo è un Articolo: Onko koiran peitsaaminen aina merkki ongelmasta? - Koiramaailma - Katiskan foorumi
Mostra solo il titolo e i link a quell’argomento. Quindi leggere su Mastodon è impossibile.

modifica: mi scuso per il disordine dopo la modifica, ma mi sono appena reso conto che questo tipo di articolo veniva mostrato proveniente dal mio attore del forum, non potenziato dall’attore della categoria. Lo fa ogni volta; due cose diverse: originale e boosting :man_facepalming: Quello era bello, però. Ma seguire il mio attore del forum è ancora impossibile a causa dell’approvazione; agisce come un account bloccato.
Ho provato a leggere questo (mega)argomento, e mi sono preoccupato di chiedere anche a discourse.com. Quella capacità di mostrare l’articolo completo è fatta esattamente usando il linking, non mostrando il contenuto stesso? Se è così, è inutile per Mastodon, perché può mostrare anche contenuti più lunghi, e userò la nota invece dell’articolo.

Federazione della discussione

Quando ho federato un argomento, e qualcuno ci sta commentando, quello apparirà sotto quell’argomento in modo ordinato. Ma se commento quell’argomento nel forum, quello verrà federato, ma nessuno lo vedrà come un commento di quell’argomento (o thread in Mastodon), perché è stato inviato come boost dall’attore della categoria?
È questa una situazione in cui l’app Mastodon (ufficiale) dice che forse non tutti i commenti sono in questa istanza, e dovresti aprirne uno originale — e nessuno lo fa mai.
Questo è un argomento in cui ho avuto due discussioni indipendenti in cui il forum vedeva tutto, ma Mastodon non sapeva dei commenti scritti nel forum: Pikkulasten ruuat? - Retkeily & Melonta - Katiskan foorumi
Modifica quell’argomento ha circa 5 giorni al momento della scrittura, ed è stato potenziato e pubblicato dall’attore della categoria, non dal mio utente del forum. Qualcosa è cambiato tra allora e ora (sì, sto ricostruendo quasi ogni giorno).

1 Mi Piace

Non è l’unico modo, ma è il modo principale utilizzato dalle piattaforme simili a forum per federare gruppi di argomenti/thread (cioè con un tag o una categoria particolare). Il processo è descritto in qualcosa chiamato FEP-1b12 che seguiamo e su cui abbiamo lavorato con altri implementatori.

Mi dispiace, non capisco bene qual è il problema qui. Potresti riformulare?

Il motivo per cui ciò accade è che Mastodon ha smesso di convertire il contenuto degli Articoli e mostrava solo un link al contenuto originale. Dato l’aumento dei forum nel fediverso, ad esempio il nostro!, potrebbe essere giunto il momento di una nuova PR a Mastodon per ripristinare quel supporto.

Sì, ci sono stati alcuni cambiamenti a questo riguardo di recente, perché Mastodon ha apportato varie modifiche dalla sua parte. Probabilmente ci saranno altri cambiamenti in futuro mentre cerchiamo di perfezionare l’approccio qui. Se potessi fornire esempi specifici di cose che non soddisfano le tue aspettative, ad esempio Post 1 (Discourse), Risposta 1 (Mastodon), Risposta 2 (Discourse) ecc., o qualcosa di simile, sarebbe utile.

1 Mi Piace

Non ho troppe aspettative, ma alcuni desideri li ho :joy:. Tutto il resto è ora chiaro, ma quella cosa del boost/scrittore. Potrei non avere più problemi.

Sto parlando di come viene mostrato su Mastodon.

  • potenziato dall’attore della categoria
  • quello originale è il mio utente dal forum

Quando ho cliccato sul mio attore dal forum, ha mostrato questo (screenshot dall’app Mona, ma la PWA ufficiale ha mostrato lo stesso, ma è il suo modo)

Quella icona rossa è una richiesta di follow, la stessa che si avrebbe se fosse un profilo bloccato.

Poi ho fatto la ricostruzione.

Ora la PWA ufficiale mostra quello che dovrebbe:

MA Mona mostra ancora quell’icona rossa.

Per qualche motivo io, o chiunque altro, non potevo seguire il mio attore del forum a causa di ciò. Ma ora è risolto (qualche strano problema tra i due sistemi :man_shrugging:). E ora l’app mastodon utilizzata non aggiorna il suo contenuto — ma questo non è un tuo problema in alcun modo.

Quindi questo post era solo informativo mostrando… qualcosa :joy:

1 Mi Piace

Una piccola richiesta di funzionalità cosmetica: potremmo avere un indicatore grafico per mostrare quando un post proviene da un attore ActivityPub? Proprio come vediamo un’icona a busta quando qualcuno usa l’email.

Il motivo è che i miei utenti sono confusi perché non vedono la differenza tra utenti del forum locali e utenti di Mastodon.

Perché dovrebbero saperlo? Non lo so. Le persone agiscono semplicemente così e mi piace tenerle calme. E indichiamo anche le email, e anche quello non è necessario o un dettaglio importante.

C’è un indicatore quando un post proviene da un attore remoto, è un’icona AP blu, nello stesso identico punto dell’icona della posta, accanto alla data del post.

Quello è per le risposte, per l’OP, la stessa icona in blu più altri dettagli vengono visualizzati appena sotto la mappa dell’argomento.

1 Mi Piace

Ora che me l’hai detto, riesco a vedere la differenza, a malapena :joy:

Ti ricordi il CSS per cambiare uno dei due colori in modo più chiaro?

Modifica

Cambiare quei due colori potrebbe essere anche più facile, ma come dice il mio profilo, sono solo un altro copia e incolla. Quindi ho preso questo dalla fonte.

Poiché ho zero comprensione di cosa siano tutte quelle terziarie, ecc. nel mondo reale, ho usato colori web di base.

.activity-pub-topic-status,
.activity-pub-post-status {

  &.published .d-icon-discourse-activity-pub,
  &.updated .d-icon-discourse-activity-pub {
    color: #808080;
  }
  &.published-remote .d-icon-discourse-activity-pub {
    color: #008000;
  }
}
2 Mi Piace

MODIFICA

Il problema seguente è collegato all’utente @a.gup.pe. Tutte le categorie federate trovano l’utente @koirat@a.gup.pe e lo seguono mostrando lo stato in attesa. Cambiando pagina e tornando indietro non mostra nulla, il follow è scomparso.

Le categorie possono seguire umani reali, però.

Quell’attore è di fatto un bot, e Discourse non può seguire i bot — ma per quanto ne so non si identifica come bot. E anche se il problema fosse la bottezza (è una parola? :flushed_face:) Discourse non dovrebbe comunque permettermi di seguirlo in primo luogo (a meno che Discourse non lo sappia in quel momento). Comunque, non dovrebbe terminare il follow senza dirmelo. O l’ha fatto… non ho controllato i log, colpa mia.

MODIFICA2

Questo è tutto ciò che ho trovato.

impossibile consegnare a https://a.gup.pe/u/koirat/inbox
[Discourse Activity Pub] https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd non è stato possibile consegnare a https://a.gup.pe/u/koirat/inbox
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: https://foorumi.katiska.eu/ap/activity/e05428a3d5d0d9637c8b191bc4556063
type: Follow
to: https://a.gup.pe/u/koirat
published: '2025-02-23T07:11:19Z'
updated: '2025-02-23T07:11:19Z'
actor: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
  id: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd
  type: Group
  updated: '2025-02-20T08:03:45Z'
  url: https://foorumi.katiska.eu/c/koiramaailma/33
  name: 'Katiska.eu: koiramaailma'
  inbox: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/inbox
  outbox: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/outbox
  followers: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/followers
  preferredUsername: koiramaailma
  publicKey: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
    id: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd#main-key
    owner: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd
    publicKeyPem: |
      -----BEGIN PUBLIC KEY-----
     (Non è rilevante, immagino. Occupa solo spazio)
      -----END PUBLIC KEY-----
  icon: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
    type: Image
    mediaType: image/png
    url: https://cdnfoorumi.katiska.eu/original/1X/c51c0a678551648d73e3f8729ec95ecd1fc0bb73.png
  "@context": https://www.w3.org/ns/activitystreams
"@context": https://www.w3.org/ns/activity...

Webfinger trova quell’utente a.gup.pe, quindi non può essere questo il motivo.

È un caso limite, o sto di nuovo cercando di fare qualcosa di strano?

Discourse non può seguire le liste di Mastodon (e quelle hanno a loro volta problemi in Mastodon). Quindi ho provato invece il “pseudo utente” di a.gup.pe.

Ho creato @koirat@a.gup.pe seguendo lo stesso utente sulla mia istanza — raccoglierà i toot in cui viene usato il tag #koirat (cani in finlandese, tra l’altro). Questo è andato bene.

Poi ho inviato un messaggio da Mastodon e sia il tag che l’utente sono stati menzionati. È apparso nell’elenco, che seguiva l’utente guppe.

Nel mio Discourse ho chiesto alla categoria X di seguire l’utente @koirat@a.gup.pe. Ho un’altra categoria Y che segue il mio attore @jagster@kvarkki.nexus, era nello stato in attesa. Quindi mi aspettavo di ricevere quel messaggio due volte, uno da me e uno tramite guppe (oh, per l’amor del cielo, è quello il problema :thinking:).

Il messaggio inviato dal mio attore è stato pubblicato nella categoria Y, come previsto. La categoria X non ha ricevuto nulla consegnato dall’attore guppe.

Quando ho aperto la federazione della categoria X, non stava più seguendo @koirat@a.gup.pe.

Quindi quali sono le ipotesi:

  • @a.gup.pe funziona in modo diverso e Discourse non riesce a capirlo
  • Ho provato a pubblicare due argomenti identici da Mastodon (questo posso provarlo facilmente, richiederà pochi istanti)

Questo non è un problema puramente accademico, perché risolverebbe i problemi di elenco di Mastodon.

Il motivo per cui non funziona è che quando Discourse tenta di inviare un Follow a a.gup.pe/u/koirat/inbox riceve un errore interno del server 500 in risposta.

HTTP/1.1 500 Internal Server Error\r\n

In altre parole, c’è un bug in Guppe.

Vorrei notare che l’approccio collettivo del fediverse ai gruppi si sta attualmente evolvendo. Ne sto discutendo, insieme ad altri problemi correlati, con persone di NodeBB, Wordpress, Mastodon e altri. Vedi ad esempio:

L’altro problema che Guppe dovrà affrontare è che Mastodon stesso sta lavorando da tempo a una funzionalità “Gruppo” che potrebbe entrare in conflitto con l’approccio di Guppe.

4 Mi Piace