forked from Star0112/NFT-Generator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
scan.js
59 lines (46 loc) · 1.3 KB
/
scan.js
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
const fs = require('fs');
const path = require('path');
const { readdirSync } = require('fs')
const extension = 'png';
const DIR_PATH_TO_READ = './traits'
const getDirectories = () =>
readdirSync(DIR_PATH_TO_READ, { withFileTypes: true })
.filter(dirent => dirent.isDirectory())
.map(dirent => dirent.name)
const getFiles = (path) =>
readdirSync(path, { withFileTypes: true })
.filter(dirent => !dirent.isDirectory())
.map(dirent => dirent.name)
const orders = [
"Type",
"Background",
"Body",
"Mouth",
"Clothes",
"Eyes",
"Eyewear",
"Cap",
"Accessories"
];
async function main() {
let result = {};
const directories = await getDirectories();
for (let i = 0; i < directories.length; ++i) {
const files = await getFiles(path.join(DIR_PATH_TO_READ, directories[i]));
const traits = [];
for (let j = 0; j < files.length; ++j) {
const fileName = String(files[j]).slice(0, files[j].length - 4);
traits.push({
name: fileName.split("#")[0],
count: parseInt(fileName.split("#")[1])
});
}
result[directories[i]] = traits;
}
let finalResult = {};
for (let i = 0; i < orders.length; ++i) {
finalResult[orders[i]] = result[orders[i]];
}
await fs.writeFileSync(`./traits_draft.json`, JSON.stringify(finalResult));
}
main();