From 97f0a1efeee531fc0c6fb06a69210dab6b465770 Mon Sep 17 00:00:00 2001 From: lyg <1543117173@qq.com> Date: 星期三, 17 七月 2024 08:42:09 +0800 Subject: [PATCH] 增加isbnlog解析 --- src/parse-isbn-log.mjs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 ++- 2 files changed, 53 insertions(+), 1 deletions(-) diff --git a/package.json b/package.json index cf39113..6407b5b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "book-list": "node src/book-list-download.mjs", "parse-log": "node src/parse-log.mjs", "trans": "node src/trans.mjs", - "book-isbn": "node src/book-isbn-search.mjs" + "book-isbn": "node src/book-isbn-search.mjs", + "parse-isbn-log": "node src/parse-isbn-log.mjs" }, "devDependencies": {}, "dependencies": { diff --git a/src/parse-isbn-log.mjs b/src/parse-isbn-log.mjs new file mode 100644 index 0000000..eb159a4 --- /dev/null +++ b/src/parse-isbn-log.mjs @@ -0,0 +1,51 @@ +import * as fs from 'fs'; +import xlsx from "node-xlsx"; + +const books = []; + +function main() { + // 鑾峰彇鎵�鏈夋棩蹇楁枃浠� + const logFiles = fs.readdirSync('./book-isbn-logs', { withFileTypes: true }); + // 閬嶅巻鏃ュ織鏂囦欢 + for (const file of logFiles) { + // 璇诲彇鏃ュ織鏂囦欢 + const log = fs.readFileSync(`./book-isbn-logs/${file.name}`, 'utf8'); + // 瑙f瀽鏃ュ織鏂囦欢 + const bookLogs = log.split('寮�濮嬩笅杞�'); + for (const bookLog of bookLogs) { + const book = {}; + const lines = bookLog.split('\n'); + // 閬嶅巻鏃ュ織琛� + for (const line of lines) { + // 瑙f瀽鏃ュ織琛� + let reg, group; + reg = /.* ISBN: (.*)$/g; + group = reg.exec(line); + if (group) { + const text = group[1]; + const obj = JSON.stringify(text); + Object.assign(book, obj); + continue; + } + } + + } + } +} + +try { + main(); +} catch (e) { + console.error(e); +} finally { + const EXCEL_FILE = "fiction-noisbn.xlsx"; + const workSheets = xlsx.parse(EXCEL_FILE); + const sheet = workSheets[0]; + for (const book of books) { + const row=sheet.data.find(row => row[0] == book.id); + row[5] = book.isbn; + } + const buffer = xlsx.build([sheet]); + fs.writeFileSync(EXCEL_FILE, buffer, (err) => { }); + console.log("淇濆瓨瀹屾垚: ", EXCEL_FILE); +} \ No newline at end of file -- Gitblit v1.9.1