|
|
|
module.exports = yargs => {
|
|
|
|
|
|
|
|
const colors = require('colors');
|
|
|
|
const boxen = require('boxen');
|
|
|
|
const table = require('cli-table');
|
|
|
|
const ora = require('ora');
|
|
|
|
const mksec = require(__dirname+'/../index.js');
|
|
|
|
const fy = require(__dirname+'/../fy.js');
|
|
|
|
const fs = require('fs');
|
|
|
|
|
|
|
|
yargs = yargs
|
|
|
|
.command('g', "mksec g".green + " Generate all sentence by word..", yargs => yargs, async argv => {
|
|
|
|
argv._[1] = argv._[1].toLowerCase();
|
|
|
|
let ban = ora(`Searching ${argv._[1]}...`).start();
|
|
|
|
let arr = (await mksec({word: argv._[1]}));
|
|
|
|
for(let i = 0; i < arr.length; i ++){
|
|
|
|
let pos = arr[i].indexOf(argv._[1]);
|
|
|
|
|
|
|
|
if(pos != -1){
|
|
|
|
ban.succeed(arr[i].substring(0, pos) + String(argv._[1]).yellow + arr[i].substring(pos + String(argv._[1]).length));
|
|
|
|
ban = new ora(`Searching ${argv._[1]}s...`).start();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ban.succeed('Search finished!! Found '+arr.length+' results!!');
|
|
|
|
|
|
|
|
//let o = arr[Math.floor((Math.random()*arr.length))];
|
|
|
|
|
|
|
|
})
|
|
|
|
.command('o', "mksec o".green + " Generate one sentence by word..", yargs => yargs, async argv => {
|
|
|
|
argv._[1] = argv._[1].toLowerCase();
|
|
|
|
let ban = ora(`Searching ${argv._[1]}...`).start();
|
|
|
|
let arr = (await mksec({word: argv._[1]}));
|
|
|
|
for(let i = 0; i < arr.length; i ++){
|
|
|
|
let pos = arr[i].indexOf(argv._[1]);
|
|
|
|
|
|
|
|
if(pos != -1){
|
|
|
|
arr[i] = arr[i].substring(0, pos) + String(argv._[1]).yellow + arr[i].substring(pos + String(argv._[1]).length);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ban.succeed(arr[Math.floor((Math.random()*arr.length))]);
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.command('f', "mksec f".green + " Generate sentences file by word list file..", yargs => yargs, async argv => {
|
|
|
|
|
|
|
|
let s = fs.readFileSync(argv._[1], 'utf-8');
|
|
|
|
let o = '';
|
|
|
|
let wArr = s.match(/\b[a-zA-Z]+\b/g);
|
|
|
|
|
|
|
|
for(let index = 0; index < wArr.length; index ++){
|
|
|
|
wArr[index] = wArr[index].toLowerCase();
|
|
|
|
ban = new ora(`Searching ${wArr[index]}...`).start();
|
|
|
|
try{
|
|
|
|
let arr = (await mksec({word: wArr[index]}));
|
|
|
|
let sec = arr[Math.floor((Math.random()*arr.length))];
|
|
|
|
|
|
|
|
sec = sec.replace(/’/g, "'");
|
|
|
|
sec = sec.replace(/“/g, '"');
|
|
|
|
sec = sec.replace(/”/g, '"');
|
|
|
|
sec = sec.replace(/\"/g, '""');
|
|
|
|
|
|
|
|
let res = wArr[index] + ',"' + sec + '"';
|
|
|
|
|
|
|
|
o += res + '\n';
|
|
|
|
|
|
|
|
fs.writeFileSync(argv._[1]+'.sentences.csv', o);
|
|
|
|
ban.info('Found '+wArr[index]);
|
|
|
|
}catch(e){
|
|
|
|
ban.fail('Not found '+wArr[index]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ban.succeed('Generated '+wArr.length+' sentences in '+argv._[1]+'.sentences.csv'+'!!');
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.command('r', "mksec r".green + " Check word list file in random order..", yargs => yargs, async argv => {
|
|
|
|
|
|
|
|
let s = fs.readFileSync(argv._[1], 'utf-8');
|
|
|
|
let wArr = s.match(/\b[a-zA-Z]+\b/g);
|
|
|
|
wArr = wArr.sort(()=>Math.random() - 0.5);
|
|
|
|
let count = 0;
|
|
|
|
for(let index = 0; index < wArr.length; index ++){
|
|
|
|
wArr[index] = wArr[index].toLowerCase();
|
|
|
|
ban = new ora(`Searching ${wArr[index]}...`).start();
|
|
|
|
try{
|
|
|
|
let arr = (await mksec({word: wArr[index]}));
|
|
|
|
|
|
|
|
count++;
|
|
|
|
ban.info('Found '+wArr[index]);
|
|
|
|
}catch(e){
|
|
|
|
ban.fail('Not found '+wArr[index]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ban.succeed('Found '+wArr.length+' words, verified '+ count +' words.');
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.command('rf', "mksec rf".green + " Check word list file with translation in random order..", yargs => yargs, async argv => {
|
|
|
|
|
|
|
|
let s = fs.readFileSync(argv._[1], 'utf-8');
|
|
|
|
let wArr = s.match(/\b[a-zA-Z]+\b/g);
|
|
|
|
wArr = wArr.sort(()=>Math.random() - 0.5);
|
|
|
|
let count = 0;
|
|
|
|
for(let index = 0; index < wArr.length; index ++){
|
|
|
|
wArr[index] = wArr[index].toLowerCase();
|
|
|
|
ban = new ora(`Searching ${wArr[index]}...`).start();
|
|
|
|
try{
|
|
|
|
let arr = (await mksec({word: wArr[index]}));
|
|
|
|
let fys = (await fy({word: wArr[index], type: 'word'}));
|
|
|
|
count++;
|
|
|
|
let sp = '';
|
|
|
|
for(let i = 0; i < 40-wArr[index].length; i++){
|
|
|
|
sp += ' ';
|
|
|
|
}
|
|
|
|
ban.info('Found '+wArr[index] + sp + fys);
|
|
|
|
}catch(e){
|
|
|
|
ban.fail('Not found '+wArr[index]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ban.succeed('Found '+wArr.length+' words, verified '+ count +' words.');
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
.command('rg', "mksec rg".green + " Check GRE word list file with translation in random order..", yargs => yargs, async argv => {
|
|
|
|
|
|
|
|
let s = fs.readFileSync(argv._[1], 'utf-8');
|
|
|
|
let wArr = s.match(/[^\r\n]+/g);
|
|
|
|
s = fs.readFileSync(argv._[2], 'utf-8');
|
|
|
|
let fArr = s.match(/[^\r\n]+/g);
|
|
|
|
let cntArr = [];
|
|
|
|
for(let i = 0; i < wArr.length; i++){
|
|
|
|
cntArr.push(i);
|
|
|
|
}
|
|
|
|
cntArr = cntArr.sort(()=>Math.random() - 0.5);
|
|
|
|
let count = 0;
|
|
|
|
for(let index = 0; index < cntArr.length; index ++){
|
|
|
|
wArr[cntArr[index]] = wArr[cntArr[index]].toLowerCase();
|
|
|
|
ban = new ora(`Searching ${wArr[cntArr[index]]}...`).start();
|
|
|
|
try{
|
|
|
|
let arr = (await mksec({word: wArr[cntArr[index]]}));
|
|
|
|
let fys = fArr[cntArr[index]];
|
|
|
|
count++;
|
|
|
|
let sp = '';
|
|
|
|
for(let i = 0; i < 40-wArr[cntArr[index]].length; i++){
|
|
|
|
sp += ' ';
|
|
|
|
}
|
|
|
|
ban.info('Found '+wArr[cntArr[index]] + sp + fys);
|
|
|
|
}catch(e){
|
|
|
|
ban.fail('Not found '+wArr[cntArr[index]]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ban.succeed('Found '+wArr.length+' words, verified '+ count +' words.');
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return yargs;
|
|
|
|
}
|