fix: Preise aus letztem Scan-Lauf (MAX-20min Fenster) statt 3h
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
37c8c38876
commit
3e6c1011dd
1 changed files with 12 additions and 5 deletions
|
|
@ -396,13 +396,17 @@ def api_preise_heute():
|
||||||
Fallback auf den ganzen heutigen Tag wenn keine neueren Daten vorhanden.
|
Fallback auf den ganzen heutigen Tag wenn keine neueren Daten vorhanden.
|
||||||
"""
|
"""
|
||||||
conn = get_conn()
|
conn = get_conn()
|
||||||
# Erst: Preise aus den letzten 3 Stunden (neuester Lauf = mit Screenshots)
|
# Neuester Scan-Lauf: ab MAX(scraped_at) - 20 Minuten
|
||||||
|
# Damit werden immer die Preise des letzten Laufs gezeigt — alle mit Screenshot
|
||||||
rows = conn.execute("""
|
rows = conn.execute("""
|
||||||
SELECT * FROM prices
|
SELECT * FROM prices
|
||||||
WHERE scraped_at >= datetime('now', '-3 hours')
|
WHERE scraped_at >= datetime(
|
||||||
|
(SELECT MAX(scraped_at) FROM prices WHERE date(scraped_at) = date('now')),
|
||||||
|
'-20 minutes'
|
||||||
|
)
|
||||||
ORDER BY preis ASC LIMIT 100
|
ORDER BY preis ASC LIMIT 100
|
||||||
""").fetchall()
|
""").fetchall()
|
||||||
# Fallback: ganzer Tag (z.B. wenn lange kein Lauf war)
|
# Fallback: ganzer Tag (z.B. erster Lauf des Tages noch nicht abgeschlossen)
|
||||||
if not rows:
|
if not rows:
|
||||||
rows = conn.execute("""
|
rows = conn.execute("""
|
||||||
SELECT * FROM prices
|
SELECT * FROM prices
|
||||||
|
|
@ -418,11 +422,14 @@ def api_preise_vergleich():
|
||||||
"""Pro Scanner: günstigster Preis je Node + Delta zum Vortag."""
|
"""Pro Scanner: günstigster Preis je Node + Delta zum Vortag."""
|
||||||
conn = get_conn()
|
conn = get_conn()
|
||||||
|
|
||||||
# Heute: günstigster Preis pro Scanner+Node — aus letzten 3h (mit Screenshot)
|
# Heute: günstigster Preis pro Scanner+Node — aus letztem Scan-Lauf
|
||||||
heute = conn.execute("""
|
heute = conn.execute("""
|
||||||
SELECT scanner, node, MIN(preis) as preis, booking_url, abflug, ankunft
|
SELECT scanner, node, MIN(preis) as preis, booking_url, abflug, ankunft
|
||||||
FROM prices
|
FROM prices
|
||||||
WHERE scraped_at >= datetime('now', '-3 hours')
|
WHERE scraped_at >= datetime(
|
||||||
|
(SELECT MAX(scraped_at) FROM prices WHERE date(scraped_at) = date('now')),
|
||||||
|
'-20 minutes'
|
||||||
|
)
|
||||||
GROUP BY scanner, node
|
GROUP BY scanner, node
|
||||||
ORDER BY scanner, preis
|
ORDER BY scanner, preis
|
||||||
""").fetchall()
|
""").fetchall()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue