chore: add start.sh script
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
function shuffleArray(array) {
|
||||
for (let i = array.length - 1; i > 0; i--) {
|
||||
const j = Math.floor(Math.random() * (i + 1));
|
||||
[array[i], array[j]] = [array[j], array[i]];
|
||||
}
|
||||
}
|
||||
|
||||
function processFile(filePath) {
|
||||
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
let qCount = 0;
|
||||
let ansCounts = {0: 0, 1: 0, 2: 0, 3: 0};
|
||||
|
||||
const processQuestion = (q) => {
|
||||
const correctOpt = q.opts[q.ans];
|
||||
shuffleArray(q.opts);
|
||||
q.ans = q.opts.indexOf(correctOpt);
|
||||
ansCounts[q.ans] = (ansCounts[q.ans] || 0) + 1;
|
||||
qCount++;
|
||||
};
|
||||
|
||||
if (data.sets) {
|
||||
data.sets.forEach(set => set.questions.forEach(processQuestion));
|
||||
} else if (data.questions) {
|
||||
data.questions.forEach(processQuestion);
|
||||
}
|
||||
|
||||
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', 'utf8');
|
||||
console.log(`Processed ${path.basename(filePath)}: ${qCount} questions. Distribution:`, ansCounts);
|
||||
}
|
||||
|
||||
const files = [
|
||||
'questions.json',
|
||||
'scripts/data/set-dart-dev.json',
|
||||
'scripts/data/set-flutter-basic.json',
|
||||
'scripts/data/set-flutter-dev.json'
|
||||
];
|
||||
|
||||
files.forEach(f => processFile(path.join(__dirname, '..', f)));
|
||||
Reference in New Issue
Block a user