diff options
| -rw-r--r-- | dbparse.js | 46 | ||||
| -rwxr-xr-x | init.sh | 19 | 
2 files changed, 33 insertions, 32 deletions
@@ -108,36 +108,36 @@ async function writeShift(weekday, shiftId, shiftLine, courseLine, DB)  	);  	// Shift contents -	const courseRegex = /(?:[a-ö]{2,3}\d{2,3} ?\+? ?)+ [a-ö]{4}/gi; +	const courseRegex = /([A-ZÅÄÖ]{2,3}\d{2,3})(?:\+([A-ZÅÄÖ]{2,3}\d{2,3}))?(?: ([A-ZÅÄÖ]{4}))?/gi;  	const courses = courseLine.matchAll(courseRegex);  	for(const course of courses)  	{ -		const _lastSpace = course[0].lastIndexOf(" "); -		const courseNames = course[0].substring(0, _lastSpace).split(/ ?\+ ?/); -		const teacherName = course[0].substring(_lastSpace + 1); - -		// For loop is needed, because some courses are marked like KE16+KE26 MATI -		async function handleCourse(courseName, teacherName) -		{ -			let className = await DB.execute( -				"SELECT class FROM classes WHERE course=?", -				[courseName] -			); -			className = className[0]; -			if (className !== undefined) -				className = className.class; -			else -				className = null; - +		const courseName1 = course[1]; +		const courseName2 = course[2]; // this exists if the course is like MA11+MA12 RIHO +		const teacher = course[3] || null; + +		// Get the class +		let className = await DB.execute( +			"SELECT class FROM classes WHERE course=?", +			[courseName] +		); +		if (className !== undefined) +			className = className.class; +		else +			className = null; +		className = className[0]; + +		// Add the info +		dbOperations.push(DB.execute( +			`INSERT IGNORE INTO shifts VALUES (${weekday}, ${shiftId}, ?, ?, ?)`, +			[courseName1, teacher, className] +		)); +		if (courseName2 !== null) {  			dbOperations.push(DB.execute(  				`INSERT IGNORE INTO shifts VALUES (${weekday}, ${shiftId}, ?, ?, ?)`, -				[courseName, teacherName, className] +				[courseName2, teacher, className]  			));  		} -		for(const courseName of courseNames) -		{ -			dbOperations.push(handleCourse(courseName, teacherName)); -		}  	}  	await Promise.all(dbOperations); @@ -1,8 +1,7 @@  #!/bin/sh -exec 1>>/tmp/slogs -exec 2>>/tmp/slogs -echo "========" -echo | date +exec 1>>/var/slogs +exec 2>>/var/slogs +echo ""  echo "# Init running"  echo "# Waiting for connection..." @@ -22,9 +21,11 @@ echo "# Database seems to be available (ignore error messages above)"  echo ""  cd "$BASE_DIR/LYLLRuoka" -echo "# node server.js:" -node server.js +while echo "# node server.js:"; do +	node server.js -echo "========" -echo "" -echo "" +	# Sleep below, so that the loop can't cause too big a load to the server, if the server terminates very fast. +	sleep 5 +	echo "SERVER TERMINATED!" +	echo "--------" +done  | 
