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
3 h agolast push
Python 38.4% HTML 30.3% TypeScript 17.2% CSS 11% JavaScript 3.2%

[ka6] fix connecteur boreale.com: 2e panne sitemap du CMS Craft — depuis le 2026-09-22 ~18h les <loc> de tous les sitemaps (index, enfants, produits) sont émis sur un domaine parasite sitemaps.instead.beer au lieu du domaine (variante de la panne IP brute du 09-08 corrigée par _rehost/1038407, qui ne couvrait que les hôtes IP littérale). Double effet: URLs produit sur un domaine tiers ET « sitemap » dans l'hôte → chaque URL produit exclue par NON_PRODUCT_RE → sync ✓ trompeur à 0 produit (4 syncs, 23 produits purgés le 09-22 23:57). Le domaine www.boreale.com sert toujours les mêmes chemins en 200 (sitemaps enfants + pages produit JSON-LD Product avec prix, vérifié live). Fix: _rehost() étendu OPT-IN par fiche registre (nouvelle clé rehost_hosts, même pattern que skip_url_prefixes — jamais global, des boutiques generic pointent légitimement vers un domaine tiers) + fiche boreale.com: rehost_hosts=["sitemaps.instead.beer"]. Sync réel 2026-09-23: boreale.com ok / 48 produits (+30 ~17 -0; dernier volume sain 23, le catalogue growlers/cruchons-relais a réellement grossi — lastmod sitemap 09-22). Non-régression calmelabo.com (generic, 9 produits, 0 erreur, chemin sans rehost_hosts intact). pm2 restart fabri-ka-sync fait, web local 200.

Simon-Pierre Boucher committed 3 days ago (Sep 23, 2026) parent 164c443

2 changed files +11 −2

modified data/stores.json +4 −1
@@ -16455,6 +16455,9 @@
16455 16455 "detail": "Certification Aliments du Québec (adhérent vérifié)",
16456 16456 "source": "alimentsduquebec_ent"
16457 16457 }
16458 + ],
16459 + "rehost_hosts": [
16460 + "sitemaps.instead.beer"
16458 16461 ]
16459 16462 },
16460 16463 {
@@ -173765,4 +173768,4 @@
173765 173768 }
173766 173769 }
173767 173770 ]
173768 −}
\ No newline at end of file
173771 +}
modified fabrika/connectors/generic.py +7 −1
@@ -175,8 +175,14 @@ class GenericConnector(BaseConnector):
175 175 # émettent des <loc> sur l'IP brute du serveur → cert TLS invalide.
176 176 # On ramène ces URLs sur le domaine de la boutique, qui sert les
177 177 # mêmes chemins (sitemaps enfants et pages produit vérifiés 200).
178 + # Variante 2026-09-22 (boreale.com encore) : <loc> émis sur un domaine
179 + # parasite (sitemaps.instead.beer) — « sitemap » dans l'hôte faisait en
180 + # plus exclure chaque URL produit via NON_PRODUCT_RE. Réécriture OPT-IN
181 + # par fiche registre (rehost_hosts), jamais globale : d'autres boutiques
182 + # génériques pointent légitimement vers un domaine tiers (CDN, miroir).
178 183 p = urlparse(u)
179 − if IP_HOST_RE.match(p.netloc):
184 + bad_hosts = {h.lower() for h in (self.store.get("rehost_hosts") or [])}
185 + if IP_HOST_RE.match(p.netloc) or p.netloc.lower() in bad_hosts:
180 186 return f"{self.base}{p.path}" + (f"?{p.query}" if p.query else "")
181 187 return u
182 188
183 189