[ka4] fix connecteur groupecontant: migration PowerGo → Next.js custom (refonte 2026 de contant.ca, /data/vehicles-inventory-fr-items.json → 404); parsing du payload RSC des pages /fr/vehicules-usages/{motos,vehicules-3-roues} (67 usagés); Can-Am Origin/Pulse détectées Électrique; sources.json + docs régénérées
35 changed files +455 −299
modified
autoka/connectors/moto_dealers.py
+150 −4
@@ -32,6 +32,10 @@ | ||
| 32 | 32 | # avec JSON-LD @type Product + table de spécifications (Kilométrage, |
| 33 | 33 | # Couleur…) + galerie JSON Magento. |
| 34 | 34 | # |
| 35 | +# 2b. Next.js custom (Groupe Contant, refonte 2026 — ex-PowerGo) : usagés | |
| 36 | +# server-rendered dans le payload RSC (self.__next_f.push) des pages | |
| 37 | +# /fr/vehicules-usages/<type> ; voir la classe GroupeContant. | |
| 38 | +# | |
| 35 | 39 | # 3. D2C Media — aucun des concessionnaires moto candidats sondés n'y est |
| 36 | 40 | # (PowerGo domine cette verticale), mais la base D2CMotoConnector est |
| 37 | 41 | # prête : mêmes mécanismes que D2CConnector (sitemap /fr/sitemap.xml + |
@@ -130,7 +134,7 @@ _PG_SPEC_VAL_RE = re.compile(r"<span[^>]*>(.*?)</span>", re.S) | ||
| 130 | 134 | # moto électrique (make/modèle/titre) : ne jamais leur inférer Essence |
| 131 | 135 | _PG_ELECTRIC_RE = re.compile( |
| 132 | 136 | r"\b(électrique|electrique|electric|livewire|zero motorcycles|energica|" |
| 133 | − r"elettrica|e-?scooter)\b", re.I) | |
| 137 | + r"elettrica|e-?scooter|can-?am\s+(?:origin|pulse))\b", re.I) | |
| 134 | 138 | |
| 135 | 139 | MAX_IMAGES = 25 |
| 136 | 140 | |
@@ -462,13 +466,155 @@ class ExcelMoto(PowerGoMotoConnector): | ||
| 462 | 466 | city = "Montréal" |
| 463 | 467 | |
| 464 | 468 | |
| 465 | −class GroupeContant(PowerGoMotoConnector): | |
| 466 | − # groupe multi-succursales : Mirabel, Repentigny, Vaudreuil, Beloeil, | |
| 467 | − # Ste-Agathe — la ville de chaque unité vient du listing (location) | |
| 469 | +class GroupeContant(BaseConnector): | |
| 470 | + """Groupe Contant — contant.ca (refonte 2026 : Next.js custom, plus PowerGo). | |
| 471 | + | |
| 472 | + Le JSON PowerGo /data/vehicles-inventory-fr-items.json est mort (404). | |
| 473 | + Les usagés sont server-rendered dans le payload RSC (flight, | |
| 474 | + self.__next_f.push) des pages /fr/vehicules-usages/<type> : tableau | |
| 475 | + "vehicles" COMPLET (aucune pagination) — stock, make, model, year, price, | |
| 476 | + salePrice, km, images S3, descriptionFr, location (succursale)… Les pages | |
| 477 | + détail (/fr/vehicules-usages/<stock>) n'apportent rien de plus (vin/color | |
| 478 | + y sont aussi null) : on n'en fait AUCUNE. | |
| 479 | + Groupe multi-succursales : Mirabel, Repentigny, Vaudreuil, Beloeil, | |
| 480 | + Ste-Agathe — la ville de chaque unité vient du listing (location). | |
| 481 | + """ | |
| 482 | + | |
| 468 | 483 | source_id = "groupecontant" |
| 469 | 484 | base_url = "https://www.contant.ca" |
| 470 | 485 | dealer_name = "Groupe Contant" |
| 471 | 486 | city = "Repentigny" |
| 487 | + request_delay = 1.0 | |
| 488 | + use_detail_cache = False | |
| 489 | + | |
| 490 | + # types usagés indexés : motos + trois-roues (Spyder/Ryker/Canyon, | |
| 491 | + # immatriculées moto au Québec) ; pas de catégorie scooter sur ce site | |
| 492 | + listing_paths = ("/fr/vehicules-usages/motos", | |
| 493 | + "/fr/vehicules-usages/vehicules-3-roues") | |
| 494 | + | |
| 495 | + # slug de succursale du payload → libellés de ville d'avant la refonte | |
| 496 | + _CITIES = {"mirabel": "Mirabel", "repentigny": "Repentigny", | |
| 497 | + "vaudreuil": "Vaudreuil", "beloeil": "Beloeil", | |
| 498 | + "ste-agathe": "Ste-Agathe"} | |
| 499 | + | |
| 500 | + # segments JS `self.__next_f.push([1,"…"])` (littéraux JSON.stringify) | |
| 501 | + _FLIGHT_RE = re.compile( | |
| 502 | + r'self\.__next_f\.push\(\[1,"((?:[^"\\]|\\.)*)"\]\)', re.S) | |
| 503 | + | |
| 504 | + def _flight_vehicles(self, path: str) -> list[dict]: | |
| 505 | + """Tableau "vehicles" du payload RSC d'une page listing.""" | |
| 506 | + resp = self.get(self.base_url + path) | |
| 507 | + if not resp.encoding or resp.encoding.lower() in ("iso-8859-1", | |
| 508 | + "latin-1"): | |
| 509 | + resp.encoding = "utf-8" | |
| 510 | + blob = "".join(json.loads(f'"{m}"') | |
| 511 | + for m in self._FLIGHT_RE.findall(resp.text)) | |
| 512 | + i = blob.find('"vehicles":[') | |
| 513 | + if i < 0: | |
| 514 | + return [] | |
| 515 | + arr, _ = json.JSONDecoder().raw_decode(blob, i + len('"vehicles":')) | |
| 516 | + return [it for it in arr if isinstance(it, dict)] | |
| 517 | + | |
| 518 | + def fetch(self) -> list[Vehicle]: | |
| 519 | + vehicles: list[Vehicle] = [] | |
| 520 | + seen: set[str] = set() | |
| 521 | + for path in self.listing_paths: | |
| 522 | + for it in self._flight_vehicles(path): | |
| 523 | + if it.get("condition") != "used" or it.get("isSold"): | |
| 524 | + continue | |
| 525 | + ext_id = str(it.get("stock") or it.get("tractionId") or "") | |
| 526 | + if not ext_id or ext_id in seen: | |
| 527 | + continue | |
| 528 | + seen.add(ext_id) | |
| 529 | + try: | |
| 530 | + veh = self._to_vehicle(ext_id, it) | |
| 531 | + except Exception: | |
| 532 | + continue | |
| 533 | + if veh is not None: | |
| 534 | + vehicles.append(veh) | |
| 535 | + return vehicles | |
| 536 | + | |
| 537 | + def _to_vehicle(self, ext_id: str, it: dict) -> Vehicle | None: | |
| 538 | + make = _clean(str(it.get("make") or "")) | |
| 539 | + model = _clean(str(it.get("model") or "")) | |
| 540 | + year = it.get("year") | |
| 541 | + try: | |
| 542 | + year = int(str(year)[:4]) if year else None | |
| 543 | + except ValueError: | |
| 544 | + year = None | |
| 545 | + title = " ".join(str(p) for p in (year, make, model) if p) | |
| 546 | + if not title: | |
| 547 | + return None | |
| 548 | + | |
| 549 | + # prix courant = salePrice (liquidation) sinon price ; l'écart entre | |
| 550 | + # les deux devient le rabais affiché | |
| 551 | + price = it.get("salePrice") or it.get("price") | |
| 552 | + try: | |
| 553 | + price = float(price) if price else None | |
| 554 | + except (TypeError, ValueError): | |
| 555 | + price = None | |
| 556 | + base = it.get("price") | |
| 557 | + try: | |
| 558 | + base = float(base) if base else None | |
| 559 | + except (TypeError, ValueError): | |
| 560 | + base = None | |
| 561 | + | |
| 562 | + km = it.get("km") | |
| 563 | + try: | |
| 564 | + km = float(km) if km is not None else None | |
| 565 | + except (TypeError, ValueError): | |
| 566 | + km = None | |
| 567 | + | |
| 568 | + cat = it.get("categoryLabel") or {} | |
| 569 | + cat_fr = _clean(str(cat.get("fr") or "")) if isinstance(cat, dict) \ | |
| 570 | + else "" | |
| 571 | + kind = moto_kind(str(it.get("categorySlug") or ""), | |
| 572 | + str(it.get("rawCategory") or ""), model, title) | |
| 573 | + | |
| 574 | + details = {k: v for k, v in ( | |
| 575 | + ("category", cat_fr), | |
| 576 | + ("type", _clean(str(it.get("typeGroup") or "")))) if v} | |
| 577 | + if base and price and base > price: | |
| 578 | + details["regular_price"] = base | |
| 579 | + details["rebate"] = round(base - price, 2) | |
| 580 | + | |
| 581 | + images = [u for u in (it.get("images") or []) | |
| 582 | + if isinstance(u, str) and u.startswith("http")] | |
| 583 | + | |
| 584 | + loc = str(it.get("location") or "").lower() | |
| 585 | + vin = str(it.get("vin") or "").upper().replace(" ", "") | |
| 586 | + if len(vin) < 11: | |
| 587 | + vin = "" | |
| 588 | + | |
| 589 | + blob = " ".join(filter(None, (make, model, title))) | |
| 590 | + fuel = "Électrique" if _PG_ELECTRIC_RE.search(blob) else "Essence" | |
| 591 | + | |
| 592 | + return Vehicle( | |
| 593 | + source=self.source_id, | |
| 594 | + external_id=ext_id, | |
| 595 | + url=f"{self.base_url}/fr/vehicules-usages/{ext_id}", | |
| 596 | + kind=kind, | |
| 597 | + title=title, | |
| 598 | + make=make, # explicite : marques moto absentes | |
| 599 | + model=model, | |
| 600 | + year=year, | |
| 601 | + price=price, | |
| 602 | + price_label=f"{price:,.0f} $".replace(",", " ") if price else "", | |
| 603 | + mileage_km=km, | |
| 604 | + mileage_label=f"{km:,.0f} km".replace(",", " ") if km else "", | |
| 605 | + transmission="Automatique" if kind == "scooter" else "", | |
| 606 | + fuel=fuel, | |
| 607 | + drivetrain="Propulsion", | |
| 608 | + body_type=cat_fr, | |
| 609 | + exterior_color=_clean(str(it.get("color") or "")), | |
| 610 | + vin=vin, | |
| 611 | + stock_number=str(it.get("stock") or ""), | |
| 612 | + dealer_name=self.dealer_name, | |
| 613 | + city=self._CITIES.get(loc) or _clean(loc).title() or self.city, | |
| 614 | + description=_clean(str(it.get("descriptionFr") or ""))[:4000], | |
| 615 | + details=details, | |
| 616 | + images=images[:MAX_IMAGES], | |
| 617 | + ) | |
| 472 | 618 | |
| 473 | 619 | |
| 474 | 620 | class GabrielHarleyDavidson(PowerGoMotoConnector): |
modified
data/sources.json
+2 −2
@@ -1466,10 +1466,10 @@ | ||
| 1466 | 1466 | "id": "groupecontant", |
| 1467 | 1467 | "name": "Groupe Contant", |
| 1468 | 1468 | "url": "https://www.contant.ca", |
| 1469 | − "listing_url": "https://www.contant.ca/fr/usage/", | |
| 1469 | + "listing_url": "https://www.contant.ca/fr/vehicules-usages", | |
| 1470 | 1470 | "city": "Repentigny", |
| 1471 | 1471 | "region": "Lanaudière", |
| 1472 | − "platform": "PowerGo (JSON inventaire public /data/vehicles-inventory-fr-items.json + JSON-LD Vehicle des pages détail) ; multi-succursales (Mirabel, Repentigny, Vaudreuil, Beloeil, Ste-Agathe) — ville par véhicule via location", | |
| 1472 | + "platform": "Next.js custom (refonte 2026, ex-PowerGo) : usagés server-rendered dans le payload RSC (self.__next_f.push) des pages /fr/vehicules-usages/{motos,vehicules-3-roues} — tableau \"vehicles\" complet, aucune page détail ; multi-succursales (Mirabel, Repentigny, Vaudreuil, Beloeil, Ste-Agathe) — ville par véhicule via location", | |
| 1473 | 1473 | "connector": "moto_dealers", |
| 1474 | 1474 | "vertical": "moto", |
| 1475 | 1475 | "status": "actif" |
modified
docs/connecteurs/INDEX.md
+29 −29
@@ -1,13 +1,13 @@ | ||
| 1 | 1 | # Auto-Ka — Documentation des connecteurs |
| 2 | 2 | |
| 3 | −_Générée le 2026-08-27 18:10 par `scripts/gen_connector_docs.py` (rejouable : `.venv/bin/python3 scripts/gen_connector_docs.py`)._ | |
| 3 | +_Générée le 2026-08-28 22:24 par `scripts/gen_connector_docs.py` (rejouable : `.venv/bin/python3 scripts/gen_connector_docs.py`)._ | |
| 4 | 4 | |
| 5 | 5 | ## Vue d'ensemble |
| 6 | 6 | |
| 7 | 7 | - **Sources** : 143 (registre `data/sources.json`) |
| 8 | 8 | - **Modules connecteurs** : 31 (`autoka/connectors/`) |
| 9 | −- **Annonces en base** : 89353 — dont 59759 actives (59086 autos, 644 motos, 29 scooters) | |
| 10 | −- **Doublons VIN masqués** : 12469 (voir [dédup VIN](transverse-dedup-vin.md)) | |
| 9 | +- **Annonces en base** : 94686 — dont 59791 actives (59072 autos, 691 motos, 28 scooters) | |
| 10 | +- **Doublons VIN masqués** : 12279 (voir [dédup VIN](transverse-dedup-vin.md)) | |
| 11 | 11 | - **Rappels Transports Canada** : 16969 rappels distincts (voir [rappels TC](transverse-rappels-tc.md)) |
| 12 | 12 | - **Concessionnaires géolocalisés** : 138 (voir [dealers](transverse-dealers.md)) |
| 13 | 13 | |
@@ -15,36 +15,36 @@ _Générée le 2026-08-27 18:10 par `scripts/gen_connector_docs.py` (rejouable : | ||
| 15 | 15 | |
| 16 | 16 | | Module | Fiche | Sources | Annonces actives | Backend | |
| 17 | 17 | |---|---|---|---|---| |
| 18 | −| `d2c_dealers` | [d2c_dealers.md](d2c_dealers.md) | 65 | 5192 | requests direct — Firecrawl par source au besoin | | |
| 19 | −| `sm360_dealers` | [sm360_dealers.md](sm360_dealers.md) | 15 | 1459 | requests direct — Firecrawl par source au besoin | | |
| 20 | −| `moto_dealers` | [moto_dealers.md](moto_dealers.md) | 13 | 673 | requests direct | | |
| 21 | −| `central_dealers` | [central_dealers.md](central_dealers.md) | 9 | 352 | requests direct | | |
| 22 | −| `gatsby_dealers` | [gatsby_dealers.md](gatsby_dealers.md) | 6 | 205 | requests direct | | |
| 23 | −| `magnetis_dealers` | [magnetis_dealers.md](magnetis_dealers.md) | 5 | 542 | requests direct | | |
| 24 | −| `vvu_dealers` | [vvu_dealers.md](vvu_dealers.md) | 4 | 185 | requests direct | | |
| 25 | −| `convertus_fc` | [convertus_fc.md](convertus_fc.md) | 3 | 323 | Firecrawl | | |
| 26 | −| `albioccasion` | [albioccasion.md](albioccasion.md) | 1 | 1116 | requests direct | | |
| 18 | +| `d2c_dealers` | [d2c_dealers.md](d2c_dealers.md) | 65 | 5220 | requests direct — Firecrawl par source au besoin | | |
| 19 | +| `sm360_dealers` | [sm360_dealers.md](sm360_dealers.md) | 15 | 1443 | requests direct — Firecrawl par source au besoin | | |
| 20 | +| `moto_dealers` | [moto_dealers.md](moto_dealers.md) | 13 | 719 | requests direct | | |
| 21 | +| `central_dealers` | [central_dealers.md](central_dealers.md) | 9 | 354 | requests direct | | |
| 22 | +| `gatsby_dealers` | [gatsby_dealers.md](gatsby_dealers.md) | 6 | 207 | requests direct | | |
| 23 | +| `magnetis_dealers` | [magnetis_dealers.md](magnetis_dealers.md) | 5 | 497 | requests direct | | |
| 24 | +| `vvu_dealers` | [vvu_dealers.md](vvu_dealers.md) | 4 | 180 | requests direct | | |
| 25 | +| `convertus_fc` | [convertus_fc.md](convertus_fc.md) | 3 | 316 | Firecrawl | | |
| 26 | +| `albioccasion` | [albioccasion.md](albioccasion.md) | 1 | 1111 | requests direct | | |
| 27 | 27 | | `autodurocher` | [autodurocher.md](autodurocher.md) | 1 | 159 | requests direct | |
| 28 | −| `automobileendirect` | [automobileendirect.md](automobileendirect.md) | 1 | 1614 | requests direct | | |
| 29 | −| `autotrader` | [autotrader.md](autotrader.md) | 1 | 2152 | Scrapfly | | |
| 30 | −| `autousagee` | [autousagee.md](autousagee.md) | 1 | 11852 | requests direct | | |
| 31 | −| `cargurus` | [cargurus.md](cargurus.md) | 1 | 634 | Scrapfly | | |
| 32 | −| `classeauto` | [classeauto.md](classeauto.md) | 1 | 98 | requests direct | | |
| 33 | −| `clubautozone` | [clubautozone.md](clubautozone.md) | 1 | 57 | requests direct | | |
| 34 | −| `desmeules` | [desmeules.md](desmeules.md) | 1 | 261 | requests direct | | |
| 35 | −| `dupontford` | [dupontford.md](dupontford.md) | 1 | 66 | requests direct | | |
| 36 | −| `hgregoire` | [hgregoire.md](hgregoire.md) | 1 | 1751 | Scrapfly | | |
| 37 | −| `jlkauto` | [jlkauto.md](jlkauto.md) | 1 | 62 | requests direct | | |
| 38 | −| `kijiji` | [kijiji.md](kijiji.md) | 1 | 3118 | requests direct | | |
| 39 | −| `leprixdugros` | [leprixdugros.md](leprixdugros.md) | 1 | 1125 | Scrapfly | | |
| 40 | −| `megacentre` | [megacentre.md](megacentre.md) | 1 | 464 | requests direct | | |
| 41 | −| `montjolichrysler` | [montjolichrysler.md](montjolichrysler.md) | 1 | 426 | requests direct | | |
| 42 | −| `occasionbeaucage` | [occasionbeaucage.md](occasionbeaucage.md) | 1 | 1295 | requests direct | | |
| 28 | +| `automobileendirect` | [automobileendirect.md](automobileendirect.md) | 1 | 1602 | requests direct | | |
| 29 | +| `autotrader` | [autotrader.md](autotrader.md) | 1 | 2420 | Scrapfly | | |
| 30 | +| `autousagee` | [autousagee.md](autousagee.md) | 1 | 11789 | requests direct | | |
| 31 | +| `cargurus` | [cargurus.md](cargurus.md) | 1 | 527 | Scrapfly | | |
| 32 | +| `classeauto` | [classeauto.md](classeauto.md) | 1 | 96 | requests direct | | |
| 33 | +| `clubautozone` | [clubautozone.md](clubautozone.md) | 1 | 56 | requests direct | | |
| 34 | +| `desmeules` | [desmeules.md](desmeules.md) | 1 | 277 | requests direct | | |
| 35 | +| `dupontford` | [dupontford.md](dupontford.md) | 1 | 60 | requests direct | | |
| 36 | +| `hgregoire` | [hgregoire.md](hgregoire.md) | 1 | 1763 | Scrapfly | | |
| 37 | +| `jlkauto` | [jlkauto.md](jlkauto.md) | 1 | 66 | requests direct | | |
| 38 | +| `kijiji` | [kijiji.md](kijiji.md) | 1 | 3073 | requests direct | | |
| 39 | +| `leprixdugros` | [leprixdugros.md](leprixdugros.md) | 1 | 1075 | Scrapfly | | |
| 40 | +| `megacentre` | [megacentre.md](megacentre.md) | 1 | 462 | requests direct | | |
| 41 | +| `montjolichrysler` | [montjolichrysler.md](montjolichrysler.md) | 1 | 417 | requests direct | | |
| 42 | +| `occasionbeaucage` | [occasionbeaucage.md](occasionbeaucage.md) | 1 | 1291 | requests direct | | |
| 43 | 43 | | `occasioncharlevoix` | [occasioncharlevoix.md](occasioncharlevoix.md) | 1 | 30 | requests direct | |
| 44 | 44 | | `okaze` | [okaze.md](okaze.md) | 1 | 55 | requests direct | |
| 45 | −| `otogo` | [otogo.md](otogo.md) | 1 | 24048 | requests direct | | |
| 45 | +| `otogo` | [otogo.md](otogo.md) | 1 | 24090 | requests direct | | |
| 46 | 46 | | `ototr` | [ototr.md](ototr.md) | 1 | 4 | requests direct | |
| 47 | −| `stefoychrysler` | [stefoychrysler.md](stefoychrysler.md) | 1 | 426 | requests direct | | |
| 47 | +| `stefoychrysler` | [stefoychrysler.md](stefoychrysler.md) | 1 | 417 | requests direct | | |
| 48 | 48 | | `yannicklaberge` | [yannicklaberge.md](yannicklaberge.md) | 1 | 15 | requests direct | |
| 49 | 49 | |
| 50 | 50 | ## Fiches transverses |
modified
docs/connecteurs/albioccasion.md
+4 −4
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/albioccasion.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 1116 | |
| 9 | +- **Annonces actives (BD)** : 1111 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : microdata schema.org |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache) |
@@ -32,7 +32,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 32 | 32 | > semaine). AUTOKA_MAX_PAGES limite la pagination liste et |
| 33 | 33 | > AUTOKA_MAX_DETAILS plafonne les vraies requêtes détail par sync. |
| 34 | 34 | |
| 35 | −## Complétude des champs (annonces actives, N = 1 116) | |
| 35 | +## Complétude des champs (annonces actives, N = 1 111) | |
| 36 | 36 | |
| 37 | 37 | | Champ | % rempli | |
| 38 | 38 | |---|---| |
@@ -41,7 +41,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 41 | 41 | | Année | 100.0 % | |
| 42 | 42 | | Kilométrage | 100.0 % | |
| 43 | 43 | | Prix | 100.0 % | |
| 44 | −| Carburant | 5.8 % | | |
| 44 | +| Carburant | 5.6 % | | |
| 45 | 45 | | Boîte (transmission) | 100.0 % | |
| 46 | 46 | | VIN | 100.0 % | |
| 47 | 47 | | Photos | 100.0 % | |
@@ -52,7 +52,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 52 | 52 | |
| 53 | 53 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 54 | 54 | |---|---|---|---|---|---|---|---| |
| 55 | −| `albioccasion` | ALBI Occasion | Mascouche | Lanaudière | 1116 | 1 | 2026-08-27 17:45 | OK (1113 trouvés) | | |
| 55 | +| `albioccasion` | ALBI Occasion | Mascouche | Lanaudière | 1111 | 1 | 2026-08-28 21:07 | OK (1105 trouvés) | | |
| 56 | 56 | |
| 57 | 57 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 58 | 58 | |
modified
docs/connecteurs/autodurocher.md
+1 −1
@@ -51,7 +51,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 51 | 51 | |
| 52 | 52 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 53 | 53 | |---|---|---|---|---|---|---|---| |
| 54 | −| `autodurocher` | Entrepôt Auto Durocher | Mirabel | Laurentides | 159 | 0 | 2026-08-27 17:45 | OK (159 trouvés) | | |
| 54 | +| `autodurocher` | Entrepôt Auto Durocher | Mirabel | Laurentides | 159 | 0 | 2026-08-28 21:08 | OK (159 trouvés) | | |
| 55 | 55 | |
| 56 | 56 | ## Erreurs de synchronisation récentes |
| 57 | 57 | |
modified
docs/connecteurs/automobileendirect.md
+3 −3
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/automobileendirect.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 1614 | |
| 9 | +- **Annonces actives (BD)** : 1602 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache) |
@@ -37,7 +37,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 37 | 37 | > URL publique d'une fiche : /auto-usage/<slug>/<vin> (route SPA fr). |
| 38 | 38 | > AUTOKA_MAX_PAGES (env) limite le nombre de pages de liste (tests). |
| 39 | 39 | |
| 40 | −## Complétude des champs (annonces actives, N = 1 614) | |
| 40 | +## Complétude des champs (annonces actives, N = 1 602) | |
| 41 | 41 | |
| 42 | 42 | | Champ | % rempli | |
| 43 | 43 | |---|---| |
@@ -57,7 +57,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 57 | 57 | |
| 58 | 58 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 59 | 59 | |---|---|---|---|---|---|---|---| |
| 60 | −| `automobileendirect` | Automobile En Direct | Saint-Constant | Montérégie | 1614 | 0 | 2026-08-27 17:47 | OK (1611 trouvés) | | |
| 60 | +| `automobileendirect` | Automobile En Direct | Saint-Constant | Montérégie | 1602 | 0 | 2026-08-28 21:09 | OK (1602 trouvés) | | |
| 61 | 61 | |
| 62 | 62 | ## Erreurs de synchronisation récentes |
| 63 | 63 | |
modified
docs/connecteurs/autotrader.md
+7 −7
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/autotrader.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 2152 | |
| 9 | +- **Annonces actives (BD)** : 2420 | |
| 10 | 10 | - **Backend de fetch** : Scrapfly |
| 11 | 11 | - **Mécanique détectée** : __NEXT_DATA__ |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_AUTOTRADER_MAX |
@@ -41,27 +41,27 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 41 | 41 | > pages 1-50) ; repli automatique Scrapfly ASP SANS render_js sur 403/429 |
| 42 | 42 | > (~1 crédit/page en cas de blocage seulement — budget nul en régime normal). |
| 43 | 43 | |
| 44 | −## Complétude des champs (annonces actives, N = 2 152) | |
| 44 | +## Complétude des champs (annonces actives, N = 2 420) | |
| 45 | 45 | |
| 46 | 46 | | Champ | % rempli | |
| 47 | 47 | |---|---| |
| 48 | 48 | | Marque | 100.0 % | |
| 49 | 49 | | Modèle | 100.0 % | |
| 50 | −| Année | 99.9 % | | |
| 50 | +| Année | 100.0 % | | |
| 51 | 51 | | Kilométrage | 99.8 % | |
| 52 | 52 | | Prix | 100.0 % | |
| 53 | −| Carburant | 90.8 % | | |
| 53 | +| Carburant | 91.6 % | | |
| 54 | 54 | | Boîte (transmission) | 97.5 % | |
| 55 | 55 | | VIN | 0.0 % | |
| 56 | −| Photos | 95.0 % | | |
| 56 | +| Photos | 93.9 % | | |
| 57 | 57 | | Carfax | 0.0 % | |
| 58 | −| GPS (lat/lng) | 93.2 % | | |
| 58 | +| GPS (lat/lng) | 95.0 % | | |
| 59 | 59 | |
| 60 | 60 | ## Sources membres (BD live) |
| 61 | 61 | |
| 62 | 62 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 63 | 63 | |---|---|---|---|---|---|---|---| |
| 64 | −| `autotrader` | AutoTrader.ca / AutoHebdo (Québec) | — | — | 2152 | 0 | 2026-08-27 17:50 | OK (1921 trouvés) | | |
| 64 | +| `autotrader` | AutoTrader.ca / AutoHebdo (Québec) | — | — | 2420 | 0 | 2026-08-28 21:12 | OK (1951 trouvés) | | |
| 65 | 65 | |
| 66 | 66 | ## Erreurs de synchronisation récentes |
| 67 | 67 | |
modified
docs/connecteurs/autousagee.md
+6 −6
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/autousagee.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 11852 | |
| 9 | +- **Annonces actives (BD)** : 11789 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : parsing HTML |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_AUTOUSAGEE_MAX, AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache) |
@@ -51,7 +51,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 51 | 51 | > AUTOKA_MAX_PAGES (pages liste, tests), AUTOKA_MAX_DETAILS (vraies |
| 52 | 52 | > requêtes détail/sync, défaut 500 — inventaire enrichi progressivement). |
| 53 | 53 | |
| 54 | −## Complétude des champs (annonces actives, N = 11 852) | |
| 54 | +## Complétude des champs (annonces actives, N = 11 789) | |
| 55 | 55 | |
| 56 | 56 | | Champ | % rempli | |
| 57 | 57 | |---|---| |
@@ -60,18 +60,18 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 60 | 60 | | Année | 99.7 % | |
| 61 | 61 | | Kilométrage | 100.0 % | |
| 62 | 62 | | Prix | 99.9 % | |
| 63 | −| Carburant | 98.6 % | | |
| 64 | −| Boîte (transmission) | 98.8 % | | |
| 63 | +| Carburant | 98.5 % | | |
| 64 | +| Boîte (transmission) | 98.7 % | | |
| 65 | 65 | | VIN | 98.8 % | |
| 66 | 66 | | Photos | 89.3 % | |
| 67 | 67 | | Carfax | 0.0 % | |
| 68 | −| GPS (lat/lng) | 86.7 % | | |
| 68 | +| GPS (lat/lng) | 86.8 % | | |
| 69 | 69 | |
| 70 | 70 | ## Sources membres (BD live) |
| 71 | 71 | |
| 72 | 72 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 73 | 73 | |---|---|---|---|---|---|---|---| |
| 74 | −| `autousagee` | AutoUsagee.ca (AMVOQ) | — | — | 11852 | 3093 | 2026-08-27 15:06 | OK (11780 trouvés) | | |
| 74 | +| `autousagee` | AutoUsagee.ca (AMVOQ) | — | — | 11789 | 3098 | 2026-08-28 21:31 | OK (11782 trouvés) | | |
| 75 | 75 | |
| 76 | 76 | ## Erreurs de synchronisation récentes |
| 77 | 77 | |
modified
docs/connecteurs/cargurus.md
+8 −7
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/cargurus.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 634 | |
| 9 | +- **Annonces actives (BD)** : 527 | |
| 10 | 10 | - **Backend de fetch** : Scrapfly |
| 11 | 11 | - **Mécanique détectée** : — |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_CARGURUS_MAX |
@@ -37,7 +37,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 37 | 37 | > de 12 syncs/jour. Les annonces sorties de la fenêtre passent inactives |
| 38 | 38 | > après le délai de grâce standard (MISS_GRACE). |
| 39 | 39 | |
| 40 | −## Complétude des champs (annonces actives, N = 634) | |
| 40 | +## Complétude des champs (annonces actives, N = 527) | |
| 41 | 41 | |
| 42 | 42 | | Champ | % rempli | |
| 43 | 43 | |---|---| |
@@ -46,21 +46,22 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 46 | 46 | | Année | 100.0 % | |
| 47 | 47 | | Kilométrage | 100.0 % | |
| 48 | 48 | | Prix | 100.0 % | |
| 49 | −| Carburant | 70.7 % | | |
| 50 | −| Boîte (transmission) | 97.2 % | | |
| 49 | +| Carburant | 69.4 % | | |
| 50 | +| Boîte (transmission) | 98.1 % | | |
| 51 | 51 | | VIN | 100.0 % | |
| 52 | −| Photos | 87.5 % | | |
| 52 | +| Photos | 87.1 % | | |
| 53 | 53 | | Carfax | 0.0 % | |
| 54 | −| GPS (lat/lng) | 97.2 % | | |
| 54 | +| GPS (lat/lng) | 96.6 % | | |
| 55 | 55 | |
| 56 | 56 | ## Sources membres (BD live) |
| 57 | 57 | |
| 58 | 58 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 59 | 59 | |---|---|---|---|---|---|---|---| |
| 60 | −| `cargurus` | CarGurus.ca (Québec) | — | — | 634 | 173 | 2026-08-27 15:08 | OK (515 trouvés) | | |
| 60 | +| `cargurus` | CarGurus.ca (Québec) | — | — | 527 | 178 | 2026-08-28 21:32 | OK (521 trouvés) | | |
| 61 | 61 | |
| 62 | 62 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 63 | 63 | |
| 64 | 64 | | Source | Quand | Message | |
| 65 | 65 | |---|---|---| |
| 66 | +| `cargurus` | 2026-08-28 09:30 | 422 Client Error: Unprocessable Entity for url: https://api.scrapfly.io/scrape?key=scp-live-4678865fffba41809895d31175deccc0&url=https%3A%2F%2Fwww.cargurus.ca%2 | | |
| 66 | 67 | | `cargurus` | 2026-08-19 12:56 | HTTPSConnectionPool(host='api.scrapfly.io', port=443): Read timed out. (read timeout=120) | |
modified
docs/connecteurs/central_dealers.md
+11 −11
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/central_dealers.py` |
| 8 | 8 | - **Sources membres** : 9 |
| 9 | −- **Annonces actives (BD)** : 352 | |
| 9 | +- **Annonces actives (BD)** : 354 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : parsing HTML, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS |
@@ -35,7 +35,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 35 | 35 | > 2 = moto, 3 = VR) ; on garde le type 1 + un garde-fou regex sur la |
| 36 | 36 | > catégorie/carrosserie (motoneige, VTT, Classe A/B/C, récréatif…). |
| 37 | 37 | |
| 38 | −## Complétude des champs (annonces actives, N = 352) | |
| 38 | +## Complétude des champs (annonces actives, N = 354) | |
| 39 | 39 | |
| 40 | 40 | | Champ | % rempli | |
| 41 | 41 | |---|---| |
@@ -55,15 +55,15 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 55 | 55 | |
| 56 | 56 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 57 | 57 | |---|---|---|---|---|---|---|---| |
| 58 | −| `autobsl` | Auto BSL | Rimouski | Bas-Saint-Laurent | 54 | 0 | 2026-08-27 15:08 | OK (52 trouvés) | | |
| 59 | −| `autocreditplus` | Auto Crédit Plus | Trois-Rivières | Mauricie | 88 | 0 | 2026-08-27 15:08 | OK (88 trouvés) | | |
| 60 | −| `autosag` | Autosag | Chicoutimi | Saguenay-Lac-Saint-Jean | 5 | 0 | 2026-08-27 15:08 | OK (5 trouvés) | | |
| 61 | −| `autoxtreme` | Auto Xtrême | Montréal | Montréal | 49 | 0 | 2026-08-27 15:08 | OK (48 trouvés) | | |
| 62 | −| `dastousauto` | D'Astous Auto | Montréal | Montréal | 29 | 0 | 2026-08-27 15:08 | OK (29 trouvés) | | |
| 63 | −| `denisauto` | Denis Auto | Gatineau | Outaouais | 38 | 0 | 2026-08-27 15:08 | OK (36 trouvés) | | |
| 64 | −| `fleuryautogroupe` | Fleury Auto Groupe | Gatineau | Outaouais | 60 | 0 | 2026-08-27 15:08 | OK (59 trouvés) | | |
| 65 | −| `jrautotr` | J.R. Auto | Trois-Rivières | Mauricie | 23 | 0 | 2026-08-27 15:08 | OK (23 trouvés) | | |
| 66 | −| `lecentreautoquebec` | Le Centre Auto Québec Plus | Québec | Capitale-Nationale | 6 | 0 | 2026-08-27 15:08 | OK (6 trouvés) | | |
| 58 | +| `autobsl` | Auto BSL | Rimouski | Bas-Saint-Laurent | 50 | 0 | 2026-08-28 21:32 | OK (50 trouvés) | | |
| 59 | +| `autocreditplus` | Auto Crédit Plus | Trois-Rivières | Mauricie | 88 | 0 | 2026-08-28 21:32 | OK (88 trouvés) | | |
| 60 | +| `autosag` | Autosag | Chicoutimi | Saguenay-Lac-Saint-Jean | 7 | 0 | 2026-08-28 21:32 | OK (7 trouvés) | | |
| 61 | +| `autoxtreme` | Auto Xtrême | Montréal | Montréal | 48 | 0 | 2026-08-28 21:32 | OK (48 trouvés) | | |
| 62 | +| `dastousauto` | D'Astous Auto | Montréal | Montréal | 29 | 0 | 2026-08-28 21:32 | OK (29 trouvés) | | |
| 63 | +| `denisauto` | Denis Auto | Gatineau | Outaouais | 38 | 0 | 2026-08-28 21:32 | OK (38 trouvés) | | |
| 64 | +| `fleuryautogroupe` | Fleury Auto Groupe | Gatineau | Outaouais | 66 | 0 | 2026-08-28 21:32 | OK (66 trouvés) | | |
| 65 | +| `jrautotr` | J.R. Auto | Trois-Rivières | Mauricie | 22 | 0 | 2026-08-28 21:32 | OK (22 trouvés) | | |
| 66 | +| `lecentreautoquebec` | Le Centre Auto Québec Plus | Québec | Capitale-Nationale | 6 | 0 | 2026-08-28 21:32 | OK (6 trouvés) | | |
| 67 | 67 | |
| 68 | 68 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 69 | 69 | |
modified
docs/connecteurs/classeauto.md
+3 −3
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/classeauto.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 98 | |
| 9 | +- **Annonces actives (BD)** : 96 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : aucun |
@@ -30,7 +30,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 30 | 30 | > Filtres de sécurité : vehicle_type_id == 1 (automobile), post_status |
| 31 | 31 | > publish/published, condition != NEW, deleted_at vide. |
| 32 | 32 | |
| 33 | −## Complétude des champs (annonces actives, N = 98) | |
| 33 | +## Complétude des champs (annonces actives, N = 96) | |
| 34 | 34 | |
| 35 | 35 | | Champ | % rempli | |
| 36 | 36 | |---|---| |
@@ -50,7 +50,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 50 | 50 | |
| 51 | 51 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 52 | 52 | |---|---|---|---|---|---|---|---| |
| 53 | −| `classeauto` | Classe Auto | Montréal | Montréal | 98 | 0 | 2026-08-27 15:08 | OK (142 trouvés) | | |
| 53 | +| `classeauto` | Classe Auto | Montréal | Montréal | 96 | 0 | 2026-08-28 21:32 | OK (147 trouvés) | | |
| 54 | 54 | |
| 55 | 55 | ## Erreurs de synchronisation récentes |
| 56 | 56 | |
modified
docs/connecteurs/clubautozone.md
+3 −3
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/clubautozone.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 57 | |
| 9 | +- **Annonces actives (BD)** : 56 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : API JSON interne, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : aucun |
@@ -24,7 +24,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 24 | 24 | > (l'API VMS directe répond 403 ; le proxy du site est la voie officielle). |
| 25 | 25 | > Réponse JSON riche : prix, km, VIN, moteur, couleurs, URL VDP… 30/page. |
| 26 | 26 | |
| 27 | −## Complétude des champs (annonces actives, N = 57) | |
| 27 | +## Complétude des champs (annonces actives, N = 56) | |
| 28 | 28 | |
| 29 | 29 | | Champ | % rempli | |
| 30 | 30 | |---|---| |
@@ -44,7 +44,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 44 | 44 | |
| 45 | 45 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 46 | 46 | |---|---|---|---|---|---|---|---| |
| 47 | −| `clubautozone` | Club Auto Zone | Longueuil | Montérégie | 57 | 0 | 2026-08-27 15:08 | OK (57 trouvés) | | |
| 47 | +| `clubautozone` | Club Auto Zone | Longueuil | Montérégie | 56 | 0 | 2026-08-28 21:32 | OK (56 trouvés) | | |
| 48 | 48 | |
| 49 | 49 | ## Erreurs de synchronisation récentes |
| 50 | 50 | |
modified
docs/connecteurs/convertus_fc.md
+5 −5
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/convertus_fc.py` |
| 8 | 8 | - **Sources membres** : 3 |
| 9 | −- **Annonces actives (BD)** : 323 | |
| 9 | +- **Annonces actives (BD)** : 316 | |
| 10 | 10 | - **Backend de fetch** : Firecrawl (contournement Cloudflare / rendu JS) |
| 11 | 11 | - **Mécanique détectée** : API JSON interne |
| 12 | 12 | - **Plafonds / cache** : aucun |
@@ -22,7 +22,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 22 | 22 | > par Firecrawl pour franchir Cloudflare. Le JSON revient enveloppé dans |
| 23 | 23 | > un <body> HTML — on l'extrait puis on réutilise le parseur VMS. |
| 24 | 24 | |
| 25 | −## Complétude des champs (annonces actives, N = 323) | |
| 25 | +## Complétude des champs (annonces actives, N = 316) | |
| 26 | 26 | |
| 27 | 27 | | Champ | % rempli | |
| 28 | 28 | |---|---| |
@@ -42,9 +42,9 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 42 | 42 | |
| 43 | 43 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 44 | 44 | |---|---|---|---|---|---|---|---| |
| 45 | −| `autoflash` | AutoFlash | Saint-Hubert | Montérégie | 154 | 0 | 2026-08-27 15:08 | OK (149 trouvés) | | |
| 46 | −| `bernieresauto` | Bernières Auto | Saint-Nicolas | Chaudière-Appalaches | 69 | 0 | 2026-08-27 15:08 | OK (67 trouvés) | | |
| 47 | −| `complexeautoplus` | Complexe Auto Plus | Saint-Jérôme | Laurentides | 100 | 0 | 2026-08-27 15:08 | OK (100 trouvés) | | |
| 45 | +| `autoflash` | AutoFlash | Saint-Hubert | Montérégie | 145 | 0 | 2026-08-28 21:33 | OK (145 trouvés) | | |
| 46 | +| `bernieresauto` | Bernières Auto | Saint-Nicolas | Chaudière-Appalaches | 71 | 0 | 2026-08-28 21:32 | OK (71 trouvés) | | |
| 47 | +| `complexeautoplus` | Complexe Auto Plus | Saint-Jérôme | Laurentides | 100 | 0 | 2026-08-28 21:33 | OK (100 trouvés) | | |
| 48 | 48 | |
| 49 | 49 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 50 | 50 | |
modified
docs/connecteurs/d2c_dealers.md
+68 −68
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/d2c_dealers.py` |
| 8 | 8 | - **Sources membres** : 65 |
| 9 | −- **Annonces actives (BD)** : 5192 | |
| 9 | +- **Annonces actives (BD)** : 5220 | |
| 10 | 10 | - **Backend de fetch** : requests direct — Firecrawl par source au besoin (`use_firecrawl`, sites derrière Cloudflare) |
| 11 | 11 | - **Mécanique détectée** : sitemap, JSON-LD schema.org, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, cache détail BD (detail_cache) |
@@ -40,7 +40,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 40 | 40 | > Le lastmod du sitemap est bumpé quotidiennement par D2C (inutilisable |
| 41 | 41 | > comme clé de cache) — d'où la clé temporelle hebdomadaire. |
| 42 | 42 | |
| 43 | −## Complétude des champs (annonces actives, N = 5 192) | |
| 43 | +## Complétude des champs (annonces actives, N = 5 220) | |
| 44 | 44 | |
| 45 | 45 | | Champ | % rempli | |
| 46 | 46 | |---|---| |
@@ -53,78 +53,78 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 53 | 53 | | Boîte (transmission) | 99.8 % | |
| 54 | 54 | | VIN | 98.7 % | |
| 55 | 55 | | Photos | 99.5 % | |
| 56 | −| Carfax | 34.6 % | | |
| 56 | +| Carfax | 35.0 % | | |
| 57 | 57 | | GPS (lat/lng) | 100.0 % | |
| 58 | 58 | |
| 59 | 59 | ## Sources membres (BD live) |
| 60 | 60 | |
| 61 | 61 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 62 | 62 | |---|---|---|---|---|---|---|---| |
| 63 | −| `abitibiautocredit` | Abitibi Auto Crédit | Rouyn-Noranda | Abitibi-Témiscamingue | 93 | 87 | 2026-08-27 15:08 | OK (93 trouvés) | | |
| 64 | −| `almahonda` | Alma Honda | Alma | Saguenay–Lac-Saint-Jean | 30 | 0 | 2026-08-27 15:08 | OK (30 trouvés) | | |
| 65 | −| `autoquebeclevis` | AutoQuébec Occasion Lévis | Lévis | Chaudière-Appalaches | 74 | 0 | 2026-08-27 15:08 | OK (74 trouvés) | | |
| 66 | −| `autoquebectm` | AutoQuébec Occasion Thetford Mines | Thetford Mines | Chaudière-Appalaches | 38 | 0 | 2026-08-27 15:08 | OK (38 trouvés) | | |
| 67 | −| `autosevasion` | Autos Évasion | Sherbrooke | Estrie | 51 | 0 | 2026-08-27 15:08 | OK (51 trouvés) | | |
| 68 | −| `autosoccasionld` | Autos Occasion LD | Lévis | Chaudière-Appalaches | 170 | 0 | 2026-08-27 15:08 | OK (170 trouvés) | | |
| 69 | −| `autosthubert` | Auto St-Hubert | Saint-Hubert | Montérégie | 135 | 0 | 2026-08-27 15:08 | OK (135 trouvés) | | |
| 70 | −| `autovilleneuve` | Automobile Villeneuve Amqui | Amqui | Bas-Saint-Laurent | 5 | 0 | 2026-08-27 15:09 | OK (5 trouvés) | | |
| 71 | −| `berniercrepeau` | Bernier Crépeau | Trois-Rivières | Mauricie | 25 | 0 | 2026-08-27 15:08 | OK (25 trouvés) | | |
| 72 | −| `charlesbourgtoyota` | Charlesbourg Toyota | Québec | Capitale-Nationale | 100 | 0 | 2026-08-27 15:08 | OK (100 trouvés) | | |
| 73 | −| `charlevoixtoyota` | Charlevoix Toyota | La Malbaie | Capitale-Nationale | 56 | 0 | 2026-08-27 15:09 | OK (56 trouvés) | | |
| 74 | −| `chomedeytoyota` | Chomedey Toyota Laval | Laval | Laval | 61 | 0 | 2026-08-27 15:08 | OK (61 trouvés) | | |
| 75 | −| `drummondvilleford` | Drummondville Ford | Drummondville | Centre-du-Québec | 52 | 0 | 2026-08-27 15:08 | OK (52 trouvés) | | |
| 76 | −| `drummondvillevw` | Drummondville Volkswagen | Drummondville | Centre-du-Québec | 96 | 0 | 2026-08-27 15:08 | OK (96 trouvés) | | |
| 77 | −| `dubechrysler` | Dubé Chrysler | Rivière-du-Loup | Bas-Saint-Laurent | 159 | 0 | 2026-08-27 15:08 | OK (159 trouvés) | | |
| 78 | −| `ducloslongueuil` | Duclos Longueuil Chrysler | Longueuil | Montérégie | 81 | 0 | 2026-08-27 15:08 | OK (81 trouvés) | | |
| 79 | −| `dupontautomobile` | Dupont Automobile | Alma | Saguenay–Lac-Saint-Jean | 54 | 0 | 2026-08-27 15:08 | OK (54 trouvés) | | |
| 80 | −| `dynastiehyundai` | Dynastie Hyundai | Rouyn-Noranda | Abitibi-Témiscamingue | 30 | 28 | 2026-08-27 15:08 | OK (29 trouvés) | | |
| 81 | −| `equipeformule` | Équipe Formule | Rimouski | Bas-Saint-Laurent | 69 | 0 | 2026-08-27 15:08 | OK (69 trouvés) | | |
| 82 | −| `fichaultkia` | Fichault Kia | Châteauguay | Montérégie | 37 | 0 | 2026-08-27 15:08 | OK (37 trouvés) | | |
| 83 | −| `forceoccasion` | Force Occasion | Québec | Capitale-Nationale | 493 | 0 | 2026-08-27 15:08 | OK (493 trouvés) | | |
| 84 | −| `fordthetford` | Ford Thetford | Thetford Mines | Chaudière-Appalaches | 36 | 0 | 2026-08-27 15:08 | OK (36 trouvés) | | |
| 85 | −| `gaspesiehyundai` | Gaspésie Hyundai | Bonaventure | Gaspésie–Îles-de-la-Madeleine | 36 | 20 | 2026-08-27 15:08 | OK (35 trouvés) | | |
| 86 | −| `gaspetoyota` | Gaspé Toyota | Gaspé | Gaspésie–Îles-de-la-Madeleine | 11 | 0 | 2026-08-27 15:08 | OK (11 trouvés) | | |
| 87 | −| `gervaisauto` | Gervais Auto | Shawinigan | Mauricie | 554 | 0 | 2026-08-27 15:08 | OK (554 trouvés) | | |
| 88 | −| `girardautos` | Girard Autos | Trois-Rivières | Mauricie | 19 | 0 | 2026-08-27 15:08 | OK (19 trouvés) | | |
| 89 | −| `granbytoyota` | Granby Toyota | Granby | Montérégie | 20 | 0 | 2026-08-27 15:08 | OK (20 trouvés) | | |
| 90 | −| `grandportage` | Groupe Grand-Portage | Rivière-du-Loup | Bas-Saint-Laurent | 100 | 0 | 2026-08-27 15:08 | OK (100 trouvés) | | |
| 91 | −| `groupemotion` | Groupe Motion | Longueuil | Montérégie | 85 | 0 | 2026-08-27 15:08 | OK (85 trouvés) | | |
| 92 | −| `hondacharlesbourg` | Honda Charlesbourg | Québec | Capitale-Nationale | 13 | 0 | 2026-08-27 15:08 | OK (13 trouvés) | | |
| 93 | −| `hondacharlevoix` | Honda Charlevoix | La Malbaie | Capitale-Nationale | 35 | 0 | 2026-08-27 15:08 | OK (35 trouvés) | | |
| 94 | −| `hondanewrichmond` | Honda New Richmond | New Richmond | Gaspésie–Îles-de-la-Madeleine | 62 | 0 | 2026-08-27 15:08 | OK (62 trouvés) | | |
| 95 | −| `hullhyundai` | Hull Hyundai | Gatineau | Outaouais | 103 | 0 | 2026-08-27 15:08 | OK (103 trouvés) | | |
| 96 | −| `hyundaibeauce` | Hyundai Beauce | Saint-Georges | Chaudière-Appalaches | 29 | 0 | 2026-08-27 15:08 | OK (29 trouvés) | | |
| 97 | −| `hyundaicharlevoix` | Hyundai Charlevoix | Baie-Saint-Paul | Capitale-Nationale | 21 | 0 | 2026-08-27 15:09 | OK (21 trouvés) | | |
| 98 | −| `hyundaidrummondville` | Hyundai Drummondville | Drummondville | Centre-du-Québec | 91 | 0 | 2026-08-27 15:08 | OK (91 trouvés) | | |
| 99 | −| `hyundailanaudiere` | Hyundai Lanaudière | Joliette | Lanaudière | 61 | 0 | 2026-08-27 15:08 | OK (61 trouvés) | | |
| 100 | −| `hyundailongueuil` | Hyundai Longueuil | Longueuil | Montérégie | 19 | 0 | 2026-08-27 15:08 | OK (19 trouvés) | | |
| 101 | −| `hyundaistjerome` | Hyundai St-Jérôme | Mirabel | Laurentides | 124 | 0 | 2026-08-27 15:08 | OK (123 trouvés) | | |
| 102 | −| `jeandumas` | Jean Dumas Multiconcessionnaire | Alma | Saguenay–Lac-Saint-Jean | 110 | 110 | 2026-08-27 15:08 | OK (110 trouvés) | | |
| 103 | −| `jeandumasfordbc` | Jean Dumas Ford Baie-Comeau | Baie-Comeau | Côte-Nord | 110 | 85 | 2026-08-27 15:08 | OK (110 trouvés) | | |
| 104 | −| `jeandumashondabc` | Jean Dumas Honda Baie-Comeau | Baie-Comeau | Côte-Nord | 110 | 25 | 2026-08-27 15:08 | OK (110 trouvés) | | |
| 105 | −| `joliettemitsubishi` | Joliette Mitsubishi | Joliette | Lanaudière | 80 | 0 | 2026-08-27 15:08 | OK (80 trouvés) | | |
| 106 | −| `kiabeauport` | Kia Beauport | Québec | Capitale-Nationale | 73 | 0 | 2026-08-27 15:08 | OK (73 trouvés) | | |
| 107 | −| `kiajoliette` | Kia Joliette | Joliette | Lanaudière | 56 | 0 | 2026-08-27 15:08 | OK (56 trouvés) | | |
| 108 | −| `lamihonda` | L'Ami Honda | Rouyn-Noranda | Abitibi-Témiscamingue | 93 | 0 | 2026-08-27 15:08 | OK (93 trouvés) | | |
| 109 | −| `leoautomobile` | Léo Automobile | Chicoutimi | Saguenay–Lac-Saint-Jean | 58 | 0 | 2026-08-27 15:08 | OK (58 trouvés) | | |
| 110 | −| `levisautos` | Lévis Autos | Lévis | Chaudière-Appalaches | 84 | 0 | 2026-08-27 15:08 | OK (84 trouvés) | | |
| 111 | −| `levistoyota` | Lévis Toyota | Lévis | Chaudière-Appalaches | 42 | 0 | 2026-08-27 15:08 | OK (42 trouvés) | | |
| 112 | −| `longueuilhonda` | Longueuil Honda | Longueuil | Montérégie | 43 | 0 | 2026-08-27 15:08 | OK (43 trouvés) | | |
| 113 | −| `mferlandauto` | M. Ferland Auto | Sherbrooke | Estrie | 17 | 0 | 2026-08-27 15:08 | OK (17 trouvés) | | |
| 114 | −| `nicoloccasion` | Nicol Occasion | La Sarre | Abitibi-Témiscamingue | 69 | 0 | 2026-08-27 15:08 | OK (69 trouvés) | | |
| 115 | −| `olivierchryslerbc` | Olivier Chrysler Baie-Comeau | Baie-Comeau | Côte-Nord | 29 | 0 | 2026-08-27 15:08 | OK (29 trouvés) | | |
| 116 | −| `olivierhyundaibc` | Olivier Hyundai Baie-Comeau | Baie-Comeau | Côte-Nord | 19 | 0 | 2026-08-27 15:08 | OK (19 trouvés) | | |
| 117 | −| `olivieroccasionseptiles` | Olivier Occasion Sept-Îles | Sept-Îles | Côte-Nord | 89 | 0 | 2026-08-27 15:08 | OK (89 trouvés) | | |
| 118 | −| `poirieroccasion` | Poirier Occasion | Val-d'Or | Abitibi-Témiscamingue | 231 | 0 | 2026-08-27 15:08 | OK (231 trouvés) | | |
| 119 | −| `sherbrookeautooccasion` | Sherbrooke Auto Occasion | Sherbrooke | Estrie | 83 | 0 | 2026-08-27 15:08 | OK (83 trouvés) | | |
| 120 | −| `stgeorgesgm` | St-Georges Chevrolet Buick GMC | Saint-Georges | Chaudière-Appalaches | 29 | 0 | 2026-08-27 15:08 | OK (29 trouvés) | | |
| 121 | −| `stjeromemitsubishi` | St-Jérôme Mitsubishi | Saint-Jérôme | Laurentides | 144 | 0 | 2026-08-27 15:08 | OK (144 trouvés) | | |
| 122 | −| `subaruvictoriaville` | Subaru Victoriaville | Victoriaville | Centre-du-Québec | 36 | 0 | 2026-08-27 15:08 | OK (36 trouvés) | | |
| 123 | −| `toyotabdc` | Toyota Baie des Chaleurs | Caplan | Gaspésie–Îles-de-la-Madeleine | 36 | 14 | 2026-08-27 15:08 | OK (36 trouvés) | | |
| 124 | −| `troisriviereshonda` | Trois-Rivières Honda | Trois-Rivières | Mauricie | 66 | 0 | 2026-08-27 15:08 | OK (66 trouvés) | | |
| 125 | −| `trtoyota` | Trois-Rivières Toyota | Trois-Rivières | Mauricie | 51 | 0 | 2026-08-27 15:08 | OK (51 trouvés) | | |
| 126 | −| `vaudreuilvw` | Vaudreuil Volkswagen | Vaudreuil-Dorion | Montérégie | 40 | 0 | 2026-08-27 15:08 | OK (40 trouvés) | | |
| 127 | −| `vwsherbrooke` | VW Sherbrooke | Sherbrooke | Estrie | 66 | 0 | 2026-08-27 15:08 | OK (66 trouvés) | | |
| 63 | +| `abitibiautocredit` | Abitibi Auto Crédit | Rouyn-Noranda | Abitibi-Témiscamingue | 91 | 85 | 2026-08-28 21:33 | OK (91 trouvés) | | |
| 64 | +| `almahonda` | Alma Honda | Alma | Saguenay–Lac-Saint-Jean | 33 | 0 | 2026-08-28 21:33 | OK (33 trouvés) | | |
| 65 | +| `autoquebeclevis` | AutoQuébec Occasion Lévis | Lévis | Chaudière-Appalaches | 75 | 0 | 2026-08-28 21:33 | OK (75 trouvés) | | |
| 66 | +| `autoquebectm` | AutoQuébec Occasion Thetford Mines | Thetford Mines | Chaudière-Appalaches | 40 | 0 | 2026-08-28 21:33 | OK (40 trouvés) | | |
| 67 | +| `autosevasion` | Autos Évasion | Sherbrooke | Estrie | 52 | 0 | 2026-08-28 21:33 | OK (52 trouvés) | | |
| 68 | +| `autosoccasionld` | Autos Occasion LD | Lévis | Chaudière-Appalaches | 156 | 0 | 2026-08-28 21:33 | OK (156 trouvés) | | |
| 69 | +| `autosthubert` | Auto St-Hubert | Saint-Hubert | Montérégie | 139 | 0 | 2026-08-28 21:33 | OK (139 trouvés) | | |
| 70 | +| `autovilleneuve` | Automobile Villeneuve Amqui | Amqui | Bas-Saint-Laurent | 6 | 0 | 2026-08-28 21:33 | OK (6 trouvés) | | |
| 71 | +| `berniercrepeau` | Bernier Crépeau | Trois-Rivières | Mauricie | 27 | 0 | 2026-08-28 21:33 | OK (27 trouvés) | | |
| 72 | +| `charlesbourgtoyota` | Charlesbourg Toyota | Québec | Capitale-Nationale | 99 | 0 | 2026-08-28 21:33 | OK (99 trouvés) | | |
| 73 | +| `charlevoixtoyota` | Charlevoix Toyota | La Malbaie | Capitale-Nationale | 57 | 0 | 2026-08-28 21:33 | OK (57 trouvés) | | |
| 74 | +| `chomedeytoyota` | Chomedey Toyota Laval | Laval | Laval | 63 | 0 | 2026-08-28 21:33 | OK (63 trouvés) | | |
| 75 | +| `drummondvilleford` | Drummondville Ford | Drummondville | Centre-du-Québec | 53 | 0 | 2026-08-28 21:33 | OK (53 trouvés) | | |
| 76 | +| `drummondvillevw` | Drummondville Volkswagen | Drummondville | Centre-du-Québec | 96 | 0 | 2026-08-28 21:33 | OK (96 trouvés) | | |
| 77 | +| `dubechrysler` | Dubé Chrysler | Rivière-du-Loup | Bas-Saint-Laurent | 167 | 0 | 2026-08-28 21:33 | OK (167 trouvés) | | |
| 78 | +| `ducloslongueuil` | Duclos Longueuil Chrysler | Longueuil | Montérégie | 80 | 0 | 2026-08-28 21:33 | OK (80 trouvés) | | |
| 79 | +| `dupontautomobile` | Dupont Automobile | Alma | Saguenay–Lac-Saint-Jean | 56 | 0 | 2026-08-28 21:33 | OK (56 trouvés) | | |
| 80 | +| `dynastiehyundai` | Dynastie Hyundai | Rouyn-Noranda | Abitibi-Témiscamingue | 29 | 27 | 2026-08-28 21:33 | OK (29 trouvés) | | |
| 81 | +| `equipeformule` | Équipe Formule | Rimouski | Bas-Saint-Laurent | 68 | 0 | 2026-08-28 21:33 | OK (68 trouvés) | | |
| 82 | +| `fichaultkia` | Fichault Kia | Châteauguay | Montérégie | 42 | 0 | 2026-08-28 21:33 | OK (42 trouvés) | | |
| 83 | +| `forceoccasion` | Force Occasion | Québec | Capitale-Nationale | 492 | 0 | 2026-08-28 21:33 | OK (492 trouvés) | | |
| 84 | +| `fordthetford` | Ford Thetford | Thetford Mines | Chaudière-Appalaches | 36 | 0 | 2026-08-28 21:33 | OK (36 trouvés) | | |
| 85 | +| `gaspesiehyundai` | Gaspésie Hyundai | Bonaventure | Gaspésie–Îles-de-la-Madeleine | 35 | 21 | 2026-08-28 21:33 | OK (35 trouvés) | | |
| 86 | +| `gaspetoyota` | Gaspé Toyota | Gaspé | Gaspésie–Îles-de-la-Madeleine | 11 | 0 | 2026-08-28 21:33 | OK (11 trouvés) | | |
| 87 | +| `gervaisauto` | Gervais Auto | Shawinigan | Mauricie | 552 | 0 | 2026-08-28 21:33 | OK (552 trouvés) | | |
| 88 | +| `girardautos` | Girard Autos | Trois-Rivières | Mauricie | 19 | 0 | 2026-08-28 21:33 | OK (19 trouvés) | | |
| 89 | +| `granbytoyota` | Granby Toyota | Granby | Montérégie | 21 | 0 | 2026-08-28 21:33 | OK (21 trouvés) | | |
| 90 | +| `grandportage` | Groupe Grand-Portage | Rivière-du-Loup | Bas-Saint-Laurent | 106 | 0 | 2026-08-28 21:33 | OK (106 trouvés) | | |
| 91 | +| `groupemotion` | Groupe Motion | Longueuil | Montérégie | 90 | 0 | 2026-08-28 21:33 | OK (90 trouvés) | | |
| 92 | +| `hondacharlesbourg` | Honda Charlesbourg | Québec | Capitale-Nationale | 11 | 0 | 2026-08-28 21:33 | OK (11 trouvés) | | |
| 93 | +| `hondacharlevoix` | Honda Charlevoix | La Malbaie | Capitale-Nationale | 34 | 0 | 2026-08-28 21:33 | OK (34 trouvés) | | |
| 94 | +| `hondanewrichmond` | Honda New Richmond | New Richmond | Gaspésie–Îles-de-la-Madeleine | 63 | 0 | 2026-08-28 21:33 | OK (63 trouvés) | | |
| 95 | +| `hullhyundai` | Hull Hyundai | Gatineau | Outaouais | 102 | 0 | 2026-08-28 21:33 | OK (102 trouvés) | | |
| 96 | +| `hyundaibeauce` | Hyundai Beauce | Saint-Georges | Chaudière-Appalaches | 29 | 0 | 2026-08-28 21:33 | OK (29 trouvés) | | |
| 97 | +| `hyundaicharlevoix` | Hyundai Charlevoix | Baie-Saint-Paul | Capitale-Nationale | 21 | 0 | 2026-08-28 21:33 | OK (21 trouvés) | | |
| 98 | +| `hyundaidrummondville` | Hyundai Drummondville | Drummondville | Centre-du-Québec | 95 | 0 | 2026-08-28 21:33 | OK (95 trouvés) | | |
| 99 | +| `hyundailanaudiere` | Hyundai Lanaudière | Joliette | Lanaudière | 62 | 0 | 2026-08-28 21:33 | OK (62 trouvés) | | |
| 100 | +| `hyundailongueuil` | Hyundai Longueuil | Longueuil | Montérégie | 18 | 0 | 2026-08-28 21:33 | OK (18 trouvés) | | |
| 101 | +| `hyundaistjerome` | Hyundai St-Jérôme | Mirabel | Laurentides | 120 | 0 | 2026-08-28 21:33 | OK (120 trouvés) | | |
| 102 | +| `jeandumas` | Jean Dumas Multiconcessionnaire | Alma | Saguenay–Lac-Saint-Jean | 108 | 108 | 2026-08-28 21:33 | OK (108 trouvés) | | |
| 103 | +| `jeandumasfordbc` | Jean Dumas Ford Baie-Comeau | Baie-Comeau | Côte-Nord | 108 | 82 | 2026-08-28 21:33 | OK (108 trouvés) | | |
| 104 | +| `jeandumashondabc` | Jean Dumas Honda Baie-Comeau | Baie-Comeau | Côte-Nord | 108 | 26 | 2026-08-28 21:33 | OK (108 trouvés) | | |
| 105 | +| `joliettemitsubishi` | Joliette Mitsubishi | Joliette | Lanaudière | 80 | 0 | 2026-08-28 21:33 | OK (80 trouvés) | | |
| 106 | +| `kiabeauport` | Kia Beauport | Québec | Capitale-Nationale | 72 | 0 | 2026-08-28 21:33 | OK (72 trouvés) | | |
| 107 | +| `kiajoliette` | Kia Joliette | Joliette | Lanaudière | 59 | 0 | 2026-08-28 21:33 | OK (59 trouvés) | | |
| 108 | +| `lamihonda` | L'Ami Honda | Rouyn-Noranda | Abitibi-Témiscamingue | 91 | 0 | 2026-08-28 21:33 | OK (91 trouvés) | | |
| 109 | +| `leoautomobile` | Léo Automobile | Chicoutimi | Saguenay–Lac-Saint-Jean | 57 | 0 | 2026-08-28 21:33 | OK (57 trouvés) | | |
| 110 | +| `levisautos` | Lévis Autos | Lévis | Chaudière-Appalaches | 82 | 0 | 2026-08-28 21:33 | OK (82 trouvés) | | |
| 111 | +| `levistoyota` | Lévis Toyota | Lévis | Chaudière-Appalaches | 43 | 0 | 2026-08-28 21:33 | OK (43 trouvés) | | |
| 112 | +| `longueuilhonda` | Longueuil Honda | Longueuil | Montérégie | 45 | 0 | 2026-08-28 21:33 | OK (45 trouvés) | | |
| 113 | +| `mferlandauto` | M. Ferland Auto | Sherbrooke | Estrie | 16 | 0 | 2026-08-28 21:33 | OK (16 trouvés) | | |
| 114 | +| `nicoloccasion` | Nicol Occasion | La Sarre | Abitibi-Témiscamingue | 69 | 0 | 2026-08-28 21:33 | OK (69 trouvés) | | |
| 115 | +| `olivierchryslerbc` | Olivier Chrysler Baie-Comeau | Baie-Comeau | Côte-Nord | 28 | 0 | 2026-08-28 21:33 | OK (28 trouvés) | | |
| 116 | +| `olivierhyundaibc` | Olivier Hyundai Baie-Comeau | Baie-Comeau | Côte-Nord | 20 | 0 | 2026-08-28 21:33 | OK (20 trouvés) | | |
| 117 | +| `olivieroccasionseptiles` | Olivier Occasion Sept-Îles | Sept-Îles | Côte-Nord | 97 | 0 | 2026-08-28 21:33 | OK (97 trouvés) | | |
| 118 | +| `poirieroccasion` | Poirier Occasion | Val-d'Or | Abitibi-Témiscamingue | 231 | 1 | 2026-08-28 21:33 | OK (231 trouvés) | | |
| 119 | +| `sherbrookeautooccasion` | Sherbrooke Auto Occasion | Sherbrooke | Estrie | 81 | 0 | 2026-08-28 21:33 | OK (81 trouvés) | | |
| 120 | +| `stgeorgesgm` | St-Georges Chevrolet Buick GMC | Saint-Georges | Chaudière-Appalaches | 31 | 0 | 2026-08-28 21:33 | OK (31 trouvés) | | |
| 121 | +| `stjeromemitsubishi` | St-Jérôme Mitsubishi | Saint-Jérôme | Laurentides | 146 | 1 | 2026-08-28 21:33 | OK (146 trouvés) | | |
| 122 | +| `subaruvictoriaville` | Subaru Victoriaville | Victoriaville | Centre-du-Québec | 39 | 0 | 2026-08-28 21:33 | OK (39 trouvés) | | |
| 123 | +| `toyotabdc` | Toyota Baie des Chaleurs | Caplan | Gaspésie–Îles-de-la-Madeleine | 36 | 14 | 2026-08-28 21:33 | OK (36 trouvés) | | |
| 124 | +| `troisriviereshonda` | Trois-Rivières Honda | Trois-Rivières | Mauricie | 67 | 0 | 2026-08-28 21:33 | OK (67 trouvés) | | |
| 125 | +| `trtoyota` | Trois-Rivières Toyota | Trois-Rivières | Mauricie | 50 | 0 | 2026-08-28 21:33 | OK (50 trouvés) | | |
| 126 | +| `vaudreuilvw` | Vaudreuil Volkswagen | Vaudreuil-Dorion | Montérégie | 40 | 0 | 2026-08-28 21:33 | OK (40 trouvés) | | |
| 127 | +| `vwsherbrooke` | VW Sherbrooke | Sherbrooke | Estrie | 70 | 0 | 2026-08-28 21:33 | OK (70 trouvés) | | |
| 128 | 128 | |
| 129 | 129 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 130 | 130 | |
modified
docs/connecteurs/desmeules.md
+7 −7
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/desmeules.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 261 | |
| 9 | +- **Annonces actives (BD)** : 277 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : flux RSS, microdata schema.org |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, cache détail BD (detail_cache) |
@@ -35,16 +35,16 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 35 | 35 | > changent pas ; le prix frais vient du RSS). AUTOKA_MAX_DETAILS (env) |
| 36 | 36 | > plafonne les vraies requêtes détail par synchronisation. |
| 37 | 37 | |
| 38 | −## Complétude des champs (annonces actives, N = 261) | |
| 38 | +## Complétude des champs (annonces actives, N = 277) | |
| 39 | 39 | |
| 40 | 40 | | Champ | % rempli | |
| 41 | 41 | |---|---| |
| 42 | −| Marque | 99.2 % | | |
| 42 | +| Marque | 99.3 % | | |
| 43 | 43 | | Modèle | 100.0 % | |
| 44 | 44 | | Année | 100.0 % | |
| 45 | −| Kilométrage | 99.2 % | | |
| 46 | −| Prix | 99.2 % | | |
| 47 | −| Carburant | 83.5 % | | |
| 45 | +| Kilométrage | 99.3 % | | |
| 46 | +| Prix | 98.6 % | | |
| 47 | +| Carburant | 84.5 % | | |
| 48 | 48 | | Boîte (transmission) | 98.9 % | |
| 49 | 49 | | VIN | 99.6 % | |
| 50 | 50 | | Photos | 100.0 % | |
@@ -55,7 +55,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 55 | 55 | |
| 56 | 56 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 57 | 57 | |---|---|---|---|---|---|---|---| |
| 58 | −| `desmeules` | Desmeules Chrysler | Laval | Laval | 261 | 0 | 2026-08-27 15:09 | OK (260 trouvés) | | |
| 58 | +| `desmeules` | Desmeules Chrysler | Laval | Laval | 277 | 0 | 2026-08-28 21:33 | OK (277 trouvés) | | |
| 59 | 59 | |
| 60 | 60 | ## Erreurs de synchronisation récentes |
| 61 | 61 | |
modified
docs/connecteurs/dupontford.md
+5 −5
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/dupontford.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 66 | |
| 9 | +- **Annonces actives (BD)** : 60 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : sitemap, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : cache détail BD (detail_cache) |
@@ -28,7 +28,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 28 | 28 | > URL détail reconstruite comme dans le sitemap inventory.xml : |
| 29 | 29 | > /vue/used-<année>-<marque>-<modèle>-<id>/. |
| 30 | 30 | |
| 31 | −## Complétude des champs (annonces actives, N = 66) | |
| 31 | +## Complétude des champs (annonces actives, N = 60) | |
| 32 | 32 | |
| 33 | 33 | | Champ | % rempli | |
| 34 | 34 | |---|---| |
@@ -36,11 +36,11 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 36 | 36 | | Modèle | 100.0 % | |
| 37 | 37 | | Année | 100.0 % | |
| 38 | 38 | | Kilométrage | 100.0 % | |
| 39 | −| Prix | 100.0 % | | |
| 39 | +| Prix | 98.3 % | | |
| 40 | 40 | | Carburant | 100.0 % | |
| 41 | 41 | | Boîte (transmission) | 100.0 % | |
| 42 | 42 | | VIN | 100.0 % | |
| 43 | −| Photos | 97.0 % | | |
| 43 | +| Photos | 96.7 % | | |
| 44 | 44 | | Carfax | 0.0 % | |
| 45 | 45 | | GPS (lat/lng) | 100.0 % | |
| 46 | 46 | |
@@ -48,7 +48,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 48 | 48 | |
| 49 | 49 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 50 | 50 | |---|---|---|---|---|---|---|---| |
| 51 | −| `dupontdupontford` | Dupont & Dupont Ford | Gatineau | Outaouais | 66 | 0 | 2026-08-27 15:09 | OK (63 trouvés) | | |
| 51 | +| `dupontdupontford` | Dupont & Dupont Ford | Gatineau | Outaouais | 60 | 0 | 2026-08-28 21:33 | OK (60 trouvés) | | |
| 52 | 52 | |
| 53 | 53 | ## Erreurs de synchronisation récentes |
| 54 | 54 | |
modified
docs/connecteurs/gatsby_dealers.md
+9 −9
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/gatsby_dealers.py` |
| 8 | 8 | - **Sources membres** : 6 |
| 9 | −- **Annonces actives (BD)** : 205 | |
| 9 | +- **Annonces actives (BD)** : 207 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : sitemap, GraphQL, AWS AppSync, page-data Gatsby, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES |
@@ -34,7 +34,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 34 | 34 | > usedCar -> Vehicle) est hérité de MegaCentreDeLiquidation. |
| 35 | 35 | > AUTOKA_MAX_PAGES (env) limite la pagination AppSync pour les tests. |
| 36 | 36 | |
| 37 | −## Complétude des champs (annonces actives, N = 205) | |
| 37 | +## Complétude des champs (annonces actives, N = 207) | |
| 38 | 38 | |
| 39 | 39 | | Champ | % rempli | |
| 40 | 40 | |---|---| |
@@ -43,7 +43,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 43 | 43 | | Année | 100.0 % | |
| 44 | 44 | | Kilométrage | 100.0 % | |
| 45 | 45 | | Prix | 100.0 % | |
| 46 | −| Carburant | 100.0 % | | |
| 46 | +| Carburant | 99.5 % | | |
| 47 | 47 | | Boîte (transmission) | 100.0 % | |
| 48 | 48 | | VIN | 100.0 % | |
| 49 | 49 | | Photos | 100.0 % | |
@@ -54,12 +54,12 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 54 | 54 | |
| 55 | 55 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 56 | 56 | |---|---|---|---|---|---|---|---| |
| 57 | −| `kiadrummondville` | Kia Drummondville | Drummondville | Centre-du-Québec | 19 | 0 | 2026-08-27 15:09 | OK (19 trouvés) | | |
| 58 | −| `kiagranby` | Kia de Granby | Granby | Montérégie | 19 | 0 | 2026-08-27 15:09 | OK (19 trouvés) | | |
| 59 | −| `mazdadesherbrooke` | Mazda de Sherbrooke | Sherbrooke | Estrie | 54 | 0 | 2026-08-27 15:09 | OK (52 trouvés) | | |
| 60 | −| `mitsubishidrummondville` | Mitsubishi Drummondville | Drummondville | Centre-du-Québec | 16 | 0 | 2026-08-27 15:09 | OK (16 trouvés) | | |
| 61 | −| `nissandrummondville` | Nissan Drummondville | Drummondville | Centre-du-Québec | 51 | 0 | 2026-08-27 15:09 | OK (51 trouvés) | | |
| 62 | −| `nissanvictoriaville` | Nissan de Victoriaville | Victoriaville | Centre-du-Québec | 46 | 0 | 2026-08-27 15:09 | OK (46 trouvés) | | |
| 57 | +| `kiadrummondville` | Kia Drummondville | Drummondville | Centre-du-Québec | 19 | 0 | 2026-08-28 21:33 | OK (19 trouvés) | | |
| 58 | +| `kiagranby` | Kia de Granby | Granby | Montérégie | 22 | 0 | 2026-08-28 21:33 | OK (22 trouvés) | | |
| 59 | +| `mazdadesherbrooke` | Mazda de Sherbrooke | Sherbrooke | Estrie | 56 | 0 | 2026-08-28 21:33 | OK (56 trouvés) | | |
| 60 | +| `mitsubishidrummondville` | Mitsubishi Drummondville | Drummondville | Centre-du-Québec | 15 | 0 | 2026-08-28 21:33 | OK (15 trouvés) | | |
| 61 | +| `nissandrummondville` | Nissan Drummondville | Drummondville | Centre-du-Québec | 51 | 0 | 2026-08-28 21:33 | OK (51 trouvés) | | |
| 62 | +| `nissanvictoriaville` | Nissan de Victoriaville | Victoriaville | Centre-du-Québec | 44 | 0 | 2026-08-28 21:33 | OK (44 trouvés) | | |
| 63 | 63 | |
| 64 | 64 | ## Erreurs de synchronisation récentes |
| 65 | 65 | |
modified
docs/connecteurs/hgregoire.md
+3 −3
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/hgregoire.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 1751 | |
| 9 | +- **Annonces actives (BD)** : 1763 | |
| 10 | 10 | - **Backend de fetch** : Scrapfly |
| 11 | 11 | - **Mécanique détectée** : blob JSON data-class |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache) |
@@ -45,7 +45,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 45 | 45 | > 300/sync) : l'inventaire complet s'enrichit en ~6 synchronisations. |
| 46 | 46 | > Le véhicule est toujours émis avec les données liste même sans détail. |
| 47 | 47 | |
| 48 | −## Complétude des champs (annonces actives, N = 1 751) | |
| 48 | +## Complétude des champs (annonces actives, N = 1 763) | |
| 49 | 49 | |
| 50 | 50 | | Champ | % rempli | |
| 51 | 51 | |---|---| |
@@ -65,7 +65,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 65 | 65 | |
| 66 | 66 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 67 | 67 | |---|---|---|---|---|---|---|---| |
| 68 | −| `hgregoire` | HGrégoire | St-Léonard | Montréal | 1751 | 1 | 2026-08-27 15:25 | OK (1719 trouvés) | | |
| 68 | +| `hgregoire` | HGrégoire | St-Léonard | Montréal | 1763 | 2 | 2026-08-28 21:46 | OK (1685 trouvés) | | |
| 69 | 69 | |
| 70 | 70 | ## Erreurs de synchronisation récentes |
| 71 | 71 | |
modified
docs/connecteurs/jlkauto.md
+3 −3
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/jlkauto.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 62 | |
| 9 | +- **Annonces actives (BD)** : 66 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : sitemap, JSON-LD schema.org |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, cache détail BD (detail_cache) |
@@ -23,7 +23,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 23 | 23 | > complet : prix, VIN, km, transmission, carrosserie, couleurs, moteur. |
| 24 | 24 | > Pages détail mises en cache BD (clé hebdomadaire), comme les sites D2C. |
| 25 | 25 | |
| 26 | −## Complétude des champs (annonces actives, N = 62) | |
| 26 | +## Complétude des champs (annonces actives, N = 66) | |
| 27 | 27 | |
| 28 | 28 | | Champ | % rempli | |
| 29 | 29 | |---|---| |
@@ -43,7 +43,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 43 | 43 | |
| 44 | 44 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 45 | 45 | |---|---|---|---|---|---|---|---| |
| 46 | −| `jlkauto` | JLK Auto | Montréal | Montréal | 62 | 0 | 2026-08-27 15:25 | OK (62 trouvés) | | |
| 46 | +| `jlkauto` | JLK Auto | Montréal | Montréal | 66 | 0 | 2026-08-28 21:46 | OK (65 trouvés) | | |
| 47 | 47 | |
| 48 | 48 | ## Erreurs de synchronisation récentes |
| 49 | 49 | |
modified
docs/connecteurs/kijiji.md
+8 −8
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/kijiji.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 3118 | |
| 9 | +- **Annonces actives (BD)** : 3073 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : __NEXT_DATA__ |
| 12 | 12 | - **Plafonds / cache** : aucun |
@@ -34,18 +34,18 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 34 | 34 | > Pagination : /b-autos-camions/quebec/page-N/c174l9001?for-sale-by=ownr |
| 35 | 35 | > jusqu'à totalCount (bornée par MAX_PAGES par politesse). |
| 36 | 36 | |
| 37 | −## Complétude des champs (annonces actives, N = 3 118) | |
| 37 | +## Complétude des champs (annonces actives, N = 3 073) | |
| 38 | 38 | |
| 39 | 39 | | Champ | % rempli | |
| 40 | 40 | |---|---| |
| 41 | 41 | | Marque | 100.0 % | |
| 42 | 42 | | Modèle | 100.0 % | |
| 43 | −| Année | 99.6 % | | |
| 43 | +| Année | 99.5 % | | |
| 44 | 44 | | Kilométrage | 100.0 % | |
| 45 | −| Prix | 94.6 % | | |
| 46 | −| Carburant | 62.7 % | | |
| 47 | −| Boîte (transmission) | 64.3 % | | |
| 48 | −| VIN | 21.1 % | | |
| 45 | +| Prix | 94.3 % | | |
| 46 | +| Carburant | 63.2 % | | |
| 47 | +| Boîte (transmission) | 64.4 % | | |
| 48 | +| VIN | 20.9 % | | |
| 49 | 49 | | Photos | 99.7 % | |
| 50 | 50 | | Carfax | 2.3 % | |
| 51 | 51 | | GPS (lat/lng) | 100.0 % | |
@@ -54,7 +54,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 54 | 54 | |
| 55 | 55 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 56 | 56 | |---|---|---|---|---|---|---|---| |
| 57 | −| `kijiji` | Kijiji (particuliers) | — | — | 3118 | 18 | 2026-08-27 15:28 | OK (2720 trouvés) | | |
| 57 | +| `kijiji` | Kijiji (particuliers) | — | — | 3073 | 12 | 2026-08-28 21:50 | OK (3054 trouvés) | | |
| 58 | 58 | |
| 59 | 59 | ## Erreurs de synchronisation récentes |
| 60 | 60 | |
modified
docs/connecteurs/leprixdugros.md
+5 −5
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/leprixdugros.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 1125 | |
| 9 | +- **Annonces actives (BD)** : 1075 | |
| 10 | 10 | - **Backend de fetch** : Scrapfly |
| 11 | 11 | - **Mécanique détectée** : endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache) |
@@ -42,7 +42,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 42 | 42 | > (hybride/EV/diesel), un moteur « N cylindres X.XL » sans indice électrifié |
| 43 | 43 | > => Essence (sauf modèles hybrides « sans badge » connus, ex. Prius). |
| 44 | 44 | |
| 45 | −## Complétude des champs (annonces actives, N = 1 125) | |
| 45 | +## Complétude des champs (annonces actives, N = 1 075) | |
| 46 | 46 | |
| 47 | 47 | | Champ | % rempli | |
| 48 | 48 | |---|---| |
@@ -51,18 +51,18 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 51 | 51 | | Année | 100.0 % | |
| 52 | 52 | | Kilométrage | 100.0 % | |
| 53 | 53 | | Prix | 100.0 % | |
| 54 | −| Carburant | 98.1 % | | |
| 54 | +| Carburant | 98.2 % | | |
| 55 | 55 | | Boîte (transmission) | 100.0 % | |
| 56 | 56 | | VIN | 100.0 % | |
| 57 | 57 | | Photos | 100.0 % | |
| 58 | 58 | | Carfax | 0.0 % | |
| 59 | −| GPS (lat/lng) | 35.3 % | | |
| 59 | +| GPS (lat/lng) | 37.1 % | | |
| 60 | 60 | |
| 61 | 61 | ## Sources membres (BD live) |
| 62 | 62 | |
| 63 | 63 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 64 | 64 | |---|---|---|---|---|---|---|---| |
| 65 | −| `leprixdugros` | Le Prix du Gros | Trois-Rivières | Mauricie | 1125 | 889 | 2026-08-27 15:30 | OK (901 trouvés) | | |
| 65 | +| `leprixdugros` | Le Prix du Gros | Trois-Rivières | Mauricie | 1075 | 847 | 2026-08-28 21:51 | OK (855 trouvés) | | |
| 66 | 66 | |
| 67 | 67 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 68 | 68 | |
modified
docs/connecteurs/magnetis_dealers.md
+11 −11
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/magnetis_dealers.py` |
| 8 | 8 | - **Sources membres** : 5 |
| 9 | −- **Annonces actives (BD)** : 542 | |
| 9 | +- **Annonces actives (BD)** : 497 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : sitemap, JSON-LD schema.org, blob JSON data-class |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, cache détail BD (detail_cache) |
@@ -32,19 +32,19 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 32 | 32 | > Pages détail en cache BD (clé hebdomadaire) ; AUTOKA_MAX_DETAILS (env) |
| 33 | 33 | > plafonne les vraies requêtes détail par synchronisation. |
| 34 | 34 | |
| 35 | −## Complétude des champs (annonces actives, N = 542) | |
| 35 | +## Complétude des champs (annonces actives, N = 497) | |
| 36 | 36 | |
| 37 | 37 | | Champ | % rempli | |
| 38 | 38 | |---|---| |
| 39 | 39 | | Marque | 100.0 % | |
| 40 | 40 | | Modèle | 100.0 % | |
| 41 | 41 | | Année | 99.8 % | |
| 42 | −| Kilométrage | 98.3 % | | |
| 42 | +| Kilométrage | 98.2 % | | |
| 43 | 43 | | Prix | 99.8 % | |
| 44 | −| Carburant | 95.2 % | | |
| 45 | −| Boîte (transmission) | 87.5 % | | |
| 44 | +| Carburant | 94.8 % | | |
| 45 | +| Boîte (transmission) | 86.5 % | | |
| 46 | 46 | | VIN | 99.6 % | |
| 47 | −| Photos | 87.5 % | | |
| 47 | +| Photos | 85.3 % | | |
| 48 | 48 | | Carfax | 0.0 % | |
| 49 | 49 | | GPS (lat/lng) | 100.0 % | |
| 50 | 50 | |
@@ -52,11 +52,11 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 52 | 52 | |
| 53 | 53 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 54 | 54 | |---|---|---|---|---|---|---|---| |
| 55 | −| `baiecomeautoyota` | Baie-Comeau Toyota | Baie-Comeau | Côte-Nord | 261 | 10 | 2026-08-27 15:30 | OK (261 trouvés) | | |
| 56 | −| `groupepaquin` | Groupe Paquin | Rouyn-Noranda | Abitibi-Témiscamingue | 97 | 47 | 2026-08-27 18:09 | OK (48 trouvés) | | |
| 57 | −| `lussierchevrolet` | Lussier Chevrolet Buick GMC | Saint-Hyacinthe | Montérégie | 83 | 0 | 2026-08-27 15:30 | OK (83 trouvés) | | |
| 58 | −| `sherbrooketoyota` | Sherbrooke Toyota | Sherbrooke | Estrie | 66 | 0 | 2026-08-27 15:30 | OK (66 trouvés) | | |
| 59 | −| `stgnissan` | St-Georges Nissan | Saint-Georges | Chaudière-Appalaches | 35 | 0 | 2026-08-27 15:30 | OK (34 trouvés) | | |
| 55 | +| `baiecomeautoyota` | Baie-Comeau Toyota | Baie-Comeau | Côte-Nord | 265 | 10 | 2026-08-28 21:51 | OK (265 trouvés) | | |
| 56 | +| `groupepaquin` | Groupe Paquin | Rouyn-Noranda | Abitibi-Témiscamingue | 48 | 0 | 2026-08-28 21:51 | OK (48 trouvés) | | |
| 57 | +| `lussierchevrolet` | Lussier Chevrolet Buick GMC | Saint-Hyacinthe | Montérégie | 86 | 0 | 2026-08-28 21:51 | OK (86 trouvés) | | |
| 58 | +| `sherbrooketoyota` | Sherbrooke Toyota | Sherbrooke | Estrie | 67 | 0 | 2026-08-28 21:51 | OK (67 trouvés) | | |
| 59 | +| `stgnissan` | St-Georges Nissan | Saint-Georges | Chaudière-Appalaches | 31 | 0 | 2026-08-28 21:51 | OK (31 trouvés) | | |
| 60 | 60 | |
| 61 | 61 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 62 | 62 | |
modified
docs/connecteurs/megacentre.md
+6 −6
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/megacentre.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 464 | |
| 9 | +- **Annonces actives (BD)** : 462 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : sitemap, page-data Gatsby, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, cache détail BD (detail_cache) |
@@ -33,7 +33,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 33 | 33 | > hebdomadaire génèrent de vraies requêtes. AUTOKA_MAX_DETAILS (env) |
| 34 | 34 | > plafonne les vraies requêtes détail par synchronisation. |
| 35 | 35 | |
| 36 | −## Complétude des champs (annonces actives, N = 464) | |
| 36 | +## Complétude des champs (annonces actives, N = 462) | |
| 37 | 37 | |
| 38 | 38 | | Champ | % rempli | |
| 39 | 39 | |---|---| |
@@ -43,17 +43,17 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 43 | 43 | | Kilométrage | 100.0 % | |
| 44 | 44 | | Prix | 100.0 % | |
| 45 | 45 | | Carburant | 99.4 % | |
| 46 | −| Boîte (transmission) | 97.0 % | | |
| 46 | +| Boîte (transmission) | 96.8 % | | |
| 47 | 47 | | VIN | 100.0 % | |
| 48 | −| Photos | 99.4 % | | |
| 49 | −| Carfax | 67.9 % | | |
| 48 | +| Photos | 98.7 % | | |
| 49 | +| Carfax | 67.3 % | | |
| 50 | 50 | | GPS (lat/lng) | 100.0 % | |
| 51 | 51 | |
| 52 | 52 | ## Sources membres (BD live) |
| 53 | 53 | |
| 54 | 54 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 55 | 55 | |---|---|---|---|---|---|---|---| |
| 56 | −| `megacentredeliquidation` | Méga Centre de liquidation | Mont-Joli | Bas-Saint-Laurent | 464 | 460 | 2026-08-27 15:09 | OK (462 trouvés) | | |
| 56 | +| `megacentredeliquidation` | Méga Centre de liquidation | Mont-Joli | Bas-Saint-Laurent | 462 | 457 | 2026-08-28 21:33 | OK (462 trouvés) | | |
| 57 | 57 | |
| 58 | 58 | ## Erreurs de synchronisation récentes |
| 59 | 59 | |
modified
docs/connecteurs/montjolichrysler.md
+3 −3
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/montjolichrysler.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 426 | |
| 9 | +- **Annonces actives (BD)** : 417 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : flux RSC Next.js |
| 12 | 12 | - **Plafonds / cache** : aucun |
@@ -26,7 +26,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 26 | 26 | > display_dealer_name / display_city). On réutilise OccasionBeaucage, |
| 27 | 27 | > seuls l'URL et les libellés changent. |
| 28 | 28 | |
| 29 | −## Complétude des champs (annonces actives, N = 426) | |
| 29 | +## Complétude des champs (annonces actives, N = 417) | |
| 30 | 30 | |
| 31 | 31 | | Champ | % rempli | |
| 32 | 32 | |---|---| |
@@ -46,7 +46,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 46 | 46 | |
| 47 | 47 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 48 | 48 | |---|---|---|---|---|---|---|---| |
| 49 | −| `montjolichrysler` | Chrysler Mont-Joli | Mont-Joli | Bas-Saint-Laurent | 426 | 348 | 2026-08-27 15:33 | OK (420 trouvés) | | |
| 49 | +| `montjolichrysler` | Chrysler Mont-Joli | Mont-Joli | Bas-Saint-Laurent | 417 | 337 | 2026-08-28 21:53 | OK (416 trouvés) | | |
| 50 | 50 | |
| 51 | 51 | ## Erreurs de synchronisation récentes |
| 52 | 52 | |
modified
docs/connecteurs/moto_dealers.md
+32 −23
@@ -6,9 +6,9 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/moto_dealers.py` |
| 8 | 8 | - **Sources membres** : 13 |
| 9 | −- **Annonces actives (BD)** : 673 | |
| 9 | +- **Annonces actives (BD)** : 719 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | −- **Mécanique détectée** : sitemap, JSON-LD schema.org, endpoint JSON | |
| 11 | +- **Mécanique détectée** : sitemap, JSON-LD schema.org, flux RSC Next.js, endpoint JSON | |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache) |
| 13 | 13 | - **Classes** : `MathiasSports` → `mathiassports` ; `SMSport` → `smsport` ; `MotosIllimitees` → `motosillimitees` ; `RMMotosport` → `rmmotosport` ; `GLSport` → `glsport` ; `ExcelMoto` → `excelmoto` … (+7) |
| 14 | 14 | |
@@ -45,24 +45,28 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 45 | 45 | > avec JSON-LD @type Product + table de spécifications (Kilométrage, |
| 46 | 46 | > Couleur…) + galerie JSON Magento. |
| 47 | 47 | > |
| 48 | +> 2b. Next.js custom (Groupe Contant, refonte 2026 — ex-PowerGo) : usagés | |
| 49 | +> server-rendered dans le payload RSC (self.__next_f.push) des pages | |
| 50 | +> /fr/vehicules-usages/<type> ; voir la classe GroupeContant. | |
| 51 | +> | |
| 48 | 52 | > 3. D2C Media — aucun des concessionnaires moto candidats sondés n'y est |
| 49 | 53 | > (PowerGo domine cette verticale), mais la base D2CMotoConnector est |
| 50 | 54 | > prête : mêmes mécanismes que D2CConnector (sitemap /fr/sitemap.xml + |
| 51 | 55 | > JSON-LD des pages /occasion/…-idNNN.html), avec un filtre de segments |
| 52 | 56 | > INVERSÉ (inclut motos/scooters, exclut le reste) et kind rempli. |
| 53 | 57 | |
| 54 | −## Complétude des champs (annonces actives, N = 673) | |
| 58 | +## Complétude des champs (annonces actives, N = 719) | |
| 55 | 59 | |
| 56 | 60 | | Champ | % rempli | |
| 57 | 61 | |---|---| |
| 58 | 62 | | Marque | 100.0 % | |
| 59 | 63 | | Modèle | 100.0 % | |
| 60 | 64 | | Année | 99.7 % | |
| 61 | −| Kilométrage | 94.9 % | | |
| 62 | −| Prix | 99.4 % | | |
| 63 | −| Carburant | 97.8 % | | |
| 64 | −| Boîte (transmission) | 4.3 % | | |
| 65 | −| VIN | 74.3 % | | |
| 65 | +| Kilométrage | 96.8 % | | |
| 66 | +| Prix | 98.6 % | | |
| 67 | +| Carburant | 97.9 % | | |
| 68 | +| Boîte (transmission) | 3.9 % | | |
| 69 | +| VIN | 66.9 % | | |
| 66 | 70 | | Photos | 100.0 % | |
| 67 | 71 | | Carfax | 0.0 % | |
| 68 | 72 | | GPS (lat/lng) | 100.0 % | |
@@ -71,20 +75,25 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 71 | 75 | |
| 72 | 76 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 73 | 77 | |---|---|---|---|---|---|---|---| |
| 74 | −| `excelmoto` | Excel Moto | Montréal | Montréal | 8 | 0 | 2026-08-27 15:33 | OK (8 trouvés) | | |
| 75 | −| `gabrielharleydavidson` | Gabriel Harley-Davidson Montréal | Montréal | Montréal | 30 | 0 | 2026-08-27 15:33 | OK (30 trouvés) | | |
| 76 | −| `glsport` | GL Sport | Saint-Gervais | Chaudière-Appalaches | 17 | 0 | 2026-08-27 15:33 | OK (17 trouvés) | | |
| 77 | −| `groupecontant` | Groupe Contant | Repentigny | Lanaudière | 52 | 0 | 2026-08-27 15:33 | OK (52 trouvés) | | |
| 78 | −| `groupeimperium` | Groupe Imperium | Chicoutimi | Saguenay–Lac-Saint-Jean | 18 | 0 | 2026-08-27 15:33 | OK (18 trouvés) | | |
| 79 | −| `mathiassports` | Mathias Sports | Saint-Mathias-sur-Richelieu | Montérégie | 103 | 0 | 2026-08-27 15:33 | OK (103 trouvés) | | |
| 80 | −| `mecamoto` | Mecamoto | Montréal | Montréal | 17 | 0 | 2026-08-27 15:33 | OK (15 trouvés) | | |
| 81 | −| `motoducharme` | Moto Ducharme | Joliette | Lanaudière | 15 | 0 | 2026-08-27 15:33 | OK (15 trouvés) | | |
| 82 | −| `motosillimitees` | Motos Illimitées | Terrebonne | Lanaudière | 302 | 0 | 2026-08-27 15:33 | OK (289 trouvés) | | |
| 83 | −| `motosthibaulttr` | Motos Thibault Trois-Rivières | Trois-Rivières | Mauricie | 16 | 0 | 2026-08-27 15:33 | OK (16 trouvés) | | |
| 84 | −| `rmmotosport` | RM Motosport | Victoriaville | Centre-du-Québec | 9 | 0 | 2026-08-27 15:33 | OK (9 trouvés) | | |
| 85 | −| `smsport` | SM Sport | Québec | Capitale-Nationale | 53 | 0 | 2026-08-27 15:33 | OK (53 trouvés) | | |
| 86 | −| `stjeromeharleydavidson` | St-Jérôme Harley-Davidson | Saint-Jérôme | Laurentides | 33 | 0 | 2026-08-27 15:33 | OK (24 trouvés) | | |
| 78 | +| `excelmoto` | Excel Moto | Montréal | Montréal | 8 | 0 | 2026-08-28 21:53 | OK (8 trouvés) | | |
| 79 | +| `gabrielharleydavidson` | Gabriel Harley-Davidson Montréal | Montréal | Montréal | 32 | 0 | 2026-08-28 21:53 | OK (32 trouvés) | | |
| 80 | +| `glsport` | GL Sport | Saint-Gervais | Chaudière-Appalaches | 17 | 0 | 2026-08-28 21:53 | OK (17 trouvés) | | |
| 81 | +| `groupecontant` | Groupe Contant | Repentigny | Lanaudière | 116 | 0 | 2026-08-28 22:24 | OK (67 trouvés) | | |
| 82 | +| `groupeimperium` | Groupe Imperium | Chicoutimi | Saguenay–Lac-Saint-Jean | 18 | 0 | 2026-08-28 21:53 | OK (18 trouvés) | | |
| 83 | +| `mathiassports` | Mathias Sports | Saint-Mathias-sur-Richelieu | Montérégie | 104 | 0 | 2026-08-28 21:53 | OK (104 trouvés) | | |
| 84 | +| `mecamoto` | Mecamoto | Montréal | Montréal | 16 | 0 | 2026-08-28 21:53 | OK (16 trouvés) | | |
| 85 | +| `motoducharme` | Moto Ducharme | Joliette | Lanaudière | 15 | 0 | 2026-08-28 21:53 | OK (15 trouvés) | | |
| 86 | +| `motosillimitees` | Motos Illimitées | Terrebonne | Lanaudière | 289 | 0 | 2026-08-28 21:53 | OK (289 trouvés) | | |
| 87 | +| `motosthibaulttr` | Motos Thibault Trois-Rivières | Trois-Rivières | Mauricie | 16 | 0 | 2026-08-28 21:53 | OK (16 trouvés) | | |
| 88 | +| `rmmotosport` | RM Motosport | Victoriaville | Centre-du-Québec | 9 | 0 | 2026-08-28 21:53 | OK (9 trouvés) | | |
| 89 | +| `smsport` | SM Sport | Québec | Capitale-Nationale | 53 | 0 | 2026-08-28 21:53 | OK (53 trouvés) | | |
| 90 | +| `stjeromeharleydavidson` | St-Jérôme Harley-Davidson | Saint-Jérôme | Laurentides | 26 | 0 | 2026-08-28 21:53 | OK (26 trouvés) | | |
| 87 | 91 | |
| 88 | −## Erreurs de synchronisation récentes | |
| 92 | +## Erreurs de synchronisation récentes (sync_log, ok = 0) | |
| 89 | 93 | |
| 90 | −Aucune erreur dans le sync_log pour les sources de ce module. | |
| 94 | +| Source | Quand | Message | | |
| 95 | +|---|---|---| | |
| 96 | +| `groupecontant` | 2026-08-28 21:53 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json | | |
| 97 | +| `groupecontant` | 2026-08-28 18:56 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json | | |
| 98 | +| `groupecontant` | 2026-08-28 15:57 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json | | |
| 99 | +| `groupecontant` | 2026-08-27 22:00 | Expecting value: line 1 column 1 (char 0) | | |
modified
docs/connecteurs/occasionbeaucage.md
+4 −4
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/occasionbeaucage.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 1295 | |
| 9 | +- **Annonces actives (BD)** : 1291 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : flux RSC Next.js, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache) |
@@ -41,7 +41,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 41 | 41 | > la liste) et plafonnés par AUTOKA_MAX_DETAILS / max_details par sync — |
| 42 | 42 | > l'inventaire complet se couvre en quelques synchronisations. |
| 43 | 43 | |
| 44 | −## Complétude des champs (annonces actives, N = 1 295) | |
| 44 | +## Complétude des champs (annonces actives, N = 1 291) | |
| 45 | 45 | |
| 46 | 46 | | Champ | % rempli | |
| 47 | 47 | |---|---| |
@@ -54,14 +54,14 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 54 | 54 | | Boîte (transmission) | 100.0 % | |
| 55 | 55 | | VIN | 100.0 % | |
| 56 | 56 | | Photos | 100.0 % | |
| 57 | −| Carfax | 55.7 % | | |
| 57 | +| Carfax | 55.4 % | | |
| 58 | 58 | | GPS (lat/lng) | 100.0 % | |
| 59 | 59 | |
| 60 | 60 | ## Sources membres (BD live) |
| 61 | 61 | |
| 62 | 62 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 63 | 63 | |---|---|---|---|---|---|---|---| |
| 64 | −| `occasionbeaucage` | Occasion Beaucage | Sherbrooke | Estrie | 1295 | 206 | 2026-08-27 15:32 | OK (1246 trouvés) | | |
| 64 | +| `occasionbeaucage` | Occasion Beaucage | Sherbrooke | Estrie | 1291 | 209 | 2026-08-28 21:52 | OK (1291 trouvés) | | |
| 65 | 65 | |
| 66 | 66 | ## Erreurs de synchronisation récentes |
| 67 | 67 | |
modified
docs/connecteurs/occasioncharlevoix.md
+1 −1
@@ -48,7 +48,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 48 | 48 | |
| 49 | 49 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 50 | 50 | |---|---|---|---|---|---|---|---| |
| 51 | −| `occasioncharlevoix` | Occasion Charlevoix | Baie-Saint-Paul | Capitale-Nationale | 30 | 8 | 2026-08-27 15:33 | OK (30 trouvés) | | |
| 51 | +| `occasioncharlevoix` | Occasion Charlevoix | Baie-Saint-Paul | Capitale-Nationale | 30 | 8 | 2026-08-28 21:53 | OK (30 trouvés) | | |
| 52 | 52 | |
| 53 | 53 | ## Erreurs de synchronisation récentes (sync_log, ok = 0) |
| 54 | 54 | |
modified
docs/connecteurs/okaze.md
+2 −2
@@ -35,7 +35,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 35 | 35 | | Carburant | 100.0 % | |
| 36 | 36 | | Boîte (transmission) | 100.0 % | |
| 37 | 37 | | VIN | 0.0 % | |
| 38 | −| Photos | 100.0 % | | |
| 38 | +| Photos | 98.2 % | | |
| 39 | 39 | | Carfax | 0.0 % | |
| 40 | 40 | | GPS (lat/lng) | 100.0 % | |
| 41 | 41 | |
@@ -43,7 +43,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 43 | 43 | |
| 44 | 44 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 45 | 45 | |---|---|---|---|---|---|---|---| |
| 46 | −| `okaze` | OKAZE | Saguenay | Saguenay–Lac-Saint-Jean | 55 | 0 | 2026-08-27 15:33 | OK (55 trouvés) | | |
| 46 | +| `okaze` | OKAZE | Saguenay | Saguenay–Lac-Saint-Jean | 55 | 0 | 2026-08-28 21:53 | OK (55 trouvés) | | |
| 47 | 47 | |
| 48 | 48 | ## Erreurs de synchronisation récentes |
| 49 | 49 | |
modified
docs/connecteurs/otogo.md
+4 −4
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/otogo.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 24048 | |
| 9 | +- **Annonces actives (BD)** : 24090 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_OTOGO_MAX |
@@ -40,7 +40,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 40 | 40 | > |
| 41 | 41 | > Plafond : AUTOKA_OTOGO_MAX (défaut 0 = inventaire complet). |
| 42 | 42 | |
| 43 | −## Complétude des champs (annonces actives, N = 24 048) | |
| 43 | +## Complétude des champs (annonces actives, N = 24 090) | |
| 44 | 44 | |
| 45 | 45 | | Champ | % rempli | |
| 46 | 46 | |---|---| |
@@ -52,7 +52,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 52 | 52 | | Carburant | 7.7 % | |
| 53 | 53 | | Boîte (transmission) | 0.0 % | |
| 54 | 54 | | VIN | 99.1 % | |
| 55 | −| Photos | 96.4 % | | |
| 55 | +| Photos | 96.6 % | | |
| 56 | 56 | | Carfax | 0.0 % | |
| 57 | 57 | | GPS (lat/lng) | 100.0 % | |
| 58 | 58 | |
@@ -60,7 +60,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 60 | 60 | |
| 61 | 61 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 62 | 62 | |---|---|---|---|---|---|---|---| |
| 63 | −| `otogo` | Otogo.ca | — | — | 24048 | 6361 | 2026-08-27 15:37 | OK (23552 trouvés) | | |
| 63 | +| `otogo` | Otogo.ca | — | — | 24090 | 6259 | 2026-08-28 21:57 | OK (23760 trouvés) | | |
| 64 | 64 | |
| 65 | 65 | ## Erreurs de synchronisation récentes |
| 66 | 66 | |
modified
docs/connecteurs/ototr.md
+1 −1
@@ -44,7 +44,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 44 | 44 | |
| 45 | 45 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 46 | 46 | |---|---|---|---|---|---|---|---| |
| 47 | −| `ototroisrivieres` | OTO Trois-Rivières | Trois-Rivières | Mauricie | 4 | 0 | 2026-08-27 15:37 | OK (4 trouvés) | | |
| 47 | +| `ototroisrivieres` | OTO Trois-Rivières | Trois-Rivières | Mauricie | 4 | 0 | 2026-08-28 21:57 | OK (4 trouvés) | | |
| 48 | 48 | |
| 49 | 49 | ## Erreurs de synchronisation récentes |
| 50 | 50 | |
modified
docs/connecteurs/sm360_dealers.md
+23 −23
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/sm360_dealers.py` |
| 8 | 8 | - **Sources membres** : 15 |
| 9 | −- **Annonces actives (BD)** : 1459 | |
| 9 | +- **Annonces actives (BD)** : 1443 | |
| 10 | 10 | - **Backend de fetch** : requests direct — Firecrawl par source au besoin (`use_firecrawl`, sites derrière Cloudflare) |
| 11 | 11 | - **Mécanique détectée** : sitemap, JSON-LD schema.org, GraphQL, flux RSS, API JSON interne, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : AUTOKA_MAX_DETAILS, cache détail BD (detail_cache) |
@@ -43,41 +43,41 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 43 | 43 | > inutile ici, le sitemap suffit. robots.txt : Allow /*?page=* et /*/api/*, |
| 44 | 44 | > Crawl-delay 10 → délai généreux + cache détail. |
| 45 | 45 | |
| 46 | −## Complétude des champs (annonces actives, N = 1 459) | |
| 46 | +## Complétude des champs (annonces actives, N = 1 443) | |
| 47 | 47 | |
| 48 | 48 | | Champ | % rempli | |
| 49 | 49 | |---|---| |
| 50 | −| Marque | 99.3 % | | |
| 50 | +| Marque | 99.4 % | | |
| 51 | 51 | | Modèle | 100.0 % | |
| 52 | 52 | | Année | 100.0 % | |
| 53 | 53 | | Kilométrage | 99.2 % | |
| 54 | 54 | | Prix | 99.7 % | |
| 55 | −| Carburant | 95.5 % | | |
| 56 | −| Boîte (transmission) | 90.4 % | | |
| 57 | −| VIN | 99.5 % | | |
| 58 | −| Photos | 89.9 % | | |
| 59 | −| Carfax | 19.1 % | | |
| 55 | +| Carburant | 95.2 % | | |
| 56 | +| Boîte (transmission) | 90.5 % | | |
| 57 | +| VIN | 99.4 % | | |
| 58 | +| Photos | 89.6 % | | |
| 59 | +| Carfax | 19.3 % | | |
| 60 | 60 | | GPS (lat/lng) | 100.0 % | |
| 61 | 61 | |
| 62 | 62 | ## Sources membres (BD live) |
| 63 | 63 | |
| 64 | 64 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 65 | 65 | |---|---|---|---|---|---|---|---| |
| 66 | −| `autodesjardins` | Automobiles Desjardins | Québec | Capitale-Nationale | 111 | 0 | 2026-08-27 15:39 | OK (100 trouvés) | | |
| 67 | −| `baiecomeaugm` | Baie-Comeau Chevrolet Buick GMC | Baie-Comeau | Côte-Nord | 102 | 80 | 2026-08-27 15:40 | OK (100 trouvés) | | |
| 68 | −| `kiamatane` | Kia Matane | Matane | Bas-Saint-Laurent | 40 | 0 | 2026-08-27 15:40 | OK (40 trouvés) | | |
| 69 | −| `lallierhondahull` | Lallier Honda Hull | Gatineau | Outaouais | 60 | 0 | 2026-08-27 15:39 | OK (56 trouvés) | | |
| 70 | −| `lamontagneauto` | Lamontagne Auto | Rimouski | Bas-Saint-Laurent | 14 | 0 | 2026-08-27 15:38 | OK (12 trouvés) | | |
| 71 | −| `marquisautomobiles` | Marquis Automobiles | Matane | Bas-Saint-Laurent | 35 | 0 | 2026-08-27 15:40 | OK (35 trouvés) | | |
| 72 | −| `rivesudchrysler` | Rive-Sud Chrysler | Brossard | Montérégie | 15 | 0 | 2026-08-27 15:39 | OK (15 trouvés) | | |
| 73 | −| `septilesgm` | Sept-Îles Chevrolet Buick GMC | Sept-Îles | Côte-Nord | 105 | 74 | 2026-08-27 15:40 | OK (100 trouvés) | | |
| 74 | −| `septileshonda` | Sept-Îles Honda | Sept-Îles | Côte-Nord | 12 | 0 | 2026-08-27 15:39 | OK (12 trouvés) | | |
| 75 | −| `spinelli` | Groupe Spinelli | Montréal | Montréal | 106 | 0 | 2026-08-27 15:39 | OK (100 trouvés) | | |
| 76 | −| `stjeromeautodepot` | St-Jérôme Auto Dépôt | Saint-Jérôme | Laurentides | 297 | 0 | 2026-08-27 15:38 | OK (297 trouvés) | | |
| 77 | −| `touteslesmarques` | Toutes les marques | Chicoutimi | Saguenay–Lac-Saint-Jean | 271 | 247 | 2026-08-27 15:38 | OK (264 trouvés) | | |
| 78 | −| `toyotagatineau` | Toyota Gatineau | Gatineau | Outaouais | 107 | 0 | 2026-08-27 15:39 | OK (100 trouvés) | | |
| 79 | −| `villeneuveford` | Villeneuve Ford | Matane | Bas-Saint-Laurent | 71 | 0 | 2026-08-27 15:40 | OK (71 trouvés) | | |
| 80 | −| `volvosaintleonard` | Volvo Cars Saint-Léonard | Montréal | Montréal | 113 | 0 | 2026-08-27 15:40 | OK (112 trouvés) | | |
| 66 | +| `autodesjardins` | Automobiles Desjardins | Québec | Capitale-Nationale | 106 | 0 | 2026-08-28 21:58 | OK (100 trouvés) | | |
| 67 | +| `baiecomeaugm` | Baie-Comeau Chevrolet Buick GMC | Baie-Comeau | Côte-Nord | 118 | 95 | 2026-08-28 21:58 | OK (100 trouvés) | | |
| 68 | +| `kiamatane` | Kia Matane | Matane | Bas-Saint-Laurent | 44 | 0 | 2026-08-28 21:58 | OK (44 trouvés) | | |
| 69 | +| `lallierhondahull` | Lallier Honda Hull | Gatineau | Outaouais | 52 | 0 | 2026-08-28 21:58 | OK (52 trouvés) | | |
| 70 | +| `lamontagneauto` | Lamontagne Auto | Rimouski | Bas-Saint-Laurent | 11 | 0 | 2026-08-28 21:57 | OK (11 trouvés) | | |
| 71 | +| `marquisautomobiles` | Marquis Automobiles | Matane | Bas-Saint-Laurent | 36 | 0 | 2026-08-28 21:58 | OK (36 trouvés) | | |
| 72 | +| `rivesudchrysler` | Rive-Sud Chrysler | Brossard | Montérégie | 14 | 0 | 2026-08-28 21:58 | OK (14 trouvés) | | |
| 73 | +| `septilesgm` | Sept-Îles Chevrolet Buick GMC | Sept-Îles | Côte-Nord | 101 | 72 | 2026-08-28 21:58 | OK (100 trouvés) | | |
| 74 | +| `septileshonda` | Sept-Îles Honda | Sept-Îles | Côte-Nord | 17 | 0 | 2026-08-28 21:58 | OK (17 trouvés) | | |
| 75 | +| `spinelli` | Groupe Spinelli | Montréal | Montréal | 100 | 0 | 2026-08-28 21:57 | OK (100 trouvés) | | |
| 76 | +| `stjeromeautodepot` | St-Jérôme Auto Dépôt | Saint-Jérôme | Laurentides | 296 | 0 | 2026-08-28 21:57 | OK (296 trouvés) | | |
| 77 | +| `touteslesmarques` | Toutes les marques | Chicoutimi | Saguenay–Lac-Saint-Jean | 263 | 245 | 2026-08-28 21:57 | OK (263 trouvés) | | |
| 78 | +| `toyotagatineau` | Toyota Gatineau | Gatineau | Outaouais | 101 | 0 | 2026-08-28 21:58 | OK (100 trouvés) | | |
| 79 | +| `villeneuveford` | Villeneuve Ford | Matane | Bas-Saint-Laurent | 70 | 0 | 2026-08-28 21:58 | OK (70 trouvés) | | |
| 80 | +| `volvosaintleonard` | Volvo Cars Saint-Léonard | Montréal | Montréal | 114 | 0 | 2026-08-28 21:58 | OK (114 trouvés) | | |
| 81 | 81 | |
| 82 | 82 | ## Erreurs de synchronisation récentes |
| 83 | 83 | |
modified
docs/connecteurs/stefoychrysler.md
+3 −3
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/stefoychrysler.py` |
| 8 | 8 | - **Sources membres** : 1 |
| 9 | −- **Annonces actives (BD)** : 426 | |
| 9 | +- **Annonces actives (BD)** : 417 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : flux RSC Next.js |
| 12 | 12 | - **Plafonds / cache** : aucun |
@@ -26,7 +26,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 26 | 26 | > display_dealer_name / display_city). On réutilise donc OccasionBeaucage |
| 27 | 27 | > telle quelle, seuls l'URL et les libellés changent. |
| 28 | 28 | |
| 29 | −## Complétude des champs (annonces actives, N = 426) | |
| 29 | +## Complétude des champs (annonces actives, N = 417) | |
| 30 | 30 | |
| 31 | 31 | | Champ | % rempli | |
| 32 | 32 | |---|---| |
@@ -46,7 +46,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 46 | 46 | |
| 47 | 47 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 48 | 48 | |---|---|---|---|---|---|---|---| |
| 49 | −| `stefoychrysler` | Ste-Foy Chrysler | Québec | Capitale-Nationale | 426 | 84 | 2026-08-27 15:41 | OK (420 trouvés) | | |
| 49 | +| `stefoychrysler` | Ste-Foy Chrysler | Québec | Capitale-Nationale | 417 | 84 | 2026-08-28 21:59 | OK (416 trouvés) | | |
| 50 | 50 | |
| 51 | 51 | ## Erreurs de synchronisation récentes |
| 52 | 52 | |
modified
docs/connecteurs/transverse-dedup-vin.md
+14 −14
@@ -27,9 +27,9 @@ _Généré automatiquement par `scripts/gen_connector_docs.py`._ | ||
| 27 | 27 | |
| 28 | 28 | ## État live |
| 29 | 29 | |
| 30 | −- **Annonces en base** : 89353 | |
| 31 | −- **Annonces masquées (`dup_of` non nul)** : 12469 | |
| 32 | −- **Annonces canoniques avec doublons** : 10321 | |
| 30 | +- **Annonces en base** : 94686 | |
| 31 | +- **Annonces masquées (`dup_of` non nul)** : 12279 | |
| 32 | +- **Annonces canoniques avec doublons** : 10183 | |
| 33 | 33 | - **Autorité** : concessionnaire direct > portail/regroupeur > petites annonces ; puis complétude de la fiche, puis ancienneté (`first_seen`). |
| 34 | 34 | - Les listes filtrent `dup_of IS NULL` ; les fiches détail restent accessibles par uid. |
| 35 | 35 | |
@@ -37,17 +37,17 @@ _Généré automatiquement par `scripts/gen_connector_docs.py`._ | ||
| 37 | 37 | |
| 38 | 38 | | Source | Annonces masquées | |
| 39 | 39 | |---|---| |
| 40 | −| `otogo` | 6361 | | |
| 41 | −| `autousagee` | 3093 | | |
| 42 | −| `leprixdugros` | 889 | | |
| 43 | −| `megacentredeliquidation` | 460 | | |
| 44 | −| `montjolichrysler` | 348 | | |
| 45 | −| `touteslesmarques` | 247 | | |
| 46 | −| `occasionbeaucage` | 206 | | |
| 47 | −| `cargurus` | 173 | | |
| 48 | −| `jeandumas` | 110 | | |
| 49 | −| `abitibiautocredit` | 87 | | |
| 50 | −| `jeandumasfordbc` | 85 | | |
| 40 | +| `otogo` | 6259 | | |
| 41 | +| `autousagee` | 3098 | | |
| 42 | +| `leprixdugros` | 847 | | |
| 43 | +| `megacentredeliquidation` | 457 | | |
| 44 | +| `montjolichrysler` | 337 | | |
| 45 | +| `touteslesmarques` | 245 | | |
| 46 | +| `occasionbeaucage` | 209 | | |
| 47 | +| `cargurus` | 178 | | |
| 48 | +| `jeandumas` | 108 | | |
| 49 | +| `baiecomeaugm` | 95 | | |
| 50 | +| `abitibiautocredit` | 85 | | |
| 51 | 51 | | `stefoychrysler` | 84 | |
| 52 | 52 | |
| 53 | 53 | Recalcul one-shot : `python3 -m autoka.dedup` (idempotent, relancé à la fin de chaque cycle d'ingestion). |
modified
docs/connecteurs/vvu_dealers.md
+10 −10
@@ -6,7 +6,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 6 | 6 | |
| 7 | 7 | - **Fichier** : `autoka/connectors/vvu_dealers.py` |
| 8 | 8 | - **Sources membres** : 4 |
| 9 | −- **Annonces actives (BD)** : 185 | |
| 9 | +- **Annonces actives (BD)** : 180 | |
| 10 | 10 | - **Backend de fetch** : requests direct (aucun anti-bot) |
| 11 | 11 | - **Mécanique détectée** : API JSON interne, endpoint JSON |
| 12 | 12 | - **Plafonds / cache** : aucun |
@@ -27,19 +27,19 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 27 | 27 | > `<make>-<model>-<year>-<_id>` ; le préfixe varie selon la version du |
| 28 | 28 | > gabarit ADWS déployée (`/fr/vehicle/…` ou `/fr/occasion/…`). |
| 29 | 29 | |
| 30 | −## Complétude des champs (annonces actives, N = 185) | |
| 30 | +## Complétude des champs (annonces actives, N = 180) | |
| 31 | 31 | |
| 32 | 32 | | Champ | % rempli | |
| 33 | 33 | |---|---| |
| 34 | 34 | | Marque | 100.0 % | |
| 35 | 35 | | Modèle | 100.0 % | |
| 36 | −| Année | 99.5 % | | |
| 36 | +| Année | 99.4 % | | |
| 37 | 37 | | Kilométrage | 100.0 % | |
| 38 | 38 | | Prix | 100.0 % | |
| 39 | −| Carburant | 99.5 % | | |
| 39 | +| Carburant | 99.4 % | | |
| 40 | 40 | | Boîte (transmission) | 100.0 % | |
| 41 | −| VIN | 96.2 % | | |
| 42 | −| Photos | 95.1 % | | |
| 41 | +| VIN | 96.1 % | | |
| 42 | +| Photos | 94.4 % | | |
| 43 | 43 | | Carfax | 0.0 % | |
| 44 | 44 | | GPS (lat/lng) | 100.0 % | |
| 45 | 45 | |
@@ -47,10 +47,10 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 47 | 47 | |
| 48 | 48 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 49 | 49 | |---|---|---|---|---|---|---|---| |
| 50 | −| `autoglobalmtl` | Auto Global MTL | Montréal | Montréal | 29 | 0 | 2026-08-27 15:41 | OK (29 trouvés) | | |
| 51 | −| `groupeautomobile` | Le Groupe Automobile Laval | Laval | Laval | 24 | 0 | 2026-08-27 15:41 | OK (24 trouvés) | | |
| 52 | −| `occasionvilledequebec` | Comme1Neuf | Château-Richer | Capitale-Nationale | 80 | 0 | 2026-08-27 15:41 | OK (80 trouvés) | | |
| 53 | −| `summumauto` | Summum Auto | Laval | Laval | 52 | 0 | 2026-08-27 15:41 | OK (52 trouvés) | | |
| 50 | +| `autoglobalmtl` | Auto Global MTL | Montréal | Montréal | 29 | 0 | 2026-08-28 21:59 | OK (29 trouvés) | | |
| 51 | +| `groupeautomobile` | Le Groupe Automobile Laval | Laval | Laval | 23 | 0 | 2026-08-28 21:59 | OK (23 trouvés) | | |
| 52 | +| `occasionvilledequebec` | Comme1Neuf | Château-Richer | Capitale-Nationale | 78 | 0 | 2026-08-28 21:59 | OK (78 trouvés) | | |
| 53 | +| `summumauto` | Summum Auto | Laval | Laval | 50 | 0 | 2026-08-28 21:59 | OK (50 trouvés) | | |
| 54 | 54 | |
| 55 | 55 | ## Erreurs de synchronisation récentes |
| 56 | 56 | |
modified
docs/connecteurs/yannicklaberge.md
+1 −1
@@ -44,7 +44,7 @@ _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas édite | ||
| 44 | 44 | |
| 45 | 45 | | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |
| 46 | 46 | |---|---|---|---|---|---|---|---| |
| 47 | −| `automobilesyannicklaberge` | Automobiles Yannick Laberge | Beauport | Capitale-Nationale | 15 | 0 | 2026-08-27 15:41 | OK (15 trouvés) | | |
| 47 | +| `automobilesyannicklaberge` | Automobiles Yannick Laberge | Beauport | Capitale-Nationale | 15 | 0 | 2026-08-28 21:59 | OK (15 trouvés) | | |
| 48 | 48 | |
| 49 | 49 | ## Erreurs de synchronisation récentes |
| 50 | 50 | |
| 51 | 51 | |