47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
//import { QuizData } from "./database.ts";
|
|
|
|
import { QuizConfig } from "./types.ts";
|
|
|
|
// Class to handle quiz to text file conversion
|
|
export class QuizToTextFile {
|
|
quizData: QuizConfig;
|
|
constructor(quizData: QuizConfig) {
|
|
this.quizData = quizData;
|
|
}
|
|
|
|
generateTextContent() {
|
|
// let content = `QUIZ_ID: ${this.quizData.quiz_id}\n`;
|
|
// content += `QUIZ_NAME: ${this.quizData.quiz_name}\n`;
|
|
// content += `OWNER_ID: ${this.quizData.owner_id}\n\n`;
|
|
let content = "";
|
|
this.quizData.questions.forEach((question, index) => {
|
|
// content += `Q${index + 1}_ID: ${question.id}\n`;
|
|
// content += `Q${index + 1}_LANGUAGE: ${question.language_id}\n`;
|
|
content += `${question.text_1}\n`;
|
|
content += `${question.text_2}\n\n`;
|
|
// content += `Q${index + 1}_ORDER: ${question.order_num}\n\n`;
|
|
});
|
|
|
|
return content;
|
|
}
|
|
|
|
async saveToFile(fileName: string) {
|
|
const content = this.generateTextContent();
|
|
try {
|
|
await Deno.writeTextFile(fileName, content);
|
|
//console.log(`Quiz saved to ${fileName}`);
|
|
} catch (error) {
|
|
//console.error(`Error saving quiz to file: ${error}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Example usage:
|
|
// const quizData = { /* ... */ };
|
|
// const quizToText = new QuizToTextFile(quizData);
|
|
// await quizToText.saveToFile('quiz_translations.txt');
|
|
|
|
// const textToQuiz = new TextToQuizTranslations();
|
|
// const parsedQuizData = await textToQuiz.parseFile('quiz_translations.txt');
|
|
// console.log(parsedQuizData);
|