1const axios = require('axios');
 2const fs = require('fs');
 3const urlOfLemmas='https://ontake.dev/daily-kanji/assets/datasets/listoflemmas.txt';
 4let currentLemmaIndex = 0;
 5let listOfLemmas = []
 6let starttime;
 7
 8
 9
10axios.get(urlOfLemmas)
11  .then(res => {
12    const headerDate = res.headers && res.headers.date ? res.headers.date : 'no response date';
13    console.log('Status Code:', res.status);
14    console.log('Date in Response header:', headerDate);
15    listOfLemmas = res.data.split("\r\n");
16    console.log(listOfLemmas)
17    starttime=new Date();
18    constructDatabase();
19  })
20  .catch(err => {
21    console.log('Error: ', err.message);
22  });
23
24function constructDatabase(){
25  currentLemma = listOfLemmas[currentLemmaIndex]
26  axios.get('https://jisho.org/api/v1/search/words?keyword='+encodeURI(currentLemma))
27  .then(res => {
28    const headerDate = res.headers && res.headers.date ? res.headers.date : 'no response date';
29    fs.writeFile("./jisho-dataset/"+currentLemma, JSON.stringify(res.data), function(err) {
30      if(err) {
31          return console.log(err);
32      }
33      console.log(currentLemmaIndex+"/"+"20000");
34      console.log(((new Date()-starttime)/1000)/(currentLemmaIndex+1)*(20000-currentLemmaIndex)/60+"min")
35  }); 
36    currentLemmaIndex++;
37    if (currentLemmaIndex != listOfLemmas.length){
38    constructDatabase()
39    }
40  })
41  .catch(err => {
42    console.log('Error: ', err.message);
43    constructDatabase();
44  });
45  }
46