Per creare al meglio un importatore Yammer pm

Ho creato un importatore Yammer per qualcuno e vorrebbero che fosse reso pubblicamente disponibile. (Ciao @gerhard, penso che questo sia nel tuo campo.) Non riesco a capire la popolarità di Yammer e/o se sia qualcosa che presto vedrà molte persone reclamare una nuova piattaforma o se la maggior parte di quelle persone si aspetta semplicemente di perdere i propri dati quando lasciano la piattaforma.

L’esportazione di Yammer è un insieme di file CSV, quindi lo script di importazione utilizza script/import_scripts/base/generic_database.rb. Include l’importazione di messaggi privati (PM), che ha richiesto l’aggiunta di un paio di tabelle a generic_database.rb. Ho pensato che avesse più senso aggiungere codice separato per i PM piuttosto che cercare di forzare il codice esistente per gestirli e rischiare di romperlo per gli altri importatori che lo utilizzano (zendesk, zendesk_api e answerbase). Inoltre, gli allegati vengono gestiti in modo diverso da come devono essere negli script che utilizzano generic_database.rb, quindi le mie tabelle PM non gestiscono i caricamenti nel modo in cui fanno gli altri (cosa che non sono riuscito a capire del tutto). Ho anche aggiunto una tabella di caricamento invece di utilizzare topic_upload e post_upload come fa l’importatore generico.

    def create_upload_table
      @db.execute <<-SQL
        CREATE TABLE IF NOT EXISTS upload (
          id #{key_data_type} NOT NULL PRIMARY KEY,
          user_id INTEGER,
          original_filename TEXT,
          filename TEXT,
          description TEXT,
          url TEXT
        )
      SQL
    end

Il codice attuale elabora i caricamenti quando vi fa riferimento in raw. Sostituisce anche i riferimenti agli utenti con riferimenti @username di Discourse. Gestisce anche alcuni bizzarri opengraphobject e li utilizza, se esistono, per generare titoli di argomenti (che mancano dalla maggior parte degli argomenti nel dump per cui ho scritto questo).

Domande:

  • C’è troppa superficialità in questo per poter rispondere a queste domande?
  • Dovrei creare un PM per il core, o includerlo semplicemente come repository autonomo (includerò uno script che copierà il codice nell’albero sorgente di Discourse ed eseguirà da lì)?
  • Le aggiunte a generic_database sembrano ragionevoli o dovrei trovare un modo per aggiungerle a quella classe nel mio script di importazione o semplicemente includere le mie funzioni aggiuntive nel mio script e farlo fare riferimento solo al @db globale?
2 Mi Piace

Direi di creare una PR per il core e da lì andremo avanti…

2 Mi Piace

Ciao Jay,

È disponibile pubblicamente questo importer? Se sì, dove?

Grazie mille in anticipo

Saluti Johan

C’è uno script di importazione di Yammer in script/import_scripts/yammer.rb

3 Mi Piace

Thx. So here: discourse/script/import_scripts/yammer.rb at main · discourse/discourse · GitHub

2 Mi Piace

Ciao Jay.

Pensavo fosse un importatore per Yammer.
Ma se leggo il codice, non è così.
Sembra che sia un importatore per Discourse.
Non ho molta familiarità con Discourse. Puoi dirmi qualcosa sull’importatore per Discourse.

Grazie in anticipo

Giusto. Questo sito è per Discourse, quindi un “importatore X” significa quasi sempre “un importatore per spostare il tuo vecchio sito X su Discourse”.

Se hai un sito Yammer e vuoi avere un sito Discourse, questo può aiutarti.

4 Mi Piace