From c533d2c1d579906924237e41b6d71e1601deecae Mon Sep 17 00:00:00 2001 From: davidpkj Date: Tue, 23 Apr 2024 21:45:37 +0200 Subject: mega commit: ics, readme updates, easier usage --- src/pdf.js | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 src/pdf.js (limited to 'src/pdf.js') diff --git a/src/pdf.js b/src/pdf.js new file mode 100644 index 0000000..a943781 --- /dev/null +++ b/src/pdf.js @@ -0,0 +1,96 @@ +import * as html_to_pdf from "html-pdf-node" + +import { prepare, gettimefromintervalls } from "./main.js" +import { c, writePDF } from './files.js' + +let date = new Date(); +date = date.toLocaleDateString("de-DE", { + weekday: 'long', + year: 'numeric', + month: 'long', + day: 'numeric', +}); + +let hinweise = "`; + +const options = { + format: 'A4', + landscape: true, + margin: { + top: "0.5cm", + right: "1cm", + bottom: "1cm", + left: "2cm", + }, +}; + +function format() { + let tage_runtimes = prepare() + let timeout = {} + let res = ""; + + // 1h has 4 15 minute intervalls: 08 to 19 means 44 intervalls + for (let i = 0; i < 44; i++) { + let mensa = ""; + + if (11 < i && i < 25) mensa = "mensa1"; + if (25 < i && i < 27) mensa = "mensa2"; + + res += `` + gettimefromintervalls(i) + + for (let day in tage_runtimes) { + if (timeout[day] > 0) { + timeout[day]--; + continue; + } + + let el = tage_runtimes[day][0]; + + if (el.name.includes("STYLECLASS")) { + let styleclass = el.name.split("/")[1].trim().toLowerCase(); + res += ``; + } else { + let name = el.name == "BUFFER" ? "" : `
${el.name}`; + let raum = el.raum == "BUFFER" ? "" : `${el.raum}`; + + res += `${name}${raum}`; + } + + timeout[day] = el.runtime - 1; + tage_runtimes[day].splice(0, 1); + } + + res += "" + } + + return res +} + +function generatePDF() { + let html = ` + ${c.style} +

Persönlicher Stundenplan von ${c.student} für das ${c.semester}. Stand: ${date}.

+ + + + + + + + + + ${format()} +
UhrzeitMontagDienstagMittwochDonnerstagFreitag
+
+ Hinweise: + ${hinweise} + `; + + html_to_pdf.generatePdf({content: html}, options).then(pdfBuffer => {writePDF(pdfBuffer)}); +} + +generatePDF() -- cgit v1.2.3