From 86af490e949219fbac04e68afb4d03ed65f040dc Mon Sep 17 00:00:00 2001 From: Martin Berka Date: Tue, 7 Jan 2025 15:21:10 +0100 Subject: [PATCH] =?UTF-8?q?Oprava=20parsov=C3=A1n=C3=AD=20TechTower?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/restaurants.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/server/src/restaurants.ts b/server/src/restaurants.ts index f0384f1..00de3d1 100644 --- a/server/src/restaurants.ts +++ b/server/src/restaurants.ts @@ -264,20 +264,32 @@ export const getMenuTechTower = async (firstDayOfWeek: Date, mock: boolean = fal const html = await getHtml(TECHTOWER_URL); const $ = load(html); - const fonts = $('font.wsw-41'); + let secondTry = false; + // První pokus - varianta "Obědy" + let fonts = $('font.wsw-41'); let font = undefined; fonts.each((i, f) => { if ($(f).text().trim().startsWith('Obědy')) { font = f; } }) + // Druhý pokus - varianta "Jídelní lístek" + if (!font) { + fonts = $('font.wnd-font-size-90'); + fonts.each((i, f) => { + if ($(f).text().trim().startsWith('Jídelní lístek')) { + font = f; + secondTry = true; + } + }) + } if (!font) { throw Error('Chyba: nenalezen pro obědy v HTML Techtower.'); } const result: Food[][] = []; // TODO validovat, že v textu nalezeného je rozsah, do kterého spadá vstupní datum - const siblings = $(font).parent().parent().siblings(); + const siblings = secondTry ? $(font).parent().siblings() : $(font).parent().parent().siblings(); let parsing = false; let currentDayIndex = 0; for (let i = 0; i < siblings.length; i++) {