Domanda: Auto-mention quando un URL di argomento condiviso viene pubblicato su un altro Discourse

Mi chiedo se esista un modo, forse modificando l’URL dell’argomento condiviso, per cui un link venga menzionato automaticamente dal mio account di sistema quando viene citato su questo forum meta o altrove.

Attualmente, simuliamo questo comportamento creando un post e trasferendone la proprietà all’account di sistema. Vedi un esempio in azione qui.

Non ho capito. Puoi fornire un esempio specifico e concreto del perché ciò sarebbe desiderabile?

Certo,

  1. Creo un nuovo post sul Forum A
  2. Condivido quel post tramite URL su Forum B, un’altra istanza di Discourse.
  3. In qualche modo, Forum A riesce a identificare che ciò è avvenuto e attiva system per rispondere automaticamente nel thread originale di Forum A, mostrando:

Giusto, questo aiuta, ma perché? Qual è l’importanza di ciò, perché è necessario?

(Immagino che facciamo qualcosa di simile per l’integrazione con GitHub, dove colleghiamo i topic di Discourse al commit, ma stiamo unendo due cose eccellenti e diverse, come cioccolato e burro di arachidi. Qui invece stai unendo burro di arachidi… e… ehm… altro burro di arachidi?)

Trovo davvero utile questo, dato che usiamo piattaforme come meta.discourse per discutere problemi relativi al nostro Discourse, e la maggior parte degli amministratori non pensa a collegare questi thread per fornire contesto agli utenti e ai futuri manutentori. Ho assunto recentemente la manutenzione del nostro forum, quindi spero di lasciare più informazioni per i futuri manutentori. :slight_smile:

La “federazione” delle tecnologie dei forum sembra un argomento molto attuale in questi giorni. Sembra che non sia possibile, ma volevo solo verificare.

È follemente complicata. È l’equivalente software sociale di “le auto a guida completamente autonoma sono proprio dietro l’angolo”.

Il caso d’uso GitHub ⇿ Discourse è difendibile, il peer-to-peer molto meno, secondo la legge transitiva dei Reese’s Peanut Butter Cups.

Non è così che funzionavano anche i pingback?

Sono diventati la piaga del blogosfera, con un sacco di abusi e non sono mai stati risolti davvero.

Potresti magari mettere in whitelist i siti affidabili, ma sembra comunque molto lavoro per un ritorno minimo. Cosa succede quando un server si aggiorna a una versione o standard più recente?

D’altro canto, non sarebbe relativamente semplice farlo utilizzando incoming_links, incoming_referers e incoming_domains?

E se fosse possibile mettere in whitelist un incoming_domain e ottenere onebox per i link da quei domini verso quel topic?

Modifica: lo snippet qui sotto elenca tutti i link sui siti Discourse* che puntano a un topic specifico. Dovrebbe essere abbastanza semplice inserirlo in un job schedulato che inserisce un post nel topic ogni volta che trova un nuovo link. Il oneboxing si occuperà del resto.

topic = Topic.find(xxx)
IncomingLink.where("post_id in (#{topic.posts.pluck(:id).join(',')})").where("incoming_referer_id is not null").each do |link|
  next unless link.incoming_referer.path.start_with?('/t/')
  puts "https://#{link.incoming_referer.incoming_domain.name}#{link.incoming_referer.path}"
end

*) Al momento sto usando un controllo semplice per determinare se si tratta di un link Discourse, ma si potrebbe anche richiedere la home page del sito ed esaminare i metadati, anche se penso che questo potrebbe funzionare molto bene anche per i link provenienti da siti non Discourse. Forse mettere in whitelist i domini nelle impostazioni del plugin.