Configurare un Attore ActivityPub

Questo argomento tratta l’impostazione di un Actor ActivityPub in Discourse con il Plugin ActivityPub di Discourse. Se non sei sicuro di cosa significhi, consulta prima l’argomento Plugin ActivityPub di Discourse.

Prossimo Passo

Istruzioni

Per creare un Actor ActivityPub:

  1. Vai su Admin > Plugin > ActivityPub.
  2. Fai clic su “Aggiungi Actor”.
  3. Compila il modulo Aggiungi Actor (le impostazioni sono spiegate di seguito).
  4. Fai clic su “Salva Actor”.

Quando salvi l’Actor, altri Actor nel fediverso possono iniziare a seguirlo. Puoi disabilitare un actor, attivando l’interruttore “Abilitato” sulla destra della vista Modifica Actor.

Impostazioni Actor

Nome utente

Questa è la prima parte dell’handle ActivityPub dell’Actor, ad esempio announcements è il nome utente di announcements@meta.discourse.org. Questa sarà la base per il nome utente dell’utente dell’Actor su istanze Discourse remote (se il nome utente è già preso su quell’istanza, verrà aggiunto un intero per unicità).

:point_right: Questa proprietà si traduce in preferredUsername nella specifica ActivityPub.
:point_right: Attualmente, non può essere modificata una volta impostata. Questo cambierà se e quando questa PR a Mastodon verrà unita.

Nome

Questo è il nome visualizzato dell’Actor. Il suo utilizzo dipenderà da come altri servizi lo implementano. In Discourse diventerà il “Nome” dell’utente dell’Actor.

Visibilità

Questo determina se le Attività pubblicate dall’Actor avranno “Indirizzamento Pubblico”. Dovresti lasciarlo su pubblico a meno che tu non sappia cosa stai facendo.

:point_right: Questo è essenzialmente lo stesso della differenza tra post “pubblici” e “privati” (solo per follower) su Mastodon.

Tipo di oggetto post

Questo determina se l’Actor pubblicherà post come Note o Articolo. Dovresti lasciarlo su Note a meno che tu non sappia cosa stai facendo.

:point_right: Mastodon pubblicherà solo un link al post originale se riceve un Articolo.

Tipo di pubblicazione

Argomento completo

Tutti i post in un argomento associato all’Actor verranno pubblicati e tutte le risposte dal Fediverso verranno trasformate in post.

Primo post

Solo il primo post in un argomento associato all’Actor verrà pubblicato e nessuna risposta dal Fediverso verrà trasformata in post.

3 Mi Piace

Ho appena aggiunto il plugin a un’installazione di discourse 3.3.2. Vedo il plugin nell’elenco dei plugin, nelle preferenze del plugin, ecc.

Tuttavia, quando provo ad aggiungere attori, posso aggiungere attori solo per i Tag (che non mi servono), ma non per le categorie. Sembra un problema di interfaccia utente / javascript lato browser (non sono uno sviluppatore web).

Ho provato sia con Firefox che con Chromium su Debian, ed entrambi mostrano lo stesso comportamento

  • l’aggiunta di attori per i Tag funziona come previsto
  • l’aggiunta di attori per le Categorie è impossibile poiché nessuna casella di selezione per le categorie viene mai renderizzata a destra della scelta Seleziona un modello / Categoria.

Sto ricevendo un

runtime.js:912 Uncaught TypeError: Cannot read properties of null (reading 'firstNode')
    at ue.firstNode (runtime.js:912:1)
    at T (runtime.js:241:1)
    at ue.reset (runtime.js:983:1)
    at ae.resume (runtime.js:686:1)
    at Ut.handleException (runtime.js:4309:1)
    at Vt.handleException (runtime.js:4521:1)
    at Dt.throw (runtime.js:4260:1)
    at $e.evaluate (runtime.js:2088:1)
    at Dt._execute (runtime.js:4247:1)
    at Dt.execute (runtime.js:4232:1)
    at qt.rerender (runtime.js:4547:1)
    at hr.render (index.js:4674:1)
    at index.js:4934:1
    at Nt (runtime.js:4080:1)
    at gr._renderRoots (index.js:4916:1)
    at gr._renderRootsTransaction (index.js:4960:1)
    at gr._revalidate (index.js:4992:1)
    at invoke (backburner.js.js:280:1)
    at h.flush (backburner.js.js:197:1)
    at p.flush (backburner.js.js:358:1)
    at B._end (backburner.js.js:798:1)
    at B.end (backburner.js.js:589:1)
    at B._run (backburner.js.js:842:1)
    at B._join (backburner.js.js:819:1)
    at B.join (backburner.js.js:629:1)
    at l (index.js:81:1)
    at u.onHover (index.js:118:1)
    at e.handleMouseEnter (select-kit-row.js:83:22)

errore nella console degli sviluppatori quando si seleziona “Categoria” dal pulsante “Seleziona un modello”.

Generalmente, il supporto viene fornito solo su Meta per le ultime versioni stabili o testate - c’è un motivo per cui sei in ritardo? Vale la pena aggiornare all’ultima versione e riprovare.

Era un errore di battitura, mi dispiace. Sono sulla 3.3.2.

1 Mi Piace

Ciao @LaF0rge, questo plugin attualmente supporta solo l’ultima versione di Discourse. Vedi oltre:

1 Mi Piace

Ciao @angus - grazie per la tua risposta. Purtroppo non sono disposto ad aggiornare la nostra installazione di produzione a una versione beta o al master git corrente. Suppongo che aspetterò finché non sarà stata contrassegnata/rilasciata una nuova versione stabile di discourse.

A proposito: sono disponibili informazioni strutturate che indichino la versione minima richiesta di un plugin? Non l’ho vista qui nel post iniziale della discussione, né su GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.

In altri progetti/prodotti software, i plugin di solito indicano la compatibilità delle versioni.

Dato che il plugin è in circolazione da più di un anno, immagino che un’altra opzione sarebbe quella di eseguire il downgrade a una versione precedente del plugin, risalente al periodo in cui la 3.3.2 era corrente? Tuttavia, nel log dei commit non ho potuto vedere immediatamente riferimenti alle versioni di discourse.

A meno che non si abbia un motivo specifico per non farlo, si consiglia di utilizzare il branch tests-passed di Discourse. Vedi ulteriormente:

Inoltre, si può presumere che i plugin o le personalizzazioni con il tag experimental (come fa il plugin ActivityPub) funzionino in modo affidabile solo sull’ultima versione di Discourse.

Più specificamente alle tue domande implicite sulla gestione delle versioni, nei plugin di Discourse questo viene gestito tramite il file .discourse-compatibility, di cui puoi leggere qui:

Vedi il file di compatibilità del plugin ActivityPub qui:

Poiché il plugin ActivityPub è ancora experimental, garantire la retrocompatibilità non è stato un obiettivo, tuttavia indagherò sull’aggiunta del supporto esplicito per 3.3.2 a quel file all’inizio della prossima settimana.

Ma come accennato in precedenza, a meno che non si abbia un buon motivo per non farlo, suggerirei di utilizzare tests-passed.

3 Mi Piace

@LaF0rge Ho appena controllato questo.

Il plugin non ha bisogno di aggiungere un supporto esplicito per 3.3.2 poiché lo ha già nel file di compatibilità.

< 3.4.0.beta1-dev: 3a6512d0560211b93f022a27ed7276024d0020dc

Se stai utilizzando un’installazione standard di Discourse su 3.3.2, sarai automaticamente sul commit 3a6512d0560211b93f022a27ed7276024d0020dc del plugin per il quale il menu a discesa delle categorie funziona. Vedi ulteriormente:

Grazie per il tuo ulteriore contributo. Ho appena fatto un altro tentativo in precedenza oggi di utilizzare il plugin commit 3a6512d0560211b93f022a27ed7276024d0020dc con il mio discourse aggiornato a 3.3.3, ma sono finito in uno stato in cui tutte le richieste HTTP venivano risposte con Completed 500 Internal Server Error in 42ms (ActiveRecord: 0.0ms | Allocations: 16860) indipendentemente dall’URL. Non c’era nulla nel production.log, nulla di errato registrato nell’output/errore standard e nulla nemmeno nel passenger.3000.log. La rimozione del plugin dalla directory dei plugin + il riavvio hanno risolto il problema. Era riproducibile più volte.

Per ora mi arrendo. Era una bella idea giocare con l’integrazione ActivityPub, ma immagino che non sia al livello in cui posso ottenere qualcosa di utile, a differenza di altri plugin che sono riuscito a installare con successo. Dopotutto, non è un requisito critico, solo un “nice to have”.

Se stai cercando di associare manualmente commit specifici di qualsiasi plugin a versioni specifiche di Discourse, è improbabile che vada bene. Ti esorto a considerare l’utilizzo dell’installazione standard di Discourse. Ridurrai il tuo overhead e sarai in grado di utilizzare questo e altri plugin senza problemi.

Capisco - ma non mi discosterò dall’installare e utilizzare versioni di software etichettate/rilasciate. Per Discourse, al momento, a quanto ne so, è la 3.3.3.

Trovo molto scomodo e inquietante gestire sistemi di produzione su qualcosa di diverso dai rilasci etichettati. Chiamatemi antiquato, ma opero (e sviluppo) sistemi IT con successo dalla metà degli anni '90.

Rispetto il fatto che tu e/o la comunità ufficiale degli sviluppatori di Discourse abbiate un atteggiamento/approccio diverso. Concordiamo sul fatto di essere in disaccordo. Grazie comunque per il tuo aiuto finora!

1 Mi Piace