104 lines
4.8 KiB
Python
104 lines
4.8 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Apply titles and optional subtitles to recipes in MariaDB.
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
from app.database import get_connection
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
# Mapping of ID -> (new_title, new_subtitle)
|
|
SUBTITLE_UPDATES = {
|
|
# Specifically requested by user:
|
|
51: ("Kressesuppe", "mit Croutons"),
|
|
|
|
# Parenthetical subtitles:
|
|
9: ("Gebratene Kasknödel", "Käseknödel aus der Pfanne"),
|
|
24: ("Galaktoboureko", "Griechischer Grießauflauf"),
|
|
30: ("Heidelbeer-Tiramisu", "fruchtig-frisch ohne Ei"),
|
|
29: ("Zitronen-Tiramisu", "mit Lemon Curd (ohne rohes Ei)"),
|
|
37: ("Donauwelle", "Super Easy vom Blech"),
|
|
39: ("Fudgy Kidneybohnen-Brownies", "ohne Mehl"),
|
|
82: ("Blumenkohl-Curry mit Reis", "Cauliflower Curry"),
|
|
87: ("Pla Pad Krapao", "Thai-Basilikum-Fischfilet mit Reis"),
|
|
92: ("Schmackefatz", "Süßer Nudel-Quark-Auflauf"),
|
|
95: ("Saftiger Karottenkuchen", "Rüblikuchen"),
|
|
107: ("Jian Baos", "Gebratene Bao-Taschen"),
|
|
108: ("Okonomiyaki", "Japanischer Kohlpfannkuchen"),
|
|
109: ("Klassische Dim Sum", "Gyoza / Dumplings"),
|
|
112: ("Soft Cinnamon Rolls", "Amerikanische Zimtschnecken"),
|
|
113: ("Zimtschneckenkuchen", "ohne Hefe"),
|
|
|
|
# Long composite titles with "mit ..." / "auf ..." / "aus ...":
|
|
3: ("Champignons wie vom Weihnachtsmarkt", "mit Knoblauchsauce"),
|
|
7: ("Spaghetti in Zitronenbutter", "und Lachs mit Macadamiakruste"),
|
|
8: ("Orzo-Halloumi-Salat", "mit Granatapfel & Honig-Senf-Dressing"),
|
|
11: ("Cremige Zucchini-Bohnenpfanne", "mit Erdnussbutter"),
|
|
12: ("Blätterteigpäckchen", "mit grünem Spargel & Pecorino"),
|
|
14: ("Traditionelle italienische Focaccia", "mit Rosmarin"),
|
|
15: ("Fluffige Bao Buns", "mit marinierten Champignons & Edamame"),
|
|
16: ("Schnelle Ramen", "mit Miso-Dashibrühe & Räuchertofu"),
|
|
17: ("Traditionelle Ramen", "mit Shoyu-Tare & knusprigem Hack"),
|
|
18: ("One-Pot Mie-Nudeln", "mit Kokos, Curry & Erdnussbutter"),
|
|
19: ("Gemüse nach Gonbao-Art", "mit gerösteten Erdnüssen"),
|
|
20: ("Knuspriger Orangentofu", "mit Duftreis"),
|
|
21: ("Lachs in Thai-Curry-Soße", "mit Zucchini & goldenem Reis"),
|
|
22: ("American Pancakes", "mit Beeren & Ahornsirup"),
|
|
25: ("Crema Catalana", "mit feiner Zuckerkruste"),
|
|
26: ("Cremiges veganes Schokomousse", "aus Seidentofu"),
|
|
27: ("Mango-Limetten-Triffle", "mit weißer Schokolade"),
|
|
28: ("Lebkuchen-Mousse", "mit Glühweinkirschen"),
|
|
32: ("Zimt-Biskuitrolle", "mit karamellisierten Pflaumen & Krokant"),
|
|
34: ("Apfel-Salzkaramell-Tarte", "mit Erdnüssen"),
|
|
36: ("Bounty®-Kuchen", "vom Blech mit Kokoscreme"),
|
|
38: ("Gedeckter Apfelkuchen", "mit Streuseln"),
|
|
53: ("Blätterteig Lauchstrudel", "mit Speck"),
|
|
56: ("Klassische Senfeier", "mit Schnittlauch & Kresse"),
|
|
57: ("Würzige Fischboulette", "in Kräuterpanade"),
|
|
59: ("Maultaschen", "auf warmem Wurzelgemüse-Salat"),
|
|
60: ("Allgäuer Käsenudeln", "mit Tomatensauce"),
|
|
63: ("Spaghetti Napoletana", "mit knusprigen Butterbröseln"),
|
|
65: ("Thunfischsauce", "mit Orecchiette"),
|
|
68: ("Glasierte Garnelen", "auf Umami-Kartoffelstampf"),
|
|
71: ("Korean Glazed Potatoes", "mit Chili-Öl & Gurkensalat"),
|
|
72: ("Teriyaki-Fischfilet", "auf Ingwer-Süßkartoffelstampf"),
|
|
74: ("Schummel-Paella", "mit Meeresfrüchten & Hähnchen"),
|
|
75: ("Vegane Bowl", "mit Sesam-Süßkartoffel & Avocado"),
|
|
77: ("Hausgemachtes Naan-Brot", "mit Knoblauchbutter"),
|
|
79: ("Rahm-Fladen", "mit Schmand, Speck & Frühlingszwiebeln"),
|
|
80: ("Schwäbische Dinnete", "mit Kartoffeln und Käse"),
|
|
81: ("Veggie Po-Boy Sandwich", "mit crunchy Champignons"),
|
|
83: ("Curry-Pfannkuchen", "mit würziger Bohnenfüllung"),
|
|
85: ("Indisches rotes Linsen-Dal", "mit Kokos"),
|
|
86: ("Pad Thai", "mit veganem Hähnchen"),
|
|
88: ("Shredded Tofu-Linsen-Curry", "mit Kokosmilch"),
|
|
89: ("Umami-Kräuterseitlinge", "mit Sesam & Frühlingszwiebeln"),
|
|
90: ("Apple Crumble", "mit Haferflocken-Streuseln"),
|
|
91: ("Palatschinken", "mit feiner Walnussfüllung"),
|
|
97: ("Rhabarberkuchen", "mit Quarkcreme und Streuseln"),
|
|
98: ("Zwetschgenkuchen", "mit feinen Zimtstreuseln"),
|
|
103: ("Soba „Sommerrollen“-Salat", "mit Tofu und Erdnussdressing"),
|
|
111: ("Zimt-Apfel-Blondies", "mit Mandelkruste")
|
|
}
|
|
|
|
def main():
|
|
conn = get_connection()
|
|
cur = conn.cursor()
|
|
|
|
count = 0
|
|
for rid, (title, subtitle) in SUBTITLE_UPDATES.items():
|
|
cur.execute("UPDATE recipes SET title = %s, subtitle = %s WHERE id = %s", (title, subtitle, rid))
|
|
count += 1
|
|
print(f"Updated #{rid}: '{title}' | Untertitel: '{subtitle}'")
|
|
|
|
conn.commit()
|
|
conn.close()
|
|
print(f"\nSuccessfully updated {count} recipes with titles and subtitles.")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|