fix: Detail-Tabelle zeigt nur letzte 3h Preise (mit Screenshots)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
a03a58d01e
commit
37c8c38876
1 changed files with 28 additions and 5 deletions
|
|
@ -390,10 +390,25 @@ def api_ki_latest():
|
||||||
|
|
||||||
@app.route("/api/preise/heute")
|
@app.route("/api/preise/heute")
|
||||||
def api_preise_heute():
|
def api_preise_heute():
|
||||||
|
"""
|
||||||
|
Liefert Preise aus dem letzten Scan-Lauf (letzten 3 Stunden).
|
||||||
|
Damit haben alle Einträge einen Screenshot und sind aktuell.
|
||||||
|
Fallback auf den ganzen heutigen Tag wenn keine neueren Daten vorhanden.
|
||||||
|
"""
|
||||||
conn = get_conn()
|
conn = get_conn()
|
||||||
rows = conn.execute(
|
# Erst: Preise aus den letzten 3 Stunden (neuester Lauf = mit Screenshots)
|
||||||
"SELECT * FROM prices WHERE date(scraped_at)=date('now') ORDER BY preis ASC LIMIT 50"
|
rows = conn.execute("""
|
||||||
).fetchall()
|
SELECT * FROM prices
|
||||||
|
WHERE scraped_at >= datetime('now', '-3 hours')
|
||||||
|
ORDER BY preis ASC LIMIT 100
|
||||||
|
""").fetchall()
|
||||||
|
# Fallback: ganzer Tag (z.B. wenn lange kein Lauf war)
|
||||||
|
if not rows:
|
||||||
|
rows = conn.execute("""
|
||||||
|
SELECT * FROM prices
|
||||||
|
WHERE date(scraped_at) = date('now')
|
||||||
|
ORDER BY preis ASC LIMIT 100
|
||||||
|
""").fetchall()
|
||||||
conn.close()
|
conn.close()
|
||||||
return jsonify([dict(r) for r in rows])
|
return jsonify([dict(r) for r in rows])
|
||||||
|
|
||||||
|
|
@ -403,14 +418,22 @@ 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
|
# Heute: günstigster Preis pro Scanner+Node — aus letzten 3h (mit Screenshot)
|
||||||
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 date(scraped_at) = date('now')
|
WHERE scraped_at >= datetime('now', '-3 hours')
|
||||||
GROUP BY scanner, node
|
GROUP BY scanner, node
|
||||||
ORDER BY scanner, preis
|
ORDER BY scanner, preis
|
||||||
""").fetchall()
|
""").fetchall()
|
||||||
|
if not heute:
|
||||||
|
heute = conn.execute("""
|
||||||
|
SELECT scanner, node, MIN(preis) as preis, booking_url, abflug, ankunft
|
||||||
|
FROM prices
|
||||||
|
WHERE date(scraped_at) = date('now')
|
||||||
|
GROUP BY scanner, node
|
||||||
|
ORDER BY scanner, preis
|
||||||
|
""").fetchall()
|
||||||
|
|
||||||
# Gestern: günstigster Preis pro Scanner+Node
|
# Gestern: günstigster Preis pro Scanner+Node
|
||||||
gestern = conn.execute("""
|
gestern = conn.execute("""
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue