aboutsummaryrefslogtreecommitdiff
path: root/src/main.js
diff options
context:
space:
mode:
authordavidpkj <davidpenkow1@gmail.com>2024-04-11 19:18:22 +0200
committerdavidpkj <davidpenkow1@gmail.com>2024-04-11 19:18:22 +0200
commite10addbe36bc248b297cc19a943356fa9fd0f955 (patch)
tree111f182e8bff707bf69ef7b488e49f40e2380edb /src/main.js
parentc3072dc119efe0277b943ec8532f7960ff9301d2 (diff)
structure
Diffstat (limited to 'src/main.js')
-rw-r--r--src/main.js229
1 files changed, 229 insertions, 0 deletions
diff --git a/src/main.js b/src/main.js
new file mode 100644
index 0000000..53323f3
--- /dev/null
+++ b/src/main.js
@@ -0,0 +1,229 @@
+import * as fs from "fs"
+import * as html_to_pdf from "html-pdf-node"
+import * as stu from './stunden.js'
+
+var student = "David Penkowoj";
+var semester = "Sommersemester 2024";
+var date = new Date();
+date = date.toLocaleDateString("de-DE", {
+ weekday: 'long',
+ year: 'numeric',
+ month: 'long',
+ day: 'numeric',
+});
+
+let options = {
+ format: 'A4',
+ landscape: true,
+ margin: {
+ top: "0.5cm",
+ right: "1cm",
+ bottom: "1cm",
+ left: "2cm",
+ },
+};
+
+var table = `
+ <tr>
+ <th rowspan="4"> 08:00 </th>
+ <td></td>
+ <td rowspan="2"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td rowspan="6"><div><span>TGI 1 / V</span><span>AM 1</span></div></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td rowspan="6"><div><span>GET 2 / V</span><span>H 1</span></div></td>
+ <td rowspan="6"><div><span>GET 2 / V</span><span>Z 1/2</span></div></td>
+ <td rowspan="6"><div><span>Pho / V</span><span>T 1</span></div></td>
+ </tr>
+ <tr>
+ <td></td>
+ </tr>
+
+ <tr>
+ <th rowspan="4"> 09:00 </th>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <th rowspan="4"> 10:00 </th>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td rowspan="20" class="block"></td>
+ <td rowspan="6"><div><span>FuQ / V</span><span>AM 4</span></div></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <th rowspan="4"> 11:00 </th>
+ <td></td>
+ <td rowspan="4"><div><span>FuQ / Ü</span><span>SI 4 (Minsky)</span></div></td>
+ <td></td>
+ </tr>
+ <tr class="mensa1">
+ <td></td>
+ <td></td>
+ </tr>
+ <tr class="mensa1">
+ <td></td>
+ <td></td>
+ <td rowspan="6"><div><span>GET / Ü</span><span>AM S4</span></div></td>
+ </tr>
+ <tr class="mensa1">
+ <td></td>
+ <td></td>
+ </tr>
+
+ <tr class="mensa1">
+ <th rowspan="4"> 12:00 </th>
+ <td rowspan="4"><div><span>GET 2 / Ü</span><span>AM S4</span></div></td>
+ <td></td>
+ <td rowspan="4"><div><span>Pho / Ü</span><span>AM 1</span></div></td>
+ </tr>
+ <tr class="mensa1">
+ <td></td>
+ </tr>
+ <tr class="mensa1">
+ <td rowspan="6"><div><span>Ana 2 / V</span><span>AM 1</span></div></td>
+ </tr>
+ <tr class="mensa1">
+ </tr>
+
+ <tr class="mensa1">
+ <th rowspan="4"> 13:00 </th>
+ <td rowspan="20" class="block"></td>
+ <td></td>
+ </tr>
+ <tr class="mensa1">
+ <td></td>
+ </tr>
+ <tr class="mensa1">
+ <td></td>
+ </tr>
+ <tr class="mensa1">
+ <td></td>
+ </tr>
+`;
+
+table = stu.main();
+
+var html = `
+<style>
+ * {
+ font-weight: 300;
+ font-family: "Abel", sans-serif;
+ -webkit-print-color-adjust: exact;
+
+ --entries-b: #ccc;
+ --entries-f: #111;
+ --headers-b: #333;
+ --headers-f: #fff;
+
+ --block: #ccc;
+ }
+
+ table {
+ width: 100%;
+ }
+
+ table td, table tr {
+ background: var(--headers-f);
+ height: 4px;
+ }
+
+ table th, table td:not(:empty) {
+ background-color: var(--entries-b);
+ color: var(--entries-f);
+ padding: 0.5em 1em;
+ position: relative
+ }
+
+ table th {
+ background-color: var(--headers-b);
+ color: var(--headers-f);
+ }
+
+ table th.tag {
+ width: 20%;
+ }
+
+ table td {
+ font-size: 12px;
+ }
+
+ table td.block {
+ background-image: repeating-linear-gradient(314deg, var(--block), var(--block) 10px, transparent 10px, transparent 20px);
+ background-size: 99.9999999% 99.9999999%;
+ border: 2px solid var(--block);
+ }
+
+ div {
+ position: absolute;
+ display: flex;
+
+ top: 0.4em;
+ left: 0.4em;
+ width: calc(100% - 0.8em);
+ justify-content: space-between;
+ }
+</style>
+<p>Persönlicher Stundenplan von ${student} für das ${semester}. Letzter Stand: ${date}.</p>
+<table>
+ <tr>
+ <th> Uhrzeit </th>
+ <th class="tag"> Montag </th>
+ <th class="tag"> Dienstag </th>
+ <th class="tag"> Mittwoch </th>
+ <th class="tag"> Donnerstag </th>
+ <th class="tag"> Freitag </th>
+ </tr>
+ ${table}
+</table>
+<br>
+<u> Hinweise: </u>
+<ul>
+ <li>Mensabetrieb: 11:15 - 14:15 Uhr + 00:15 min</li>
+ <li>GET 2 / V am 23.05. & 04.07. im V1</li>
+ <li>GET 2 / Ü am 24.05. im T S2</li>
+ <li>FuQ / V am 24.05. im T S1</li>
+</ul>
+`;
+
+fs.writeFileSync("test.html", html)
+
+html_to_pdf.generatePdf({content: html}, options).then(pdfBuffer => {
+ fs.writeFileSync('test.pdf', pdfBuffer);
+});