-
Notifications
You must be signed in to change notification settings - Fork 2
/
engine_txt.ts
41 lines (37 loc) · 927 Bytes
/
engine_txt.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import Engine from './engine';
import { Book, Word } from './data';
import inquirer = require('inquirer');
import fs = require('fs');
export default class EngineTxt extends Engine {
constructor() {
super('TXT');
}
async fetchBookNames(): Promise<Array<Book>> {
let { f } = await inquirer.prompt([
{
type: 'input',
name: 'f',
message: '单词本位置',
},
]);
if (!fs.existsSync(f)) {
throw new Error('文件不存在');
}
let b = new Book();
b.name = f;
return [b];
}
async fetchBookWords(book: Book): Promise<boolean> {
let lines = fs.readFileSync(book.name).toString().split('\n');
for (let l of lines) {
let ls = l.split(' ');
if (ls.length > 0 && ls[0].length > 0) {
book.addWord(ls[0]);
}
}
return true;
}
async lookup(word): Promise<Word> {
return Promise.resolve(undefined);
}
}