Skip to content

Commit

Permalink
Fix handling of missing lesson type
Browse files Browse the repository at this point in the history
  • Loading branch information
bebora committed Oct 1, 2024
1 parent 45d80da commit fb183aa
Show file tree
Hide file tree
Showing 8 changed files with 571 additions and 298 deletions.
50 changes: 25 additions & 25 deletions scripts/dist/polimi-schedule.user.js

Large diffs are not rendered by default.

48 changes: 24 additions & 24 deletions scripts/dist/web-core-bundle.js

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions scripts/dist/web-core-bundle.js.map

Large diffs are not rendered by default.

514 changes: 283 additions & 231 deletions scripts/src/package-lock.json

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions scripts/src/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "polimi-schedule-js",
"version": "2.0.10",
"version": "2.0.11",
"description": "Convert PoliMi timetables to ICS files",
"main": "schedule-to-ical.js",
"scripts": {
Expand All @@ -9,7 +9,7 @@
"webpage": "node_modules/.bin/esbuild ui.js --bundle --minify --sourcemap --format=iife --global-name=bundle --outfile=../dist/web-core-bundle.js",
"userscript": "node build/userscriptBundler.js",
"format": "npx prettier --write .",
"prepare": "cd ../.. && husky install scripts/src/.husky"
"prepare": "cd ../.. && husky scripts/src/.husky"
},
"repository": {
"type": "git",
Expand All @@ -28,16 +28,16 @@
},
"homepage": "https://github.com/bebora/polimi-schedule-js#readme",
"devDependencies": {
"esbuild": "^0.20.2",
"esbuild": "^0.24.0",
"husky": "^9.0.11",
"lint-staged": "^15.2.2",
"mocha": "^10.3.0",
"prettier": "3.2.5"
"prettier": "3.3.3"
},
"dependencies": {
"file-saver": "^2.0.5",
"immutable-ics": "^0.4.0",
"luxon": "^3.4.4",
"luxon": "^3.5.0",
"uuid": "^9.0.1"
},
"type": "module"
Expand Down
23 changes: 14 additions & 9 deletions scripts/src/schedule-to-ical.js
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ function buildProfessorsList(course, alreadyMatchedTitles) {
}

function getProfessorString(lessonType, professorNames) {
//TODO lessonType may be null, find other ways to get the right language
let pluralSelector = null;
let languageTable = professorsLookup[languageLookup[lessonType] || "en"];

Expand Down Expand Up @@ -265,7 +266,7 @@ function parseAUICCourse(course, professorNames, courseName) {
let endHour = timesLocations[i * regexCapturingGroups + 3];
let endMinute = timesLocations[i * regexCapturingGroups + 4];
let lessonType = timesLocations[i * regexCapturingGroups + 5];
lessonType = lessonType[0].toUpperCase() + lessonType.substring(1);
lessonType = lessonType[0].toUpperCase() + lessonType.substring(1); //TODO can lessonType be null also here? No examples yet
let location = timesLocations[i * regexCapturingGroups + 6];
let dates = timesLocations[i * regexCapturingGroups + 7]
.split("\n\n")[0]
Expand All @@ -290,7 +291,10 @@ function parseAUICCourse(course, professorNames, courseName) {
dtstamp: DateTime.now(),
location: location,
description:
lessonType + "\n" + professorString + "\n" + professorNames.join("\n"),
(lessonType === null ? "" : `${lessonType}\n`) +
professorString +
"\n" +
professorNames.join("\n"),
};
if (dates.length > 0) {
event.rdate = dates
Expand Down Expand Up @@ -450,9 +454,9 @@ function parseIIICourse(
let lessonType = null;
if (!noRoomTest.test(j)) {
let roomMatch =
/,\s*(.+)\s+in\s+(?:.*?)(?:aula|classroom|lecture theatre|the classroom|the|room) (.*)/.exec(
/\d(?:\s*(?:am|pm))?(,\s*(.+))?\s+in\s+(?:aula|classroom|lecture theatre|the classroom|the|room) (.*)/.exec(
j
); // "the" is for "the CLASD classroom" ad example
); // "the" is for "the CLASD classroom" for example
if (roomMatch === null) {
// Some room descriptions do not contain "in" and/or have a weird text order. It seems to happen only in English.
// The lessonType is assumed to be a regular lesson and "classroom lesson" will be stripped
Expand All @@ -464,9 +468,11 @@ function parseIIICourse(
location = inaccurateRoomMatch[1];
}
} else {
lessonType =
roomMatch[1][0].toUpperCase() + roomMatch[1].substring(1);
location = roomMatch[2];
if (roomMatch[2] !== undefined) {
lessonType =
roomMatch[2][0].toUpperCase() + roomMatch[2].substring(1);
}
location = roomMatch[3];
}
}
let professorString = getProfessorString(lessonType, professorNames);
Expand All @@ -479,8 +485,7 @@ function parseIIICourse(
location: location,
rrule: "FREQ=WEEKLY;UNTIL=" + dateToUTCRuleText(lastDay),
description:
lessonType +
"\n" +
(lessonType === null ? "" : `${lessonType}\n`) +
professorString +
"\n" +
professorNames.join("\n"),
Expand Down
43 changes: 43 additions & 0 deletions scripts/src/test/input/fisica2024Chromium.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
089494 - MECCANICA DEI SOLIDI (Docente: Bocciarelli Massimiliano )
Inizio lezioni: 16/09/2024 Fine lezioni: 20/12/2024
Lunedì dalle 14:15 alle 16:15 in aula 5.1.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 5 - Piano Primo)
Martedì dalle 12:15 alle 14:15 in aula OSVALDO DE DONATO (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)
Giovedì dalle 09:15 alle 11:15 in aula T.2.3 (Milano Città Studi - Via Bonardi - Edificio 13 - Piano Primo)
Venerdì dalle 13:15 alle 15:15 in aula 2.0.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 2 - Piano Terra)
Aula virtuale - Bocciarelli Massimiliano
Aula virtuale - Bertolli Veronica
Aula virtuale - Papa Tommaso


079729 - OTTICA FISICA (Docente: Cerullo Giulio Nicola Felice )
Inizio lezioni: 16/09/2024 Fine lezioni: 19/12/2024
Lunedì dalle 14:15 alle 18:15 in aula 3.1.2 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Primo)
Lunedì dalle 09:15 alle 11:15 in aula 26.15 (Milano Città Studi - Via Golgi 20 - Edificio 26 - Piano Primo)
Martedì dalle 08:15 alle 10:15 in aula OSVALDO DE DONATO (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)
Mercoledì dalle 10:15 alle 12:15 in aula 25.0.1 (Milano Città Studi - Via Golgi 40 - Edificio 25 - Piano Terra)
Giovedì dalle 08:15 alle 10:15 in aula B.4.4 (Milano Città Studi - Via Bonardi - Edificio 14 - Piano Quarto)
Aula virtuale - Cerullo Giulio Nicola Felice
Aula virtuale - Manzoni Cristian


081079 - FONDAMENTI DI ELETTRONICA (PER ING. FISICA) (Docente: Ferrari Giorgio )
Inizio lezioni: 16/09/2024 Fine lezioni: 20/12/2024
Lunedì dalle 11:15 alle 13:15 in aula 26.15 (Milano Città Studi - Via Golgi 20 - Edificio 26 - Piano Primo)
Martedì dalle 14:15 alle 16:15 in aula 26.15 (Milano Città Studi - Via Golgi 20 - Edificio 26 - Piano Primo)
Mercoledì dalle 15:15 alle 17:15 in aula 3.0.3 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)
Venerdì dalle 10:15 alle 12:15 in aula 5.0.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 5 - Piano Terra)
Aula virtuale - Ferrari Giorgio
Aula virtuale - Sacchi Emanuele
Aula virtuale - Maurina Arianna Adelaide


062336 - SCIENZA E TECNOLOGIA DEI MATERIALI (Docente: Castiglioni Chiara )
Inizio lezioni: 17/09/2024 Fine lezioni: 20/12/2024
Martedì dalle 10:15 alle 12:15 in aula AULA VIRTUALE LEO (-)
Martedì dalle 10:15 alle 12:15 in aula OSVALDO DE DONATO (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)
Mercoledì dalle 08:15 alle 10:15 in aula 25.0.1 (Milano Città Studi - Via Golgi 40 - Edificio 25 - Piano Terra)
Giovedì dalle 14:15 alle 16:15 in aula 3.0.2 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)
Venerdì dalle 15:15 alle 18:15 in aula LB01 (-)
Venerdì dalle 08:15 alle 10:15 in aula 5.0.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 5 - Piano Terra)
Aula virtuale - Castiglioni Chiara
Aula virtuale - Milani Alberto
173 changes: 173 additions & 0 deletions scripts/src/test/output/fisica2024Chromium.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
[
{
"summary": "MECCANICA DEI SOLIDI",
"start": "2024-09-16T14:15:00.000+02:00",
"end": "2024-09-16T16:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.008+02:00",
"location": "5.1.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 5 - Piano Primo)",
"rrule": "FREQ=WEEKLY;UNTIL=20241216T131500Z",
"description": "Professors:\nBocciarelli Massimiliano\nBertolli Veronica\nPapa Tommaso"
},
{
"summary": "MECCANICA DEI SOLIDI",
"start": "2024-09-17T12:15:00.000+02:00",
"end": "2024-09-17T14:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.010+02:00",
"location": "OSVALDO DE DONATO (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241217T111500Z",
"description": "Professors:\nBocciarelli Massimiliano\nBertolli Veronica\nPapa Tommaso"
},
{
"summary": "MECCANICA DEI SOLIDI",
"start": "2024-09-19T09:15:00.000+02:00",
"end": "2024-09-19T11:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.010+02:00",
"location": "T.2.3 (Milano Città Studi - Via Bonardi - Edificio 13 - Piano Primo)",
"rrule": "FREQ=WEEKLY;UNTIL=20241219T081500Z",
"description": "Professors:\nBocciarelli Massimiliano\nBertolli Veronica\nPapa Tommaso"
},
{
"summary": "MECCANICA DEI SOLIDI",
"start": "2024-09-20T13:15:00.000+02:00",
"end": "2024-09-20T15:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.011+02:00",
"location": "2.0.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 2 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241220T121500Z",
"description": "Professors:\nBocciarelli Massimiliano\nBertolli Veronica\nPapa Tommaso"
},
{
"summary": "OTTICA FISICA",
"start": "2024-09-16T14:15:00.000+02:00",
"end": "2024-09-16T18:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.012+02:00",
"location": "3.1.2 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Primo)",
"rrule": "FREQ=WEEKLY;UNTIL=20241216T131500Z",
"description": "Professors:\nCerullo Giulio Nicola Felice\nManzoni Cristian"
},
{
"summary": "OTTICA FISICA",
"start": "2024-09-16T09:15:00.000+02:00",
"end": "2024-09-16T11:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.012+02:00",
"location": "26.15 (Milano Città Studi - Via Golgi 20 - Edificio 26 - Piano Primo)",
"rrule": "FREQ=WEEKLY;UNTIL=20241216T081500Z",
"description": "Professors:\nCerullo Giulio Nicola Felice\nManzoni Cristian"
},
{
"summary": "OTTICA FISICA",
"start": "2024-09-17T08:15:00.000+02:00",
"end": "2024-09-17T10:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.012+02:00",
"location": "OSVALDO DE DONATO (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241217T071500Z",
"description": "Professors:\nCerullo Giulio Nicola Felice\nManzoni Cristian"
},
{
"summary": "OTTICA FISICA",
"start": "2024-09-18T10:15:00.000+02:00",
"end": "2024-09-18T12:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.013+02:00",
"location": "25.0.1 (Milano Città Studi - Via Golgi 40 - Edificio 25 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241218T091500Z",
"description": "Professors:\nCerullo Giulio Nicola Felice\nManzoni Cristian"
},
{
"summary": "OTTICA FISICA",
"start": "2024-09-19T08:15:00.000+02:00",
"end": "2024-09-19T10:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.013+02:00",
"location": "B.4.4 (Milano Città Studi - Via Bonardi - Edificio 14 - Piano Quarto)",
"rrule": "FREQ=WEEKLY;UNTIL=20241219T071500Z",
"description": "Professors:\nCerullo Giulio Nicola Felice\nManzoni Cristian"
},
{
"summary": "FONDAMENTI DI ELETTRONICA (PER ING. FISICA)",
"start": "2024-09-16T11:15:00.000+02:00",
"end": "2024-09-16T13:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.014+02:00",
"location": "26.15 (Milano Città Studi - Via Golgi 20 - Edificio 26 - Piano Primo)",
"rrule": "FREQ=WEEKLY;UNTIL=20241216T101500Z",
"description": "Professors:\nFerrari Giorgio\nSacchi Emanuele\nMaurina Arianna Adelaide"
},
{
"summary": "FONDAMENTI DI ELETTRONICA (PER ING. FISICA)",
"start": "2024-09-17T14:15:00.000+02:00",
"end": "2024-09-17T16:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.015+02:00",
"location": "26.15 (Milano Città Studi - Via Golgi 20 - Edificio 26 - Piano Primo)",
"rrule": "FREQ=WEEKLY;UNTIL=20241217T131500Z",
"description": "Professors:\nFerrari Giorgio\nSacchi Emanuele\nMaurina Arianna Adelaide"
},
{
"summary": "FONDAMENTI DI ELETTRONICA (PER ING. FISICA)",
"start": "2024-09-18T15:15:00.000+02:00",
"end": "2024-09-18T17:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.015+02:00",
"location": "3.0.3 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241218T141500Z",
"description": "Professors:\nFerrari Giorgio\nSacchi Emanuele\nMaurina Arianna Adelaide"
},
{
"summary": "FONDAMENTI DI ELETTRONICA (PER ING. FISICA)",
"start": "2024-09-20T10:15:00.000+02:00",
"end": "2024-09-20T12:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.015+02:00",
"location": "5.0.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 5 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241220T091500Z",
"description": "Professors:\nFerrari Giorgio\nSacchi Emanuele\nMaurina Arianna Adelaide"
},
{
"summary": "SCIENZA E TECNOLOGIA DEI MATERIALI",
"start": "2024-09-17T10:15:00.000+02:00",
"end": "2024-09-17T12:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.016+02:00",
"location": "AULA VIRTUALE LEO (-)",
"rrule": "FREQ=WEEKLY;UNTIL=20241217T091500Z",
"description": "Professors:\nCastiglioni Chiara\nMilani Alberto"
},
{
"summary": "SCIENZA E TECNOLOGIA DEI MATERIALI",
"start": "2024-09-17T10:15:00.000+02:00",
"end": "2024-09-17T12:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.016+02:00",
"location": "OSVALDO DE DONATO (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241217T091500Z",
"description": "Professors:\nCastiglioni Chiara\nMilani Alberto"
},
{
"summary": "SCIENZA E TECNOLOGIA DEI MATERIALI",
"start": "2024-09-18T08:15:00.000+02:00",
"end": "2024-09-18T10:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.016+02:00",
"location": "25.0.1 (Milano Città Studi - Via Golgi 40 - Edificio 25 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241218T071500Z",
"description": "Professors:\nCastiglioni Chiara\nMilani Alberto"
},
{
"summary": "SCIENZA E TECNOLOGIA DEI MATERIALI",
"start": "2024-09-19T14:15:00.000+02:00",
"end": "2024-09-19T16:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.017+02:00",
"location": "3.0.2 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 3 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241219T131500Z",
"description": "Professors:\nCastiglioni Chiara\nMilani Alberto"
},
{
"summary": "SCIENZA E TECNOLOGIA DEI MATERIALI",
"start": "2024-09-20T15:15:00.000+02:00",
"end": "2024-09-20T18:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.017+02:00",
"location": "LB01 (-)",
"rrule": "FREQ=WEEKLY;UNTIL=20241220T141500Z",
"description": "Professors:\nCastiglioni Chiara\nMilani Alberto"
},
{
"summary": "SCIENZA E TECNOLOGIA DEI MATERIALI",
"start": "2024-09-20T08:15:00.000+02:00",
"end": "2024-09-20T10:15:00.000+02:00",
"dtstamp": "2024-10-01T23:22:38.017+02:00",
"location": "5.0.1 (Milano Città Studi - Piazza Leonardo da Vinci 32 - Edificio 5 - Piano Terra)",
"rrule": "FREQ=WEEKLY;UNTIL=20241220T071500Z",
"description": "Professors:\nCastiglioni Chiara\nMilani Alberto"
}
]

0 comments on commit fb183aa

Please sign in to comment.