From f36244a3e673012d0f1e758c73365b055f63c3b5 Mon Sep 17 00:00:00 2001 From: YourFriendlyNeighborhoodDealer Date: Mon, 25 Feb 2019 09:28:55 +0100 Subject: [PATCH] merger.js fixes --- merger.js | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/merger.js b/merger.js index cbf1984..0802508 100755 --- a/merger.js +++ b/merger.js @@ -140,15 +140,30 @@ function Main() { console.log(params); var dbs = []; - for (var i = 0; i < params.length; i++) - dbs.push(ReadData(utils.ReadFile(params[i])).result); + for (var i = 0; i < params.length; i++) { + console.log(params[i] + ": "); + try { + dbs.push(ParseJSONData(utils.ReadFile(params[i]))); + console.log("JSON data added"); + } catch (e) { + console.log(e); + console.log("Trying with old format..."); + dbs.push(ReadData(utils.ReadFile(params[i])).result); + } + console.log("---------------------------------"); + } + console.log("Parsed data count: " + dbs.length); + console.log("---------------------------------"); + + console.log("Merging databases..."); var db = MergeDatabases(dbs); + console.log("Removing duplicates..."); var r = RemoveDuplicates(db); for (var i = 0; i < r.length; i++) { - console.log(r.Subjects[i].Name + ": " + r.Subjects[i].length + " darab kérdés."); + console.log(i + ": " + r.Subjects[i].Name + ": " + r.Subjects[i].length + " db"); } utils.WriteFile(JSON.stringify(r), "newData"); @@ -159,6 +174,27 @@ function GetParams() { return process.argv.splice(2); } +function ParseJSONData(data) { + var d = JSON.parse(data); + var r = new QuestionDB(); + var rt = []; + + for (var i = 0; i < d.Subjects.length; i++) { + let s = new Subject(d.Subjects[i].Name); + var j = 0; + for (j = 0; j < d.Subjects[i].Questions.length; j++) { + var currQ = d.Subjects[i].Questions[j]; + s.AddQuestion(new Question(currQ.Q, currQ.A, currQ.I)); + } + rt.push({ + name: d.Subjects[i].Name, + count: j + }); + r.AddSubject(s); + } + return r; +} + function MergeDatabases(dbs) { var db = new QuestionDB(); for (var i = 0; i < dbs.length; i++)