-
Notifications
You must be signed in to change notification settings - Fork 0
/
read.js
89 lines (75 loc) · 2.95 KB
/
read.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
var fs = require("fs");
console.log("\n *STARTING* \n");
// Get content from file
var contents = fs.readFileSync("nsbquestions.json");
// Define to JSON type
var jsonContent = JSON.parse(contents);
var output = []; // array of all questions
var outputSorted = {}; // array of all questions in object format (for write to file).
var metadata = {};
metadata.vendorNum = {};
for (var i = 0; i <= 1 ; i++) {
var questions = jsonContent["MS"];
var grade = "MS";
if (i == 1) {
questions = jsonContent["HS"];
grade = "HS";
}
console.log(questions);
for (var q in questions) {
// q is 8_16_13, for example.
var questionNum = q.split("_");
questionNum = questionNum[questionNum.length - 1];
var question = questions[q];
question.grade = grade;
//question.setNum = String(question.setNum);
delete question.catDiff;
question.vendorNum = "DOE-" + question.grade;
question.questionNum = questionNum;
output.push(question);
var fileName = question.vendorNum + "-" + question.setNum + "-" + question.packetNum;
if (!outputSorted[fileName]) outputSorted[fileName] = [];
outputSorted[fileName].push(question);
if (!metadata.vendorNum[question.vendorNum])
metadata.vendorNum[question.vendorNum] = {};
if (!metadata.vendorNum[question.vendorNum][question.setNum])
metadata.vendorNum[question.vendorNum][question.setNum] = {};
if (!metadata.vendorNum[question.vendorNum][question.setNum][question.packetNum])
metadata.vendorNum[question.vendorNum][question.setNum][question.packetNum] = {"numQuestions": 0, "fileName": fileName};
metadata.vendorNum[question.vendorNum][question.setNum][question.packetNum].numQuestions++;
}
}
OUTPUT_DIR = "output/"
if (!fs.existsSync(OUTPUT_DIR)){
fs.mkdirSync(OUTPUT_DIR);
}
fs.writeFile("output-pretty.json", JSON.stringify(output, null, 2), function(err) {
if (err) {
return console.log(err);
}
//res.write("Saved");
console.log("Output pretty file was saved!");
});
fs.writeFile("output.json", JSON.stringify(output), function(err) {
if (err) {
return console.log(err);
}
//res.write("Saved");
console.log("Output ugly file was saved!");
});
// full metadata
fs.writeFile(OUTPUT_DIR + "metadata.json", JSON.stringify(metadata, null, 2), function(err) {
if (err) {
return console.log(err);
}
console.log("Metadata was saved!");
});
// individual question files
for (let fileName in outputSorted) {
fs.writeFile(OUTPUT_DIR + fileName + ".json", JSON.stringify(outputSorted[fileName], null, 2), function(err) {
if (err) {
return console.log(err);
}
console.log("File " + fileName + ".json was saved!");
});
}