Wie man am besten einen Yammer Importer pm erstellt

Ich habe einen Yammer-Importer für jemanden erstellt und sie möchten, dass er öffentlich verfügbar ist. (Hallo @gerhard, ich glaube, das ist etwas für dich.) Ich kann die Popularität von Yammer nicht ganz nachvollziehen und/oder ob es etwas ist, für das bald viele Leute nach einer neuen Plattform verlangen werden, oder ob die meisten dieser Leute einfach erwarten, ihre Daten zu verlieren, wenn sie die Plattform verlassen.

Der Yammer-Export besteht aus einer Reihe von CSV-Dateien, daher verwendet das Importskript script/import_scripts/base/generic_database.rb. Es beinhaltet den Import von PMs, was die Hinzufügung einiger Tabellen zu generic_database.rb erforderte. Ich dachte, es wäre sinnvoller, separaten Code für PMs hinzuzufügen, als zu versuchen, den vorhandenen Code dafür anzupassen und zu riskieren, ihn für die anderen Importer, die ihn verwenden (zendesk, zendesk_api und answerbase), zu beschädigen. Auch Anhänge werden anders behandelt, als sie es in den Skripten, die generic_database.rb verwenden, tun müssen, daher verwalten meine PM-Tabellen keine Uploads so, wie es die anderen tun (was ich nicht ganz nachvollziehen konnte). Ich habe auch eine Upload-Tabelle hinzugefügt, anstatt topic_upload und post_upload zu verwenden, wie es der generische Importer tut.

    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

Der aktuelle Code verarbeitet Uploads, wenn er Referenzen darauf in raw sieht. Er ersetzt auch Benutzerreferenzen durch Discourse-@username-Referenzen. Er verarbeitet auch einige bizarre opengraphobject und verwendet diese, falls vorhanden, um Topic-Titel zu generieren (die in den meisten Topics des Dumps, für den ich dies geschrieben habe, fehlen).

Fragen:

  • Ist das zu viel Beschönigung, um diese Fragen beantworten zu können?
  • Soll ich eine PM an das Kernteam erstellen oder dies als eigenständiges Repository einbinden (ich werde ein Skript beifügen, das den Code in den Discourse-Quellcode kopiert und von dort ausführt)?
  • Sind die Ergänzungen zu generic_database vernünftig, oder sollte ich versuchen, diese Klasse in meinem Importskript zu ergänzen, oder einfach meine zusätzlichen Funktionen in meinem eigenen Skript belassen und es nur auf die globale @db verweisen lassen?
2 „Gefällt mir“

Ich würde sagen, erstelle einen PR für Core und wir gehen von dort aus…

2 „Gefällt mir“

Hallo Jay,

Ist dieser Importer öffentlich verfügbar? Wenn ja, wo?

Vielen Dank im Voraus

Viele Grüße Johan

Es gibt ein Yammer-Importskript in script/import_scripts/yammer.rb.

3 „Gefällt mir“

Danke. Hier also: discourse/script/import_scripts/yammer.rb at main · discourse/discourse · GitHub

2 „Gefällt mir“

Hallo Jay.

Ich dachte, dies sei ein Importer für Yammer.
Aber wenn ich den Code lese, ist das nicht der Fall.
Es sieht so aus, als wäre es ein Importer für Discourse.
Ich bin mit Discourse nicht so vertraut. Können Sie mir etwas über den Importer für Discourse erzählen?

Danke im Voraus

Genau. Diese Seite ist für Discourse, daher bedeutet ein „X-Importer“ so ziemlich immer „ein Importer, um Ihre alte X-Site nach Discourse zu verschieben“.

Wenn Sie eine Yammer-Site haben und eine Discourse-Site haben möchten, kann dies helfen.

4 „Gefällt mir“