Oprava parsování U Motlíků
Nyní je počítáno s případy, kdy neexistuje nabídka pro první den v daném týdnu.
This commit is contained in:
parent
aca4055d57
commit
fcad338921
@ -360,7 +360,7 @@ function App() {
|
|||||||
<Alert variant={'primary'}>
|
<Alert variant={'primary'}>
|
||||||
Poslední změny:
|
Poslední změny:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Tolerance existence menu na více týdnů pro restauraci U Motlíků</li>
|
<li>Oprava parsování restaurace U Motlíků, pokud neexistuje nabídka pro první den v týdnu</li>
|
||||||
</ul>
|
</ul>
|
||||||
</Alert>
|
</Alert>
|
||||||
{dayIndex != null &&
|
{dayIndex != null &&
|
||||||
|
@ -157,23 +157,30 @@ export const getMenuUMotliku = async (firstDayOfWeek: Date, mock: boolean = fals
|
|||||||
const html = await getHtml(U_MOTLIKU_URL);
|
const html = await getHtml(U_MOTLIKU_URL);
|
||||||
const $ = load(html);
|
const $ = load(html);
|
||||||
|
|
||||||
// Najdeme první tabulku, nad kterou je v H3 datum začínající prvním dnem aktuálního týdne
|
// Najdeme první tabulku, nad kterou je v H3 datum začínající co nejdřívějším dnem v aktuálním týdnu
|
||||||
// To může selhat mnoha způsoby, ale ty nemá cenu řešit dokud nenastanou
|
|
||||||
const tables = $('table.table.table-hover.Xtable-striped');
|
const tables = $('table.table.table-hover.Xtable-striped');
|
||||||
let usedTable;
|
let usedTable;
|
||||||
const firstDayOfWeekString = `${firstDayOfWeek.getDate()}.${firstDayOfWeek.getMonth() + 1}.`;
|
let usedDate = new Date(firstDayOfWeek.getTime());
|
||||||
for (const tableNode of tables) {
|
for (let i = 0; i < 4; i++) {
|
||||||
const table = $(tableNode);
|
const dayOfWeekString = `${usedDate.getDate()}.${usedDate.getMonth() + 1}.`;
|
||||||
const h3 = table.parent().prev();
|
for (const tableNode of tables) {
|
||||||
const s1 = h3.text().split("-")[0].split(".");
|
const table = $(tableNode);
|
||||||
const foundFirstDayString = `${s1[0]}.${s1[1]}.`;
|
const h3 = table.parent().prev();
|
||||||
if (foundFirstDayString === firstDayOfWeekString) {
|
const s1 = h3.text().split("-")[0].split(".");
|
||||||
usedTable = table;
|
const foundFirstDayString = `${s1[0]}.${s1[1]}.`;
|
||||||
|
if (foundFirstDayString === dayOfWeekString) {
|
||||||
|
usedTable = table;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (usedTable != null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
usedDate.setDate(usedDate.getDate() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usedTable == null) {
|
if (usedTable == null) {
|
||||||
throw Error(`Nepodařilo se najít tabulku pro datum ${firstDayOfWeekString}`);
|
const firstDayOfWeekString = `${firstDayOfWeek.getDate()}.${firstDayOfWeek.getMonth() + 1}.`;
|
||||||
|
throw Error(`Nepodařilo se najít tabulku pro týden začínající ${firstDayOfWeekString}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const body = usedTable.children().first();
|
const body = usedTable.children().first();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user