Para criar melhor um importador do Yammer pm

Criei um importador do yammer para alguém e eles gostariam que ele estivesse publicamente disponível. (Olá @gerhard, acho que este está ao seu alcance.) Não consigo entender a popularidade do yammer e/ou se é algo que em breve terá muitas pessoas clamando por uma nova plataforma ou se a maioria dessas pessoas apenas espera perder seus dados quando saem da plataforma.

A exportação do yammer é um monte de arquivos CSV, então o script de importação usa script/import_scripts/base/generic_database.rb. Ele inclui a importação de MPs, o que exigiu a adição de algumas tabelas ao generic_database.rb. Pensei que faria mais sentido adicionar código separado para MPs do que tentar forçar o código existente para lidar com eles e arriscar quebrá-lo para os outros importadores que o utilizam (zendesk, zendesk_api e answerbase). Além disso, os anexos são tratados de forma diferente do que devem ser nos scripts que usam generic_database.rb, então minhas tabelas de MP não gerenciam uploads da maneira que os outros fazem (o que eu não consegui entender completamente). Também adicionei uma tabela de upload em vez de usar topic_upload e post_upload como o importador genérico usa.

    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

O código atual processa uploads quando vê referências a eles em raw. Ele também substitui referências a usuários por referências @username do discourse. Ele também lida com alguns opengraphobject bizarros e os usa, se existirem, para gerar títulos de tópicos (que estão faltando na maioria dos tópicos no dump para o qual escrevi isso).

Perguntas:

  • isso é muito superficial para poder responder a essas perguntas?
  • devo criar um MP para o núcleo, ou apenas incluí-lo como um repositório independente (incluirei um script que copiará o código para a árvore de origem do discourse e o executará a partir daí)
  • as adições a generic_database parecem razoáveis ou devo me esforçar para adicionar a essa classe no meu script de importação ou apenas incluir minhas funções adicionais no meu próprio script e fazer com que ele apenas se refira ao @db global?
2 curtidas

Eu diria, crie um PR para o core e seguimos a partir daí…

2 curtidas

Olá Jay,

Esse importador está disponível publicamente? Se sim, onde?

Obrigado desde já.

Atenciosamente, Johan

Há um script de importação do Yammer em script/import_scripts/yammer.rb

3 curtidas

Thx. Então aqui: discourse/script/import_scripts/yammer.rb at main · discourse/discourse · GitHub

2 curtidas

Olá Jay.

Pensei que este fosse um importador para o Yammer.
Mas se eu ler o código, não é o caso.
Parece que é um importador para o Discourse.
Não estou muito familiarizado com o Discourse. Você pode me dizer algo sobre o importador para o Discourse.

Obrigado desde já.

Certo. Este site é para o Discourse, então um “importador X” quase sempre significa “um importador para migrar seu antigo site X para o Discourse”.

Se você tem um site Yammer e quer ter um site Discourse, isso pode ajudar.

4 curtidas