var fs = require('fs')
var readline = require('readline')
var Stream = require('stream')

// librairie de traitement du pinyin
const pinyinizer = require('pinyinizer')

// utilitaires
var tab = '\t'
var endLine = '\n'

var ligne = {
  hanzi: '',
  traditional: '',
  pinyin: '',
  translations: []
}

function resetLigne () {
  ligne.hanzi = ''
  ligne.traditional = ''
  ligne.pinyin = ''
  ligne.translations = []
}

function readFileLineByLine (inputFile, outputFile) {
  var instream = fs.createReadStream(inputFile)
  var outstream = new Stream()
  outstream.readable = true
  outstream.writable = true

  var rl = readline.createInterface({
    input: instream,
    output: outstream,
    terminal: false
  })

  rl.on('line', function (line) {
    if (line[0] != '#') {
      if (line.length > 2) {
        chinois = line.split(' ', 2)
        // console.log(chinois[0], " ## ", chinois[1]);
        ligne.traditional = chinois[0]
        ligne.hanzi = chinois[1]
        i = line.search(/\[/)
        j = line.search(/\]/)
        phonetic = line.substr(i + 1, j - i - 1)
        // traitement des champs pinyin avec des chiffres
        phonetic = phonetic.toLowerCase()
        // on va tester ça ...
        try {
          var sauve = phonetic
          phonetic = pinyinizer.pinyinize(phonetic)
          phonetic = phonetic.replace(/5/g, '')
        } catch (err) {
          console.log('Erreur: ' + pinyin)
          phonetic = sauve
        }
        ligne.pinyin = phonetic
        // console.log(phonetic);
        ligne.translations = line.split(/\//g)
        var l = ligne.translations.length
        ligne.translations.pop()
        ligne.translations.shift()
        var temp = ligne.translations.join(' / ')
        // console.log(l);
        // console.log(ligne.translations);
        // console.log(JSON.stringify(ligne));
        fs.appendFileSync(outputFile, JSON.stringify(ligne) + ',\n')
        resetLigne()
      }
    }
  })
  rl.on('end', function () {
    console.log('EOF')
  })
}

readFileLineByLine('chdict.u8', 'chdict.json')
