diff options
-rw-r--r-- | server.js | 184 | ||||
-rw-r--r-- | shifts.txt | 133 |
2 files changed, 192 insertions, 125 deletions
@@ -2,21 +2,83 @@ const http = require("http"); const fs = require("fs"); const url = require("url"); -mainPage = "./index.html"; -allowedPaths = [mainPage, "./index.css"]; -path404 = "./404/index.html"; +let maxshifts = Infinity; -shifts = [ - //1: - "Ruokailuvuoro 1", - //2: - "Ruokailuvuoro 2", - //3: - "Ruokailuvuoro 3" -]; +function init() +{ + const mainPage = "./index.html"; + const allowedPaths = [mainPage, "./index.css"]; + const path404 = "./404/index.html"; + + const weekdays = [undefined, "MAANANTAI", "TIISTAI", "KESKIVIIKKO", "TORSTAI", "PERJANTAI", undefined]; + + shifts = [ + //1: + "Ruokailuvuoro 1", + //2: + "Ruokailuvuoro 2", + //3: + "Ruokailuvuoro 3" + ]; + + /*openFile("shifts.txt").then(data => + { + let shifts = 0; + let i = 0; + do + { + i = getToLineStartingWith(data.toString("utf-8"), i + 1, "RUOKAILUVUORO"); + shifts++; + } while (i !== -1) + maxshifts = shifts / 5; // 5 = number of days + });*/ + function server(req, res) + { + let q = url.parse(req.url, true); //true? + let path = "." + q.pathname; + if (path == "./") + path = "./index.html"; + + console.log(path); + if (!allowedPaths.includes(path)) + path = path404; -http.createServer((req, res) => + switch(path) + { + case mainPage: + buildMain(q.query, path, maxshifts).then( + (data) => + { + res.write(data); + res.end(); + } + ); + break; + case path404: + build404(path, q.pathname).then( + data => + { + res.write(data); + res.end(); + } + ); + break; + default: + buildDefault(path).then( + data => + { + res.write(data); + res.end(); + } + ); + } + } + + http.createServer(server).listen(8080); +} + +function server(req, res) { let q = url.parse(req.url, true); //true? let path = "." + q.pathname; @@ -31,7 +93,7 @@ http.createServer((req, res) => switch(path) { case mainPage: - buildMain(q.query, path).then( + buildMain(q.query, path, maxshifts).then( (data) => { res.write(data); @@ -57,7 +119,7 @@ http.createServer((req, res) => } ); } -}).listen(8080) +} function openFile(path) { @@ -73,7 +135,7 @@ function openFile(path) }); } -function buildMain(query, path) +function buildMain(query, path, maxshifts) { return new Promise((resolve, reject) => { @@ -83,7 +145,7 @@ function buildMain(query, path) data_string = data.toString("utf-8"); if (query.index === undefined) resolve(data_string.replace("\\(result\\)", "")); - resolve(data_string.replace("\\(result\\)", shifts[parseshift(query) - 1])); + resolve(data_string.replace("\\(result\\)", shifts[parseshift(query, maxshifts) - 1])); } ); }); @@ -117,18 +179,57 @@ function buildDefault(path) }); } -function parseshift(index) +function parseshift(index, maxshifts) { - //get index type - is_teacher = isNaN(parseInt(index[index.length - 1])); - is_course = !is_teacher; + /*//get index type + let is_teacher = isNaN(parseInt(index[index.length - 1])); + let is_course = !is_teacher; + + //get day of week + const d = new Date(); + let day = weekdays[d.getDay()]; + if (day === undefined) + day = weekdays[1]; + //read shiftfile openFile("shifts.txt").then( - data => {} + data => + { + data = data.toString("utf-8"); + // get to the position of the day + let i = getToLineStartingWith(data, 0, day); + if (i === -1) + return -1; + + // iterate through shifts + let shift = ""; + let shifts = 0; + while (shifts < maxshifts) // infinite loop if maxshift is infinity, FIX! + { + i = getToLineStartingWith(data, i, "RUOKAILUVUORO"); + let nextLineStart = getNextChar(data, i, "\n"); + shift = data.substring(i, nextLineStart); + + // Get to the line with the teachers & courses + i = nextLineStart; + while (!((nextLineStart - i) > 2)) + { + i = nextLineStart; + nextLineStart = getNextChar(data, i + 1, "\n"); + } + i++; + // Find whether the course is in the line or not + let parsed_line = data.substring(i + 1, nextLineStart).replaceAll(",", ""); + if (findExpression(parsed_line, index, i) !== -1) + return shift; + shifts++; + } + return -1; + } ); //iterate over lines, search for day //iterate shifts for course / teacher - //return the shift number + //return the shift number*/ return 1; } @@ -141,3 +242,42 @@ function getCharAmount(s, c) } return n; } + +function getNextChar(s, i, c) +{ + for (; i < s.length; i++) + { + if (s[i] === c) + return i; + } + return -1; +} + +function getToLineStartingWith(s, start, ss) +{ + let i = start; + do + { + if (s.substr(i, ss.length) === ss) + break; + i = getNextChar(s, i, "\n") + 1; + } while(i !== -1) + + if (i === -1) + return -1; + return i; + +} + +function findExpression(data, expr, start = 0) +{ + if (Number.isInteger(start) && (start < 0)) + throw new TypeError("Start must be a positive integer!"); + while ((data.substr(start, expr.length) !== expr) && (start + expr.length < data.length)) + start++; + if (data.substr(start, expr.length) !== expr) + return -1; + return start; +} + +init(); @@ -1,38 +1,22 @@ -RUOKAILUVUOROT JA OPPITUNTI 4.10.2021 ALKAEN - - - MAANANTAISIN -RUOKAILUVUORO I klo 10.50 – 11.15, välitunti klo 11.15 - 11.40, oppitunti klo 11.40 – 13.00 +RUOKAILUVUORO I: ruokailu klo 10.50 – 11.30, oppitunti klo 11.40 – 13.00 -TE11 JUHO, GE21 PAHO, EA112 ANLE, MA72 JUMA ja KAHDEN TUTKINNON OPINTOJEN 1. VUOSITASON RYHMÄT +TE11 JUHO, GE21 PAHO, EA112 ANLE, MA72 JUMA, MA141 SAKO, ÄI82 MIAU, ÄI63 TUTA ja KAHDEN TUTKINNON OPINNOT 1., 2. ja 3. VUOSITASON RYHMÄT -RUOKAILUVUORO II klo 11.15 – 11.40, välitunti klo 10.50 - 11.15, oppitunti klo 11.40 – 13.00 +RUOKAILUVUORO II: ruokailu klo 11.40 – 12.20, oppitunti klo 11.00 – 11.40 ja klo 12.20 – 13.00 -MA141 SAKO, ÄI82 MIAU, ÄI63 TUTA, GE42 MAME, KE82 SALE, PS53 SATU ja KAHDEN TUTKINNON OPINNOT 2. ja 3. VUOSITASON RYHMÄT +GE42 MAME, KE82 SALE, PS53 SATU, MB42 SAHE, YH25 JAJU, RB46 ANSU, MB83 MATI, EA48 VIHU, FD41 MASI ja FI31 TEKE -RUOKAILUVUORO III klo 11.40 – 12.05, välitunti klo 10.50 - 11.00 ja klo 12.05 - 12.20, oppitunti klo 11.00 – 11.40 ja 12.20 - 13.00 +RUOKAILUVUORO III: ruokailu klo 12.20 – 13.00, oppitunti klo 11.00 – 12.20 -MB42 SAHE, YH25 JAJU, RB46 ANSU ja MB83 MATI - - - -RUOKAILUVUORO IV klo 12.05 – 12.30, välitunti klo 10.50 - 11.00 ja klo 12.50 - 13.20, oppitunti klo 11.00 – 12.00 ja 12.30 - 12.50 - -BI14 LAMI, BI12 LAMI, ENA27 SABE, RB37 KAHU, EA48 VIHU, FD41 MASI ja FI31 KAMA - - - -RUOKAILUVUORO V klo 12.25 – 12.50, välitunti klo 10.50 - 11.05 ja klo 12.50 - 13.20, oppitunti klo 11.05 – 12.25 - -AT12 RIHO, AT13 ESRI, RB62 SASA, KU15 REOJ ja OP16 PIKS +BI14 LAMI, BI12 LAMI, ENA27 SABE, RB37 KAHU, AT12 RIHO, AT13 ESRI, RB62 SASA, KU15 REOJ ja OP16 PIKS @@ -42,32 +26,21 @@ TIISTAISIN -RUOKAILUVUORO I klo 10.50 – 11.15, välitunti klo 11.15 - 11.30, oppitunti klo 11.30 – 12.50 - -MA111 MATI, ÄI62 HAPA, KU41 REOJ, MA73 SAKO ja PS82 JUNU - - - -RUOKAILUVUORO II klo 11.20 – 11.45, välitunti klo 10.50 - 11.00, oppitunti klo 11.00 - 11.20 ja klo 11.50 – 12.50 - -RB41 ANSU, BI41 PAHO, UE27 SATU, RA41 SASA ja UE13 ALMA - +RUOKAILUVUORO I: ruokailu klo 10.50 – 11.20, oppitunti klo 11.30 – 12.50 -RUOKAILUVUORO III klo 11.40 – 12.05, välitunti klo 10.50 - 11.00, oppitunti klo 11.00 – 11.40 ja klo 12.10 - 12.50 - -RB44 MAOI, HI31 JUSA, MA142 ESRI, KE81 SALE ja PS51 KAMA +MA111 MATI, ÄI62 HAPA, KU41 REOJ, MA73 SAKO, PS82 JUNU, RB41 ANSU, BI41 PAHO, UE27 SATU ja RA41 SASA -RUOKAILUVUORO IV klo 12.05 – 12.30, välitunti klo 10.50 - 11.00, oppitunti klo 11.00 – 12.00 ja 12.30 - 12.50 +RUOKAILUVUORO II: ruokailu klo 11.40 – 12.10, oppitunti klo 11.00 – 11.40 ja klo 12.10 – 12.50 -TE14 ANSA, TE12 ANSA, ENA25 VIHU, BI16 MAME, BI13 MAME ja TE17 JUHO +UE13 TEKE, RB44 MAOI, HI31 JUSA, MA142 ESRI, KE81 SALE, PS51 ALMA, TE14 ANSA, TE12 ANSA, BI16 MAME ja BI13 MAME -RUOKAILUVUORO V klo 12.25 – 12.50, välitunti klo 10.50 - 11.05, oppitunti klo 11.05 – 12.25 +RUOKAILUVUORO III: ruokailu klo 12.20 – 12.50, oppitunti klo 11.00 – 12.20 -AT11 RIHO, FY12 JUMA, MB84 OLNU, ÄI85 TUTA ja MU41 MAMY +ENA25 VIHU, TE17 JUHO, AT11 RIHO, FY12 JUMA, MB84 OLNU, ÄI85 TUTA ja MU41 MAMY @@ -77,35 +50,21 @@ KESKIVIIKKOISIN -RUOKAILUVUORO I klo 10.50 – 11.15, välitunti klo 11.15 - 11.40, oppitunti klo 11.40 – 13.00 - -LP91 JUHO, LT91 ANSA, ÄI84 HAPA, AT14 ESRI ja AT16 RIHO - - - -RUOKAILUVUORO II klo 11.15 – 11.40, välitunti klo 10.50 - 11.15, oppitunti klo 11.40 – 13.00 - -GE61 MAME, HI32 HEAH, ÄI44 VETU, MB63 SAHE, RB82 MAOI ja UE51 SATU - - - -RUOKAILUVUORO III klo 11.40 – 12.05, välitunti klo 10.50 - 11.00 ja klo 12.05 - 12.20, oppitunti klo 11.00 – 11.40 ja 12.20 - 13.00 +RUOKAILUVUORO I: ruokailu klo 10.50 – 11.30, oppitunti klo 11.40 – 13.00 -KE33 SAKO, SC51 SABE, RB35 ANSU, EA46 KAHU ja HI27 JAJU +LP91 JUHO, LT91 ANSA, ÄI84 HAPA, AT14 ESRI, AT16 RIHO, GE61 MAME, HI32 HEAH, ÄI44 VETU ja PS52 JSAL -RUOKAILUVUORO IV klo 12.05 – 12.30, välitunti klo 10.50 - 11.00 ja klo 12.50 - 13.20, oppitunti klo 11.00 – 12.00 ja 12.30 - 12.50 +RUOKAILUVUORO II: ruokailu klo 11.40 – 12.20, oppitunti klo 11.00 – 11.40 ja klo 12.20 – 13.00 -ENA21 MASI, KE13 SALE, PS15 ALMA, PS12 ALMA, MA143 MATI ja PS52 JSAL +MB63 SAHE, UE51 SATU, KE33 SAKO, SC51 SABE, RB35 ANSU, EA46 KAHU, HI27 JAJU, ENA21 MASI ja MA143 MATI -RUOKAILUVUORO V klo 12.25 – 12.50, välitunti klo 10.50 - 11.05 ja klo 12.50 - 13.20, oppitunti klo 11.05 – 12.25 +RUOKAILUVUORO III: ruokailu klo 12.20 – 13.00, oppitunti klo 11.00 – 12.20 -OPO12 KIIK, OPO17 PIKS, EA51 ANLE ja ÄI61 TUTA - - +RB82 MAOI, KE13 SALE, PS15 ALMA, PS12 ALMA, OPO12 KIIK, OPO17 PIKS, EA51 ANLE ja ÄI61 TUTA @@ -113,35 +72,21 @@ TORSTAISIN -RUOKAILUVUORO I klo 10.50 – 11.15, välitunti klo 11.15 - 11.30, oppitunti klo 11.30 – 12.50 +RUOKAILUVUORO I: ruokailu klo 10.50 – 11.20, oppitunti klo 11.30 – 12.50 -LP22 JUHO, PS71 KAMA, ÄI48 HAPA, ÄI86 VETU ja ÄI65 MIAU +LP22 JUHO, PS71 KAMA, ÄI48 HAPA, ÄI86 VETU, ÄI65 MIAU, MA74 RIHO, YH42 JUSA ja RB72 MAOI -RUOKAILUVUORO II klo 11.20 – 11.45, välitunti klo 10.50 - 11.00, oppitunti klo 11.00 - 11.20 ja klo 11.50 – 12.50 +RUOKAILUVUORO II: ruokailu klo 11.40 – 12.10, oppitunti klo 11.00 – 11.40 ja klo 12.10 – 12.50 -MA74 RIHO, YH42 JUSA, RB72 MAOI, ja MB64 SAHE +MB64 SAHE, ENA24 ANLE, PS17 SATU, GE31 PAHO, SC101 SABE, MB43 JOTO, PC41 VIHU, PD51 VIHU, ENA22 KAHU ja FY72 JUMA -RUOKAILUVUORO III klo 11.40 – 12.05, välitunti klo 10.50 - 11.00, oppitunti klo 11.00 – 11.40 ja klo 12.10 - 12.50 +RUOKAILUVUORO III: ruokailu klo 12.20 – 12.50, oppitunti klo 11.00 – 12.20 -ENA24 ANLE, ja PS17 SATU, GE31 PAHO, SC101 SABE, MB43 JOTO, PC41 VIHU ja PD51 VIHU - - - -RUOKAILUVUORO IV klo 12.05 – 12.30, välitunti klo 10.50 - 11.00, oppitunti klo 11.00 – 12.00 ja 12.30 - 12.50 - -ENA22 KAHU, FI13 ALMA, HI15 HEAH, HI12 HEAH ja FY72 JUMA - - - -RUOKAILUVUORO V klo 12.25 – 12.50, välitunti klo 10.50 - 11.05, oppitunti klo 11.05 – 12.25 - -KU11 REOJ, LT23 ANSA, MU16 MAMY, MU14 MAMY ja BI23 MAME - - +FI13 ALMA, HI15 HEAH, HI12 HEAH, KU11 REOJ, LT23 ANSA, MU16 MAMY, MU14 MAMY ja BI23 MAME @@ -149,36 +94,18 @@ PERJANTAISIN -RUOKAILUVUORO I klo 10.50 – 11.15, välitunti klo 11.15 - 11.40, oppitunti klo 11.40 – 13.00 +RUOKAILUVUORO I: ruokailu klo 10.50 – 11.30, oppitunti klo 11.40 – 13.00 -OPO13 KIIK, OPO15 PIKS, ET21 ALMA, RA111 MAOI, RB111 MAOI, TE32 ANSA, FY111 JUMA ja PC81 VIHU +OPO13 KIIK, OPO15 PIKS, ET21 ALMA, RA111 MAOI, RB111 MAOI, TE32 ANSA, FY111 JUMA, PC81 VIHU, TE22 JUHO, ÄI83 MIAU ja ÄI67 VETU -RUOKAILUVUORO II klo 11.15 – 11.40, välitunti klo 10.50 - 11.15, oppitunti klo 11.40 – 13.00 +RUOKAILUVUORO II: ruokailu klo 11.40 – 12.20, oppitunti klo 11.00 – 11.40 ja klo 12.20 – 13.00 -TE22 JUHO, RB71 KAHU, AT17 RIHO ja MB82 JOTO +RB71 KAHU, AT17 RIHO, MB82 JOTO, MA71 MATI, MB41 ESRI, EA44 ANLE ja HI25 HEAH -RUOKAILUVUORO III klo 11.40 – 12.05, välitunti klo 10.50 - 11.00 ja klo 12.05 - 12.20, oppitunti klo 11.00 – 11.40 ja 12.20 - 13.00 - -MA71 MATI, MB41 ESRI, EA44 ANLE ja BI26 PAHO - - - -RUOKAILUVUORO IV klo 12.05 – 12.30, välitunti klo 10.50 - 11.00 ja klo 12.50 - 13.20, oppitunti klo 11.00 – 12.00 ja 12.30 - 12.50 - -FI11 JSAL, FI12 JSAL, PS14 KAMA, ENA26 SABE ja HI25 HEAH - - - -RUOKAILUVUORO V klo 12.25 – 12.50, välitunti klo 10.50 - 11.05 ja klo 12.50 - 13.20, oppitunti klo 11.05 – 12.25 - -MU12 MAMY, MU13 MAMY, KE32 SALE, ÄI83 MIAU, FD81 MASI ja ÄI67 VETU - - - - +RUOKAILUVUORO III: ruokailu klo 12.20 – 13.00, oppitunti klo 11.00 – 12.20 -
\ No newline at end of file +BI26 PAHO, FI11 JSAL, FI12 JSAL, PS14 TEKE, ENA26 SABE, MU12 MAMY, MU13 MAMY, KE32 SALE ja FD81 MASI
\ No newline at end of file |