// 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'); const piyi = require("pinyin"); // 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 { var temps = ""; var pinyintemp = ""; // console.log(enregistrement._attributes.path, "**", enregistrement.tag._attributes.swac_text); l.hanzi = enregistrement.tag._attributes.swac_text; temps = piyi(l.hanzi, { segment: true // Enable Chinese words eegmentation, fix most heteronym problem. }); // DEBUG // console.log(piyi(l.hanzi)); temps.forEach(function(temp){ pinyintemp = pinyintemp + temp; }) // DEBUG // console.log(pinyintemp); l.pinyin = pinyintemp; 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();