diff options
| author | JoelHMikael <joel.h.kronqvist@gmail.com> | 2021-11-27 10:49:12 +0200 | 
|---|---|---|
| committer | JoelHMikael <joel.h.kronqvist@gmail.com> | 2021-11-27 10:49:12 +0200 | 
| commit | fce2f30af2cf8c92810586654c6341fd469604bd (patch) | |
| tree | 8c59c4fa7ff07885a62e66c2e61c2e88ff39fc3d | |
| parent | 0925b5b6407e6464c738ecf98eb5b9a612a9b810 (diff) | |
| download | LYLLRuoka-fce2f30af2cf8c92810586654c6341fd469604bd.tar.gz LYLLRuoka-fce2f30af2cf8c92810586654c6341fd469604bd.zip  | |
Broken shift parsing
Better WIP
| -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  | 
