// librairie de gestion des répertoires et fichiers const fs = require("fs"); const path = require("path"); // librairie de gestion des arguments de la ligne de commande var argv = require("optimist").argv; // librairie de traitement du pinyin const pinyinizer = require('pinyinizer'); // librairie de gestion du hanzi const opencc = require('node-opencc'); // données de stockage var fichierJson = "shtooka-table.json"; // en entrée, on donne le nom du fichier à traiter sans le répertoire var repertoireInitial = "./"; var argument = argv._[0]; fichierDonnées = path.join(repertoireInitial,argument); // DEBUG console.log("fichier données en entrée: ",fichierDonnées); // utilitaires var tab = "\t"; var endLine = "\n"; // Variable fichier du fichier json en sortie fichierJson = path.join(repertoireInitial, argument + ".json"); // DEBUG console.log("fichier données en sortie: ",fichierJson); var donnéesbrutes = fs.readFileSync(fichierDonnées); var données = JSON.parse(donnéesbrutes); // DEBUG //console.log("Locuteur", données.index.group._attributes.swac_speak_name); var locuteur = données.index.group._attributes.swac_speak_name; //DEBUG console.log("locuteur: ", locuteur); var enregistrements = données.index.group.file; // DEBUG //console.log(enregistrements); l = { "hanzi": "", "pinyin": "", "sound" : "", "locuteur": "" }; // création du nouveau fichier json var json = fs.createWriteStream(fichierJson); json.write('{"shtooka":['); enregistrements.forEach(function(enregistrement) { try { // console.log(enregistrement._attributes.path, "**", enregistrement.tag._attributes.swac_text); l.hanzi = enregistrement.tag._attributes.swac_text; l.pinyin = enregistrement.tag._attributes.swac_pron_phon; l.sound = enregistrement._attributes.path; l.locuteur = locuteur; json.write(JSON.stringify(l) + ","); // DEBUG // console.log(l); } catch (err) { console.log(err); } }); // écriture fin de fichier, et fermeture fichier json json.write('{},]}'); json.end();