# ogaraCheck Automatické sledování denního menu restaurace Ogarova pizza (Otrokovice) s notifikacemi přes Telegram. ## Co dělá - Každých 15 minut od 8:00 do 14:00 (pracovní dny) načte dnešní menu - V 10:00 pošle aktuální menu na Telegram (nebo oznámení "dnes menu není") - Před 10:00 loguje změny v menu do souboru - Po 10:00 posílá na Telegram textové změny i informace o vyprodaných položkách ## Instalace ```bash bun install ``` ## Konfigurace Vytvoř soubor `config/local.ts` (je gitignored): ```ts import type { Config } from "./default" const localConfig: Partial = { days: { monday: "https://otrokovice-ogarova-pizza.cz/produkty/118_pondeli", tuesday: "https://otrokovice-ogarova-pizza.cz/produkty/119_utery", wednesday: "https://otrokovice-ogarova-pizza.cz/produkty/120_streda", thursday: "https://otrokovice-ogarova-pizza.cz/produkty/121_-ctvrtek", friday: "https://otrokovice-ogarova-pizza.cz/produkty/122_patek", }, telegram: { botToken: "váš-bot-token", chatId: "váš-chat-id", }, // devMode: true, // ukládá HTTP debug logy do debug/ // silent: true, // potlačí výstup na stdout // overrideTime: "10:00", // simuluje čas pro testování } export default localConfig ``` ## Manuální spuštění ```bash bun run src/index.ts ``` ## Cron Přidej do `crontab -e` — každých 15 minut od 8:00 do 13:45 v pracovní dny: ```cron */15 8-13 * * 1-5 cd /home/lister/workspace/ogaraCheck && /home/lister/.bun/bin/bun run src/index.ts 2>&1 | systemd-cat -t ogaraCheck ``` Sledování logů: ```bash journalctl -t ogaraCheck -f journalctl -t ogaraCheck --since today ``` ## Struktura projektu ``` config/ default.ts # výchozí konfigurace (commitováno) local.ts # lokální přepisy — token, URL (gitignored) src/ index.ts # vstupní bod, časová logika fetcher.ts # HTTP klient s cookie jar a dev logováním parser.ts # cheerio parser + detekce dostupnosti menu differ.ts # porovnání stavu menu mezi spuštěními logger.ts # zápis změn do logs/YYYY-MM-DD.log telegram.ts # odesílání zpráv přes Telegram Bot API logs/ # denní logy textových změn (gitignored) state/ # stav mezi spuštěními — reference, lastKnown (gitignored) debug/ # HTTP debug logy při devMode: true (gitignored) ```