UNPKG

image-dataset

Version:

Tool to build image dataset: collect, classify, review

62 lines (61 loc) 2.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.unclassifyDir = unclassifyDir; exports.restoreUnclassified = restoreUnclassified; exports.main = main; const fs_1 = require("fs"); const path_1 = require("path"); const fs_2 = require("@beenotung/tslib/fs"); const progress_cli_1 = require("@beenotung/tslib/progress-cli"); const better_sqlite3_proxy_1 = require("better-sqlite3-proxy"); const proxy_1 = require("./proxy"); const config_1 = require("./config"); function unclassifyDir(dir) { console.log('unclassifyDir:', [dir]); let filenames = (0, fs_2.getDirFilenamesSync)(dir); for (let filename of filenames) { let srcFile = (0, path_1.join)(dir, filename); let destFile = (0, path_1.join)(config_1.config.unclassifiedRootDir, filename); (0, fs_1.renameSync)(srcFile, destFile); } } function restoreUnclassified() { console.log('restored unclassified images to downloaded directory...'); let cli = new progress_cli_1.ProgressCli(); let filenames = (0, fs_2.getDirFilenamesSync)(config_1.config.unclassifiedRootDir); let unknownCount = 0; let restoredCount = 0; for (let keyword of proxy_1.proxy.keyword) { let dir = (0, path_1.join)(config_1.config.downloadedRootDir, keyword.keyword); (0, fs_1.mkdirSync)(dir, { recursive: true }); } for (let filename of filenames) { let srcFile = (0, path_1.join)(config_1.config.unclassifiedRootDir, filename); let image = (0, better_sqlite3_proxy_1.find)(proxy_1.proxy.image, { filename }); let keyword = image?.keyword?.keyword; if (!keyword) { unknownCount++; cli.update(`restored: ${restoredCount}, unknown: ${unknownCount} ...`); continue; } let destFile = (0, path_1.join)(config_1.config.downloadedRootDir, keyword, filename); (0, fs_1.renameSync)(srcFile, destFile); restoredCount++; cli.update(`restored: ${restoredCount}, unknown: ${unknownCount} ...`); } cli.update(`restored: ${restoredCount}, unknown: ${unknownCount}`); cli.nextLine(); console.log('done.'); return { restoredCount, unknownCount }; } function main() { (0, fs_1.mkdirSync)(config_1.config.unclassifiedRootDir, { recursive: true }); (0, fs_1.mkdirSync)(config_1.config.classifiedRootDir, { recursive: true }); let classNames = (0, fs_2.getDirFilenamesSync)(config_1.config.classifiedRootDir); for (let className of classNames) { unclassifyDir((0, path_1.join)(config_1.config.classifiedRootDir, className)); } } if (process.argv[1] == __filename) { main(); }