La solution se trouve littéralement dans le message juste au-dessus du vôtre. ![]()
Nous devrions corriger le script. Peut-être pourriez-vous créer une PR qui résoudrait le problème pour tout le monde ?
La solution se trouve littéralement dans le message juste au-dessus du vôtre. ![]()
Nous devrions corriger le script. Peut-être pourriez-vous créer une PR qui résoudrait le problème pour tout le monde ?
Merci, ça a résolu le problème, désolé pour ça. En pénitence pour mon incapacité à lire, j’ai ouvert Added duplication to name to prevent modification of frozen string exception by adam-skalicky · Pull Request #30325 · discourse/discourse · GitHub pour épargner à quiconque la honte de poser une question stupide.
Ce script d’importation permet-il à Discourse de répliquer le chaînage des e-mails de Mailman 2 d’une quelconque manière (par exemple, en utilisant la petite flèche de Discourse pour signifier « In-Reply-To ») ou est-il purement chronologique (pour chaque fil basé sur Message-ID, In-Reply-To et References) ?
Oui, c’est le cas
Bien. Pas mal de mes e-mails de liste de diffusion n’ont pas les en-têtes In-Reply-To et References qu’ils devraient avoir, ils pourraient donc être importés comme de nouveaux sujets plutôt que comme de simples réponses. De mémoire, le script utilise ces en-têtes ou les en-têtes de sujet (pas les deux).
Je pense que j’ai déjà posé cette question dans le passé, mais existe-t-il des moyens non manuels d’ajouter ces en-têtes au fichier MBOX et/ou de réorganiser autrement les e-mails avant ou après l’importation dans Discourse ?
Il est maintenant possible de fusionner des sujets et de conserver l’ordre chronologique, donc c’est peut-être la solution. Ils manqueraient juste la petite flèche Discourse pour indiquer à qui le message était une réponse.
Le script d’importation mbox comporte deux phases. La première est l’indexation et génère une base de données SQLite. Vous pouvez soit modifier les données dans SQLite avant l’importation, soit modifier le script Ruby.
Toute la magie du tri/regroupement par sujet ou en-têtes se produit ici :
Vous pouvez ajouter votre propre logique de regroupement si vous savez comment vous voulez regrouper les e-mails.
Il faudra un certain temps avant même d’envisager quelque chose d’aussi complexe !
Sur https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/view/head:/Mailman/Archiver/pipermail.py#L669, Pipermail de Mailman 2 semble rechercher les éléments suivants par ordre de préférence :
Cette combinaison d’approches semble idéale. Dans le troisième cas, il pourrait être judicieux que Discourse n’utilise pas la flèche « en réponse à ».
D’après mes souvenirs, Hyperkitty de Mailman 3 ne prenait pas du tout en compte le sujet, ce qui était moins bien.
Pardonnez-moi de m’immiscer avec une question peut-être stupide, mais je n’ai pas trouvé de réponse claire ici. Je voudrais savoir si le processus d’importation crée un nouvel utilisateur Discourse pour chaque e-mail, avec déduplication bien sûr, ou s’ils sont tous importés comme un seul utilisateur système. J’ai une liste de diffusion avec 20 ans de publications et elle est assez volumineuse et difficile à expérimenter. Et aussi, qu’en est-il des réponses dans la liste d’origine ? Sont-elles intégrées dans un fil de discussion ?
Oui, les utilisateurs sont créés, un par adresse e-mail.
Bonjour à tous,
J’essaie de migrer depuis Google Groups. Lorsque j’essaie de télécharger les messages en utilisant cette commande script/import_scripts/google_groups.rb -g <nom_du_groupe> -d <nom_du_domaine> j’obtiens immédiatement une trace de pile :
Fetching gem metadata from https://rubygems.org/.......
Resolving dependencies...
/usr/local/lib/ruby/gems/3.4.0/gems/childprocess-4.1.0/lib/childprocess.rb:6: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.
You can add logger to your Gemfile or gemspec to silence this warning.
/usr/local/lib/ruby/gems/3.4.0/gems/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/zipper.rb:23: warning: base64 was loaded from the standard library, but is not part of the default gems starting from Ruby 3.4.0.
You can add base64 to your Gemfile or gemspec to silence this warning.
/usr/local/lib/ruby/gems/3.4.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:71:in 'block (2 levels) in Bundler::Runtime#require': There was an error while trying to load the gem 'webdrivers'. (Bundler::GemRequireError)
Gem Load Error is: cannot load such file -- base64
Je peux ajouter un gem "base64" au script google_groups.rb pour avancer un peu, mais ensuite je vois ceci :
Logging in...
/usr/local/lib/ruby/gems/3.4.0/gems/rubyzip-3.2.2/lib/zip/entry.rb:757:in 'File#initialize': No such file or directory @ rb_sysopen - /root/.webdrivers/root/.webdrivers/chromedriver (Errno::ENOENT)
Des suggestions sur la façon de procéder pour télécharger les messages ?
Edit : y a-t-il peut-être une version plus récente de ce script ? Les groupes n’utilisent plus /forum dans leur URL, c’est maintenant la notation /g/ et d’autres changements.