Files
2026-09-06 14:41:23 +02:00

72 lines
1.8 KiB
Python

"""
Try to input dishes from the coming week.
"""
import json
import sqlite3
import subprocess
from datetime import date, timedelta
DB = "mensa.db"
MENSEN = ["cgin", "mensa_am_turm", "zentralmensa"]
db = sqlite3.connect(DB)
db.execute("""
CREATE TABLE IF NOT EXISTS dishes (
date TEXT NOT NULL,
mensa TEXT NOT NULL,
type TEXT NOT NULL,
title TEXT,
description TEXT,
category TEXT,
allergens TEXT,
UNIQUE(date, mensa, type)
)
""")
TODAY = date.today()
for i in range(7):
day = TODAY + timedelta(days=i)
for mensa in MENSEN:
result = subprocess.run(
["python", "mensa.py", day.isoformat(), mensa],
capture_output=True,
text=True,
)
if not result.stdout:
print(f"no results: {day} {mensa}")
continue
dishes = json.loads(result.stdout)
for dish in dishes:
try:
db.execute(
"""
INSERT INTO dishes
(date, mensa, type, title, description, category, allergens)
VALUES (?, ?, ?, ?, ?, ?, ?)
""",
(
dish["date"],
dish["mensa"],
dish["type"],
dish["title"],
dish["description"],
json.dumps(dish["category"], ensure_ascii=False),
json.dumps(dish["allergens"], ensure_ascii=False),
),
)
print(f"registered: {dish['date']} {dish['mensa']} {dish['type']}")
except sqlite3.IntegrityError:
print(
f"already registered: {dish['date']} {dish['mensa']} {dish['type']}"
)
db.commit()
db.close()