SPB Git forge

spb/fabri-ka

Public

Agrégateur de produits québécois — www.fabri-ka.com

217commits 1branches 0releases
66.1 MBsize
maindefault branch
6 h agolast push
Python 38.4% HTML 30.3% TypeScript 17.2% CSS 11% JavaScript 3.2%

[ka6] fix connecteur visionartproductions.com: /api/stats exclut désormais les stores enabled=0 du flux sync_log — leurs derniers syncs à 0 restaient figés dans la fenêtre et la supervision api-ka les comptait broken à vie (le champ additif disabled_stores de 2659e2b ne suffisait pas, api-ka ne le consomme pas encore); le connecteur désactivé disparaît du registre de supervision au lieu d'y rester gelé, disabled_stores conservé, vérifié live: 0 store désactivé dans le flux (fenêtre 72 h et défaut 30 entrées)

Simon-Pierre Boucher committed 1 mo ago (Aug 24, 2026) parent 2659e2b

1 changed file +11 −6

modified fabrika/web.py +11 −6
@@ -476,17 +476,22 @@ def stats(syncs_since_h: float | None = None):
476 476 """)[0]
477 477 by_region = q(con, """SELECT region, COUNT(*) AS stores, SUM(product_count) AS products
478 478 FROM stores WHERE region<>'' GROUP BY region ORDER BY products DESC""")
479 + # Les stores enabled=0 (faux positifs de découverte, boutiques fermées…)
480 + # sont exclus du flux : leurs derniers syncs à 0 restent sinon figés dans
481 + # la fenêtre et la supervision api-ka les compte comme « broken » à vie.
482 + active = "store_id NOT IN (SELECT id FROM stores WHERE enabled = 0)"
479 483 if syncs_since_h is not None:
480 484 cutoff = time.time() - syncs_since_h * 3600
481 − recent = q(con, """SELECT ts, store_id, found, added, updated, removed, status
482 − FROM sync_log WHERE ts >= ? ORDER BY ts DESC LIMIT 4000""",
485 + recent = q(con, f"""SELECT ts, store_id, found, added, updated, removed, status
486 + FROM sync_log WHERE ts >= ? AND {active}
487 + ORDER BY ts DESC LIMIT 4000""",
483 488 (cutoff,))
484 489 if len(recent) < 20:
485 − recent = q(con, """SELECT ts, store_id, found, added, updated, removed, status
486 − FROM sync_log ORDER BY ts DESC LIMIT 20""")
490 + recent = q(con, f"""SELECT ts, store_id, found, added, updated, removed, status
491 + FROM sync_log WHERE {active} ORDER BY ts DESC LIMIT 20""")
487 492 else:
488 − recent = q(con, """SELECT ts, store_id, found, added, updated, removed, status
489 − FROM sync_log ORDER BY ts DESC LIMIT 30""")
493 + recent = q(con, f"""SELECT ts, store_id, found, added, updated, removed, status
494 + FROM sync_log WHERE {active} ORDER BY ts DESC LIMIT 30""")
490 495 # Stores volontairement désactivés (faux positifs de découverte, boutiques
491 496 # fermées…) mais présents dans le sync_log : sans ce signal, la supervision
492 497 # api-ka les fige en « broken » car ils n'émettent plus jamais de syncs.
493 498