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