Plugin ActivityPub

|||
-|-|-|
:discourse2: | Riepilogo | Discourse ActivityPub ti consente di pubblicare post di Discourse tramite ActivityPub in modo che possano essere letti su servizi che supportano ActivityPub come Mastodon.
:hammer_and_wrench: | Link al Repository | GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.
:open_book: | Guida all’Installazione | Come installare plugin in Discourse

Se non hai familiarità con ActivityPub, inizia guardando questo breve video:

Quando sei pronto per iniziare a configurare il plugin, consulta i nostri argomenti activitypub Documentation > Integrations

65 Mi Piace

Grazie per il tuo lavoro qui! Non vedo l’ora di attivarlo e grazie per averlo rilasciato per il testing, in modo che coloro che hanno varie configurazioni possano contribuire almeno al testing in un’ampia gamma di scenari.

Mentre penso a quando attivarlo per il mio sito, sto cercando di capire quali potrebbero essere le “porte a senso unico”.

Sottocategorie

Ho 8 categorie di primo livello, ma in aggiunta ho 21 sottocategorie pubbliche. Dover seguire 29 attori per seguire tutta l’attività pubblica del sito sembra molto. Inoltre, potrebbe essere una sorpresa per gli utenti che seguire una categoria non segua le sottocategorie.

Se potessi selezionare un’opzione nelle impostazioni di ActivityPub della categoria per “federare anche le sottocategorie pubbliche”, lo farei. Se federare separatamente le sottocategorie sia una porta per lo più a senso unico dal punto di vista dell’utente, penso. Quindi, se prendeste in considerazione un’opzione “federare anche le sottocategorie”, ciò potrebbe informare i miei piani. La nostra barra laterale predefinita mostra solo le categorie di primo livello e l’impostazione predefinita di Discourse quando le si guarda è tutto il contenuto di primo livello e sottocategoria insieme, quindi questo sembra ragionevolmente coerente con le aspettative di Discourse.

Federare tutto!

Penso che potrebbe essere interessante aggiungere anche un’impostazione a livello di sito per un attore ActivityPub che federi tutti i post pubblici su un sito. Lo userei io stesso. Ma non lo vedo come una porta a senso unico: imposterei la federazione delle categorie non appena fosse altrimenti pronta, anche se in seguito aggiungessi un attore “all@” per federare tutto.

Limitazioni di modifica

Una delle cose che non è ovvia dal tuo post è che può essere letto che solo la sezione letterale [note]...[/note] non può essere modificata. Per altri qui, ciò che realmente significa è che se si federano, la modifica è attualmente disabilitata su tutti i post non appena vengono federati (eccetto per i post con una sezione letterale [note]...[/note]); questo messaggio appare solo quando si tenta di salvare la modifica:

Il mio sito consente intenzionalmente agli utenti sufficientemente fidati di modificare indefinitamente, quindi non posso attivarlo senza la possibilità di disabilitare questo controllo (o che il controllo venga rimosso perché le modifiche vengono federate). Come esempio generale applicabile oltre tali siti fidati, qualsiasi categoria con post in modalità wiki verrà interrotta impostando la federazione per quella categoria.

Ho provato a eliminare un post federato che avevo reso un wiki e ho ottenuto questo:

Tuttavia, il post è stato eliminato e l’eliminazione è stata federata.

Personalità

Sarebbe bello fornire un’immagine del profilo per ogni attore designato. In Mastodon, vedo solo l’immagine dell’elefante grigio per ogni attore di categoria, e mi piacerebbe aggiungere un po’ di personalità qui. :smiling_face:

Log degli errori

Finora ho riscontrato due tipi di errori nei miei log dal plugin activitypub:

Message (3 copies reported)

NoMethodError (undefined method `ap_type' for nil:NilClass)
(eval):7:in `_fast_attributes'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

Backtrace

plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:18:in `object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:18:in `_object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:9:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:50:in `json'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `map'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `ordered_items'
(eval):7:in `_fast_attributes'
Message

Job exception: undefined method `model' for #<DiscourseActivityPubActivity id: 2, ap_id: "https://social.makerforums.info/cf2e1e8d-83e3-447e...", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 3, object_id: "1", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 02:23:13.798564000 +0000", updated_at: "2023-06-01 02:23:13.798564000 +0000">

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activemodel-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'
/var/www/discourse/app/jobs/base.rb:232:in `each'
/var/www/discourse/app/jobs/base.rb:232:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'

Grazie ancora per il tuo lavoro!

8 Mi Piace

Sono felice di dire che SocialHub lo sta già eseguendo:

… tocco, tocco, tocco…

Dovrebbe essere già apparso sul Fediverso… Sto controllando i log…

Oh, ci sono problemi con il primo tentativo di seguire un attore:

  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 2, ap_id: "https://ps.s10y.eu/820e6bf2-ec02-49f8-ab5e-e3cefbb…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 4, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:30:16.131136000 +0000", updated_at: "2023-06-01 13:30:16.131136000 +0000"\u003e`
  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 8, ap_id: "https://mastodon.social/ce62fd77-fe03-4060-a951-79…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 8, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:39:14.512966000 +0000", updated_at: "2023-06-01 13:39:14.512966000 +0000"\u003e`
  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 6, ap_id: "https://social.coop/4236c87a-0d22-402d-8546-e37a21…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 6, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:38:54.493118000 +0000", updated_at: "2023-06-01 13:38:54.493118000 +0000"\u003e`
Ecco il backtrace per l'ultimo
active_model-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'

/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'

/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'

/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'

/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'

rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'

/var/www/discourse/app/jobs/base.rb:232:in `each'

/var/www/discourse/app/jobs/base.rb:232:in `perform'

sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'

sidekiq-6.5.9/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'

/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:182:in `invoke'

sidekiq-6.5.9/lib/sidekiq/processor.rb:169:in `block in process'

sidekiq-6.5.9/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_retry.rb:113:in `local'

sidekiq-6.5.9/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'

sidekiq-6.5.9/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/processor.rb:263:in `stats'

sidekiq-6.5.9/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_logger.rb:13:in `call'

sidekiq-6.5.9/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_retry.rb:80:in `global'

sidekiq-6.5.9/lib/sidekiq/processor.rb:124:in `block in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_logger.rb:39:in `prepare'

sidekiq-6.5.9/lib/sidekiq/processor.rb:123:in `dispatch'

sidekiq-6.5.9/lib/sidekiq/processor.rb:168:in `process'

sidekiq-6.5.9/lib/sidekiq/processor.rb:78:in `process_one'

sidekiq-6.5.9/lib/sidekiq/processor.rb:68:in `run'

sidekiq-6.5.9/lib/sidekiq/component.rb:8:in `watchdog'

sidekiq-6.5.9/lib/sidekiq/component.rb:17:in `block in safe_thread'

La Nota non sembra apparire nel mio feed :cry:

(sentiti libero di spostare questo messaggio in un posto più appropriato)

8 Mi Piace

A lungo termine, sono d’accordo, questo dovrebbe essere specifico per attore e configurabile. Ma al momento, il logo del sito dovrebbe essere rilevato. Lo fa per me per @feature@meta.discourse.org:

4 Mi Piace

Ok, probabilmente era correlato a uno degli errori che ho visto, allora. Il logo del sito ha molto senso per me.

Pensandoci… Se ci fosse la possibilità di usare il colore della categoria lì, sarebbe fantastico, ma non so se ci sarebbe spazio per questo.

4 Mi Piace

Ho riprovato e…

Parzialmente funzionante: la nota è stata accorciata un po’ troppo (71 caratteri) dall’originale:

Lo stavamo aspettando: ora grazie ad Angus McLeod e al team pavilion, così come a CDCK, Inc. l’azienda dietro #Discourse, il #SocialHub è ora federato! Puoi seguire @fediverse@socialhub.activitypub.rocks per annunci generali e @feps@socialhub.activitypub.rocks per le proposte di miglioramento del Fediverse.
:hugs:

4 Mi Piace

Raccomandazione generale:

Pensaci per qualche giorno prima di abilitare l’integrazione Activitypub.
Ricorda che questi account saranno elencati per sempre nel fediverso delle reti sociali e possono creare confusione se ti rendi conto che il nome dell’account/categoria dovrebbe essere cambiato in seguito. :cuore:

2 Mi Piace

Credo che nel lungo periodo, sarebbe possibile implementare ulteriormente il movimento dell’account per rinominare l’attore per una categoria. È solo più lavoro che deve essere prezioso per qualcuno disposto a fare il lavoro, quindi dubito che sia una cosa a breve termine. :smiling_face: Almeno, spero che arrivi più tardi di altri lavori più preziosi! :grin:

Ciò non invalida affatto il tuo punto.

3 Mi Piace

Grazie per il feedback ragazzi :slight_smile:

@hellekin Questo affronterà le eccezioni che stavi segnalando. @mcdanlj Affronterà anche la seconda eccezione che hai segnalato (stesso problema).

@mcdanlj Il primo problema che hai segnalato è un po’ più strano, quanto spesso lo vedi? Potresti condividere maggiori dettagli?

Grazie per il feedback su questo, lo prenderemo sicuramente in considerazione nella fase 2 del lavoro :+1:

Penso che probabilmente non accadrà nella fase 2, ma preso nota :+1:

La modifica è disabilitata solo sul contenuto del post che costituisce la Nota. Se non utilizzi i tag Nota, quelli sono i primi 500 caratteri, o qualunque cosa tu imposti per activity pub note excerpt maxlength. Una delle cose che sto sicuramente considerando per la fase 2 è di richiedere i tag [note][/note] per una Nota, poiché posso vedere che questo crea confusione.

Puoi risolvere questo problema utilizzando i tag [note][/note] per separare la Nota dal resto del contenuto.

Preso nota! Non abbiamo testato esplicitamente questo con i post wiki. Finora non sono riuscito a riprodurre il tuo problema con l’eliminazione dei post wiki. Riesci a riprodurlo in modo affidabile? Ho aggiunto alcune specifiche in questo PR che stanno passando per quello scenario, ma sono ansioso di arrivare al fondo di quello.

L’analisi dell’estratto è attualmente gestita dallo stesso sistema utilizzato dall’analisi dell’estratto dell’argomento in Discourse (ai fini dell’elenco degli argomenti), il che probabilmente spiega perché ha tagliato una buona parte di esso (anche gli estratti dell’elenco degli argomenti lo avrebbero fatto). Penso che potremmo dover utilizzare un parser separato poiché prevedo che ciò creerà alcuni problemi. Tieni duro su questo; sarà sicuramente affrontato nella fase 2.

Tieni presente che puoi modificare il nome visualizzato quanto vuoi e che la limitazione sulla modifica del nome utente non è esclusiva di questo plugin. Quindi, mentre quello che dici è vero, questo è vero per una buona parte del fediverso.

Inoltre, non ho incluso il nome utente nell’id dell’Attore, in parte per consentire la possibilità di aggiungere la possibilità di modificare il nome utente in futuro.

I dati ActivityPub del plugin sono astratti dai dati di Discourse. Non c’è alcuna limitazione intrinseca nel cambiare il modello di Discourse (cioè quale categoria) a cui è associato un attore. Potresti persino associare l’attore a un diverso tipo di modello di Discourse in futuro, cioè associare un Attore che hai creato per una categoria a un utente invece (la relazione tra Attori e modelli di Discourse è polimorfica). Non sto dicendo che queste verranno esplicitamente aggiunte come funzionalità, ma più per dire che non ci sono limitazioni rigide a questo riguardo.

In generale, sì, vale la pena considerare quali categorie vuoi come attori, ma nel complesso questa implementazione ha un grado di flessibilità relativamente elevato, quindi il tuo grado di preoccupazione dovrebbe essere relativo a quel contesto. Ho spiegato un po’ di più sulla natura del flusso di dati nel plugin, che chiarisce ulteriormente questo punto, qui

Grazie ancora a tutti! È bello avere utenti coinvolti.

5 Mi Piace

Penso che fosse associato all’eliminazione di post, dato che ho eliminato tre post di prova e ci sono state tre istanze dell’errore.

Ciò renderebbe il tutto assolutamente inutilizzabile per il mio sito. Non sto cercando di usare Discourse come un modo più difficile per scrivere post sul fediverso rispetto a scriverli direttamente su Mastodon. Costringere tutta la mia community a iniziare a usare le annotazioni bbcode [note]...[/note], inclusi i nuovi utenti del sito che cercano aiuto, sarebbe un punto di non partenza.

No, assolutamente no. Non si tratta di me. Si tratta degli utenti del mio sito, che sono utenti di Discourse, non utenti di discourse/discourse-activity-pub.git.

È solo una modifica.

La federazione delle modifiche è normale. Per quanto ne so, la maggior parte delle implementazioni ActivityPub ampiamente utilizzate consente le modifiche da molto tempo. Mastodon è stata l’unica eccezione tra le implementazioni popolari fino all’anno scorso, quando finalmente ha ceduto e ha permesso le modifiche.

Riconosco che le modifiche non facevano parte del rilascio MVP, ma finché non federerà le modifiche o non mi darà l’opzione di disattivare l’impossibilità di modificare la nota, non potrò attivarla per il mio sito. Non so se il mio caso d’uso sia strano o normale, ovviamente.

Il mio obiettivo nell’utilizzare il plugin ActivityPub è rendere più facile seguire e condividere i contenuti mentre vengono creati dai membri della mia community del forum utilizzando Discourse. Non è usare Discourse come un sostituto strano e non modificabile solo per post di Mastodon. :smiling_face:

La mia comprensione è che in futuro supporterete la federazione delle modifiche, dato che il messaggio di errore dice “non supportato attualmente” - è corretto? In tal caso, questa è solo una limitazione temporanea e le nostre differenze di caso d’uso non sono importanti. Ma mi fa riflettere sull’investire sforzi nella protezione delle modifiche rispetto al supporto della federazione delle modifiche.

Avevo dimenticato di rimuovere il plugin retort dal mio sito sandbox quando l’ho rimosso dal mio sito di produzione. La rimozione di retort ha risolto sia il registro degli errori strano che il messaggio di errore strano. Mia colpa!

Ciò significa che, così com’è il plugin oggi, potremmo usare lo stesso attore per più categorie? O che il modello dati è molto flessibile e i dettagli di implementazione sono facili da modificare?

Per tua informazione, nel mio caso, la mia preferenza sarebbe quella di pubblicare l’intero contenuto senza alcuna limitazione. So che non è così che altri potrebbero configurarlo, ma penso che alla fine imposterei la dimensione massima uguale alla dimensione massima di un post sul mio Discourse, che è… grande! :smiling_face:

2 Mi Piace

Capito, indagherò ulteriormente a breve.

Capito. Il mio commento era più che altro che la modifica di contenuti non di note è effettivamente possibile dopo la pubblicazione. Hai ragione sul fatto che questa prima versione non sarà priva di problemi di UX per l’uso generale da parte di qualsiasi utente. Tuttavia, supporta abbastanza bene altri usi, ad esempio la federazione di annunci.

Sì, aggiungeremo il supporto per la modifica dei contenuti delle Note dopo la pubblicazione nella fase 2. Si noti che la modifica è attualmente supportata prima che la nota venga pubblicata. Quando si costruisce qualcosa del genere, è necessario ridurre al minimo il numero di parti in movimento.

No, non ancora. Potresti spiegare un po’ di più cosa intendi qui? Stai pensando di avere un attore a livello di sito o ti riferisci più al problema delle sottocategorie?

Sì, anche se non userei necessariamente il termine “facile” :wink:

Sono curioso di sapere dove prevedi di federare il contenuto senza restrizioni? Domanda sincera; voglio capire un po’ di più da dove vieni.

2 Mi Piace

Ho dimenticato di rimuoverlo dopo aver scoperto che lasciare retort attivo per errore era la causa dell’errore. :flushed:

Oops.

Abbastanza buono! :pray:

Non mi preoccuperò più di questo e nella fase 2 aiuterò a testarlo.

Mi sono vagamente chiesto di entrambi, ma era una domanda di basso valore. Ero solo curioso di sapere fino a che punto potevo spingere la mia sperimentazione con il mio sito di staging e non volevo provare cose che erano già note per essere impossibili. :+1:

Ci proverò!

Contesto: Mastodon limita la lunghezza dei post che consente agli utenti di scrivere, ma non la lunghezza dei post che visualizza. Gestisco un server Mastodon-glitch configurato con un limite di 2000 caratteri; ho visto diverse persone postare sulla configurazione di un limite di 31337 caratteri (perché ovviamente). Vedo post lunghi nel mio feed da persone che usano pleroma, akkoma, ecc.

Abbiamo contenuti davvero interessanti che appaiono su Maker Forums (il mio discourse) di tanto in tanto (secondo me, comunque!), e vorrei promuoverli sul Fediverso in generale per renderli accessibili a un pubblico più ampio. So che Mastodon è stato categorico sul fatto che 500 caratteri sono la lunghezza magica per il microblogging, ma ActivityPub non è limitato al microblogging. È federazione, inclusa ma non limitata al microblogging. Quando seguo un attore ActivityPub nel mio account Mastodon, non sono limitato a post brevi. Posso leggere, commentare e rilanciare post più lunghi.

Quindi il “dove prevedi di federare” è una domanda confusa per me.

  • Rilancerei i contenuti dal mio server Mastodon-glitch. I rilanci non applicano il limite di caratteri che si applica alla scrittura di post anche su Mastodon standard.
  • Mi aspetterei che i membri della community seguissero da qualsiasi server ActivityPub (riconoscendo che sarà più Mastodon che altri, almeno al momento), e non tutti avranno la stessa opinione su quanto dovrebbe essere lunga una nota ActivityPub.

Alla fine, come amministratore del server, non ho il controllo su dove vengono federati questi contenuti. Questa è la decisione di ogni follower. Non mi è chiaro perché escludere o federare l’intero post di discourse come nota activitypub dovrebbe essere l’impostazione predefinita anche per i follower su Mastodon, ma ancor di più in tutto il Fediverso.

Non sono sicuro che questo risponda alla tua domanda. Ma non sono nemmeno sicuro di averla capita bene. :grin: Sono felice di approfondire se vuoi.

2 Mi Piace

Nessun problema! Sono contento che per ora abbiamo coperto le eccezioni. Fateci sapere se ne vedete altre. @hellekin Allo stesso modo, fateci sapere se vedete altri problemi o comportamenti strani.

Ottimo! Grazie.

Sì! Grazie, è un contesto utile per la nostra pianificazione della fase 2.

5 Mi Piace

Sto per aggiornare all’ultima versione. Una cosa che sarebbe utile è scegliere il pubblico: se il post sarà pubblico o solo per i follower. Ora è quest’ultimo, quindi non possiamo promuoverlo e dobbiamo seguire l’account prima di ricevere avvisi. Lo apprezzo perché rimane sperimentale, ma dovrebbe assolutamente esserci la possibilità di pubblicare pubblicamente in modo da poter promuovere la funzionalità più ampiamente ai Fedizens :slight_smile:

5 Mi Piace

Sì, è qualcosa che prenderemo in considerazione nella fase 2 :+1:

6 Mi Piace

Avete una roadmap pubblica per le fasi di sviluppo?

3 Mi Piace

Non c’è una roadmap pubblica, ma ti farò sapere quando avremo definito i dettagli. Sono benvenuti suggerimenti ragionevoli su cosa dovrebbe includere! Esempi di casi d’uso specifici come quello di @mcdanlj sono sempre utili.

6 Mi Piace

Ho fatto alcune proposte su SocialHub che erano già state fatte qui tempo fa…

2 Mi Piace

Non ero ancora arrivato al punto di notarlo nei miei test da un server di staging, ma vorrei riconoscere che la promozione è centrale anche per il mio caso d’uso.

6 Mi Piace

Gestione del 410 Gone

I miei log hanno molti (URL modificato):

[Discourse Activity Pub] GET request to https://activitypub.example/users/missing-account failed: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(410 Gone)

Credo che questo sia correlato a: Il recupero dell’oggetto DEVE rispondere con il codice di stato 410 Gone se Tombstone è nel corpo della risposta, altrimenti risponde con 404 Not Found (server:object-retrieval:deleted-object:410-status): l’account è stato spostato su un’altra istanza.


Ricevo anche alcuni:



[Discourse Activity Pub] update_stored_from_json failed to save actor. AR errors: Ap has already been taken. Actor JSON: {@context:[https://www.w3.org/ns/activitystreams,https://w3id.org/security/v1,{@manuallyApprovesFollowers:as:manuallyApprovesFollowers,toot:http://joinmastodon.org/ns#,featured:{@id:toot:featured,@type:@id},featuredTags:{@id:toot:featuredTags,@type:@id},alsoKnownAs:{@id:as:alsoKnownAs,@type:@id},movedTo:{@id:as:movedTo,@type:@id},schema:http://schema.org#,PropertyValue:schema:PropertyValue,value:schema:value,discoverable:toot:discoverable,Device:toot:Device,Ed25519Signature:toot:Ed25519Signature,Ed25519Key:toot:Ed25519Key,Curve25519Key:toot:Curve25519Key,EncryptedMessage:toot:EncryptedMessage,publicKeyBase64:toot:publicKeyBase64,deviceId:toot:deviceId,claim:{@type:@id,@id:toot:claim},fingerprintKey:{@type:@id,@id:toot:fingerprintKey},identityKey:{@type:@id,@id:toot:identityKey},devices:{@type:@id,@id:toot:devices},messageFranking:toot:messageFranking,messageType:toot:messageType,cipherText:toot:cipherText,suspended:toot:suspended}],id:https://mas.to/users/rikvipcode,type:Person,following:https://mas.to/users/rikvipcode/following,followers:https://mas.to/users/rikvipcode/followers,inbox:https://mas.to/users/rikvipcode/inbox,outbox:https://mas.to/users/rikvipcode/outbox,featured:https://mas.to/users/rikvipcode/collections/featured,featuredTags:https://mas.to/users/rikvipcode/collections/tags,preferredUsername:rikvipcode,name:,summary:,url:https://mas.to/@rikvipcode,manuallyApprovesFollowers:false,discoverable:false,published:2023-05-04T00:00:00Z,devices:https://mas.to/users/rikvipcode/collections/devices,suspended:true,publicKey:{@id:https://mas.to/users/rikvipcode#main-key,owner:https://mas.to/users/rikvipcode,publicKeyPem:--...


E

[Discourse Activity Pub] GET request to https://mastodon.social/users/ejovoni46709 failed: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(410 Gone)
[Discourse Activity Pub] Failed to process https://mastodon.social/users/ejovoni46709: Could not resolve actor
[Discourse Activity Pub] Failed to process https://mastodon.social/users/ejovoni46709#delete: Could not create actor
[Discourse Activity Pub] Failed to process https://mastodon.social/users/epybisezax9438#delete: Could not find object
3 Mi Piace