Hallo,
ich habe Discourse gerade eingerichtet, möchte aber meine Kommentare von Disqus importieren. Ich habe ein schönes Import-Skript gefunden, aber es scheint bei mir nicht zu funktionieren.
UPDATE #2: Ok, es scheint, dass ich einige fehlerhafte XML-Daten hatte, daher habe ich nun das gleiche Problem wie hier beschrieben. Das Problem ist, dass Disqus die E-Mail-Adresse in den XML-Exports nicht mehr enthält und diese in ihrem Dashboard tatsächlich „versteckt“. Vielleicht ist es also nicht möglich, die Kommentare zu importieren, es sei denn, man fügt zusätzlichen Code hinzu, um für die Funktion create_users auch E-Mail-Adressen dynamisch zu generieren.
UPDATE: Eigentlich sollte ich vielleicht einen Schritt zurücktreten. Ohne die Anpassung des Eintrags frozen_string_literal am Anfang des Skripts erhalte ich:
Traceback (most recent call last):
6: from script/import_scripts/disqus.rb:228:in `<main>'
5: from script/import_scripts/disqus.rb:228:in `new'
4: from script/import_scripts/disqus.rb:21:in `initialize'
3: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/nokogiri-1.10.10/lib/nokogiri/xml/sax/parser.rb:104:in `parse_file'
2: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/nokogiri-1.10.10/lib/nokogiri/xml/sax/parser.rb:104:in `parse_with'
1: from script/import_scripts/disqus.rb:176:in `characters'
script/import_scripts/disqus.rb:195:in `record': can't modify frozen String (FrozenError)
Vielleicht sollte dieses Problem also zuerst behoben werden (bevor man sich mit dem unten Beschriebenen beschäftigt)?
root@discourse:/var/www/discourse# su discourse -c "bundle exec ruby script/import_scripts/disqus.rb"
Loading existing groups...
Loading existing users...
Loading existing categories...
Loading existing posts...
Loading existing topics...
importing users...
importing topics...
Updating topic status
Updating bumped_at on topics
Updating last posted at on users
Updating last seen at on users
Updating first_post_created_at...
Updating user post_count...
Updating user topic_count...
Updating topic users
Updating post timings
Updating featured topic users
Updating featured topics in categories
4 / 4 (100.0%) [3222 items/min] n]
Resetting topic counters
Done (00h 00min 00sec)
Ich kenne mich nicht sonderlich gut mit Ruby aus – eigentlich gar nicht –, aber ich weiß genug, um einige Debugging-Ausgaben wie puts "#{id}" hinzuzufügen, um zu prüfen, ob etwas abgerufen wird. Zum Beispiel habe ich die Zeile 190 mit puts "#{target}" oder puts "#{str}" ergänzt, damit ich sehen kann, dass die Datei definitiv gelesen wird.
Ich weiß, dass ein Großteil des Skripts funktioniert, da IMPORT_FILE und IMPORT_CATEGORY korrekt gesetzt wurden.
Habt ihr Ideen, was ich sonst noch tun kann, um das Problem zu diagnostizieren oder zu debuggen?
Vielen Dank! ![]()