SPB Git

Repository Public

Commit

[ka6] fix connecteur sartcastik.com: domaine mis en vente (parking Afternic/GoDaddy « lander ») → catalogue vide fidèle. Cause racine vérifiée live 2026-10-02: NS basculés vers ns3/ns4.afternic.com cette nuit (whois Updated 2026-10-02T02:55Z, expiry 2027 — geste volontaire du proprio, pas une expiration) alors que la boutique Woo servait encore 616 produits la veille (dernier ok 10-01 20:38). Tout le site répond 200 avec un mini-HTML window.location.href="/lander" qui mène à forsale.godaddy.com (confirmé mondial via Scrapfly); la Store API renvoie ce HTML → r.json() plante → « Expecting value » → broken (3 échecs). Aucun nouveau domaine (Serper: Google n'indexe que sartcastik.com; le marchand Sartcastik/Rock-Baby vendait aussi via Etsy/Facebook). Fix minimal woocommerce.py, même philosophie que _woo_uninstalled/_wix_domain_parked/_StorefrontLockedError: accueil avec marqueur lander/forsale.godaddy/afternic confirmé (_domain_parked) → return [] (0 fidèle, sync ok). Un non-JSON sans ce marqueur continue de lever l'erreur — pas de masquage. Sync réel 2026-10-02: sartcastik.com ok / 0 produit, les 616 produits en base préservés (removed=0, réactivation auto si le site revient); non-régression seatply.com ok / 91 produits (chemin Woo nominal intact). pm2 restart fabri-ka-sync fait, web local 200.

Simon-Pierre Boucher committed · Oct 2, 2026 parent ccd4fa0
1 changed file +19 −0 Browse files
modified fabrika/connectors/woocommerce.py +19 −0
@@ -167,6 +167,23 @@ class WooCommerceConnector(BaseConnector):
167 167 return True
168 168 return "upstream 404" in str(exc)
169 169
170 + def _domain_parked(self) -> bool:
171 + """Domaine parqué chez un revendeur : tout le site (accueil compris)
172 + répond un mini-HTML qui redirige vers /lander, la page « for sale »
173 + Afternic/GoDaddy — le WordPress a disparu avec le domaine (ex.
174 + sartcastik.com, NS basculés vers ns3/ns4.afternic.com le 2026-10-02
175 + alors que la boutique servait encore 616 produits la veille).
176 + Catalogue vide fidèle à la source, pas une panne. Un non-JSON sans ce
177 + marqueur continue de lever l'erreur — pas de masquage."""
178 + try:
179 + r = self.get(self.base + "/")
180 + except Exception:
181 + return False
182 + body = r.text[:4096]
183 + return ('window.location.href="/lander' in body
184 + or "forsale.godaddy.com" in body
185 + or "afternic.com" in body)
186 +
170 187 def _woo_uninstalled(self) -> bool:
171 188 """WordPress vivant mais WooCommerce désinstallé : l'index REST /wp-json/
172 189 répond (wp/v2 présent) sans plus aucun namespace wc* — la boutique a été
@@ -394,6 +411,8 @@ class WooCommerceConnector(BaseConnector):
394 411 return slug_out
395 412 if self._is_404(first_page_exc) and self._woo_uninstalled():
396 413 return []
414 + if self._domain_parked():
415 + return []
397 416 raise first_page_exc
398 417
399 418 if not out and first_page_exc is None:
400 419
Menu

Theme