Obsidian-Rezepte nach KitchenOwl importieren #1031
gickowtf
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Ich habe mir ein kleines Python-Skript gebaut, um meine in Obsidian gepflegten Rezepte nach KitchenOwl zu importieren.
Die Idee dahinter:
.md-Dateien.Vielleicht ist das auch für andere interessant, die ihre Rezepte zuerst lokal in Markdown pflegen und erst danach nach KitchenOwl übernehmen möchten.
Was das Skript kann
Das Skript durchsucht einen Rezept-Ordner rekursiv nach Markdown-Dateien und liest:
## Zutaten## RezeptUnterstützt werden aktuell unter anderem:
titleportionenzeitvorbereitungszeitkochzeittagskitchenOwlWenn
kitchenOwl: truegesetzt ist, wird das Rezept übersprungen. Das ist praktisch, um bereits übertragene Dateien nicht doppelt zu importieren.Erwartetes Format in Obsidian
So sieht meine Vorlage aus:
Wichtig ist vor allem:
titleim Frontmatter pflegen oder eine Markdown-Überschrift# Rezeptnamesetzen.## Zutatenstehen.## Rezeptstehen.Beispielrezept
Zutaten-Parsing
Das Skript versucht einfache Mengenangaben automatisch zu erkennen. Zum Beispiel:
Zwiebel 2x2x Zwiebel1 Packung NudelnNudeln 1 PackungParmesan [optional]Dabei wird:
[optional]bzw.[opt]als optional markiertLeere oder ungültige Zutatenzeilen werden übersprungen, damit der API-Request nicht am Schema scheitert.
Voraussetzungen
requestshousehold-idInstallation der Python-Abhängigkeit:
Aufruf
Für den echten Import einfach
--dry-runweglassen.Parameter
--input: Ordner mit den Rezept-Markdown-Dateien--url: Basis-URL von KitchenOwl--token: gültiger Bearer-Token, aber ohne das PräfixBearer--household-id: Ziel-Haushalt--dry-run: zeigt nur an, was importiert würdeZusätzlich gibt es Default-Werte, falls einzelne Felder im Frontmatter fehlen:
Was an KitchenOwl gesendet wird
Das Skript baut daraus einen Request auf mit:
namedescriptionitemstagsyieldstimeprep_timecook_timevisibilityDie Beschreibung (
description) entspricht dabei dem Inhalt aus## Rezept.Typischer Ablauf
--dry-runtesten.--dry-runimportieren.kitchenOwl: truesetzen, damit das Rezept beim nächsten Lauf übersprungen wird.Bekannte Grenzen
1/2,ca. 200 g,1 ELoder mehrteilige Einheiten werden nicht speziell normalisiert.## Zutatenund## Rezeptheißen.Fazit
Für meinen Workflow reicht das sehr gut aus: Rezepte bleiben in Obsidian editierbar und lassen sich bei Bedarf gesammelt nach KitchenOwl übertragen.
Gist - recipes.py
All reactions