MacGourmet 4 Export nach Tandoor
Beim Umstieg vom Mac weg zu Linux ergab sich hier das Problem, dass eine recht große Rezeptdatenbank in MacGourmet verwaltete wurde. Nun bietet MacGourmet nicht wirklich viele brauchbare Optionen zum Export an. Auch der Import von anderer Software sieht nicht besser aus. Eigentlich haben wir nur Paprika gefunden, doch das gibt es nicht für Linux. Also was tun?
Auf der Synology läuft hier im Docker-Container Mealie. Und aus einem alten Test werkelt zusätzlich noch Tandoor. Beides sind Rezeptverwaltungen, die man selber hosten kann. Doch ach diese können MacGourmet nicht importieren.
Beim Versuch habe ich festgestellt, dass der MacGourmet-Export nichts anderes als einen sqlite3-Datenbank ist. Gut, dachte ich mir, ich kann leidlich Python, versuch da doch mal was. Ich stellte fest, dass es in der Datenbank dann doch einiges an Tabellen gibt. Und so frischte ich erst mal mein SQL auf und brachte mir noch was bei.
Dann kam noch die Schwierigkeit hinzu, dass die Angaben in unserer MacGourmet-Datenbank nicht konsistent waren. Diverse Fehler musste ich abfangen und für uns so umwandeln, dass etwas brauchbares dabei herauskam und das Script lief.
Am Ende sollte eine JSON-Datei herauskommen, die dann in Mealie importiert werden sollte. Klappte nicht, denn Mealie nahm immer nur ein Rezept pro Import. Etwas doof bei knapp 6.000. Also Tandoor, was sich aber nicht anders verhielt. Ich recherchierte weiter und fand einen Hinweis auf die API von Tandoor.
Also bastelte ich mein Python-Script soweit um, dass es aus jedem Rezepteintrag in der Datenbank ein JSON erstellte und dies an die API von Tandoor übergab. Doch die war zickig. Weitere Daten mussten umgewandelt werden, Mengenangaben wie "1-2" oder "1/2" wollte es nicht. Aber auch das lies sich mit etwas Geduld und weiteren Probeläufen umgehen.
Am Ende hatte ich dann alle fast 6.000 Rezepte in Tandoor übertragen. Das Script lief dafür mehrere Stunden, Tandoor reagierte nicht so schnell mit der Antwort der erfolgreichen Übernahme. Doch einiges an Daten ging auch verloren, allerdings für uns nichts all zu schlimmes.
Wir konnten übertragen:
- Rezepttitel
- Zutaten
- Zubereitung
- Anmerkungen
- Quelle
Wir hätten übertragen können:
- Zubereitungszeit - wäre aber etwas komplizierter geworden und war uns nicht wichtig
- Rating - Ist im Export drin, aber anscheinen stimmt etwas im Format nicht. In Tandoor wird es nicht angezeigt.
Was fehlt sind die Rezeptbilder. Und ich verstehe nicht, warum. In der Datenbank ist zwar eine Verknüpfung vom Rezept zum Dateinamen des Bildes, doch die Bilder selbst sind nicht zu finden.
Am Ende fehlt noch das Script. Es ist nicht besonders raffiniert oder ausgefeilt. Meine Kenntnisse in Python würde ich als ausbaufähig bezeichnen. Aber es macht, was es soll und vielleicht hilft es ja jemandem.
Im Script selbst müssen diese Einträge angepasst werden:
# database file
mcgdb="MacGourmet.mgdb"
# Tandoor API URL and API key
url="http://1.2.3.4:1234/api/recipe/"
headers = {"Authorization": "Bearer API-Key"}
Hier der Download.