# Module `moto_dealers` — PowerGo
_Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas éditer à la main._
## Vue d'ensemble
- **Fichier** : `autoka/connectors/moto_dealers.py`
- **Sources membres** : 13
- **Annonces actives (BD)** : 631
- **Backend de fetch** : requests direct (aucun anti-bot)
- **Mécanique détectée** : sitemap, JSON-LD schema.org, flux RSC Next.js, endpoint JSON
- **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache)
- **Classes** : `MathiasSports` → `mathiassports` ; `SMSport` → `smsport` ; `MotosIllimitees` → `motosillimitees` ; `RMMotosport` → `rmmotosport` ; `GLSport` → `glsport` ; `ExcelMoto` → `excelmoto` … (+7)
## Mécanique (en-tête du module)
> connectors/moto_dealers.py : verticale MOTOS & SCOOTERS usagés — connecteurs
> des concessionnaires de motocyclettes/scooters du Québec.
>
> Chaque véhicule émis porte kind="moto" ou kind="scooter" (jamais "auto").
> Les motoneiges, VTT, côte-à-côte, motomarines, bateaux, VR et vélos sont
> systématiquement EXCLUS. Les marques moto (Harley-Davidson, Indian, KTM,
> Vespa…) ne sont pas dans normalize.MAKES : make est TOUJOURS rempli
> explicitement depuis la source (JSON inventaire ou brand JSON-LD), on ne
> compte jamais sur split_title().
>
> Plateformes rencontrées dans cette verticale :
>
> 1. PowerGo (powergo.ca) — de très loin la plus répandue chez les
> concessionnaires de sports motorisés au Québec (l'équivalent moto de
> D2C Media côté autos). Sites Next.js ; l'inventaire COMPLET (neuf +
> usagé, tous types) est publié dans un JSON public :
> /data/vehicles-inventory-fr-items.json
> → type, category, conditionCode (new/used), make, model, year, prix,
> usage (km), stock, URL de la page détail, 1re photo (gabarit CDN).
> Chaque page détail expose en plus un JSON-LD schema.org @type Vehicle
> (parfois dans un @graph) : galerie complète, description, couleur,
> kilométrage… Pages détail en cache BD, clé = prix+km du listing (donc
> revalidation automatique quand le prix ou le km change).
> NB : les sites PowerGo « ancien gabarit » (premonthd.com, lavalmoto.com,
> motojmf.com, motopro.ca…) n'exposent PAS ce JSON (listing 100 % JS).
>
> 2. Magento/Traction (Moto Ducharme) — listing HTML server-rendered
> par catégorie (/fr/vehicules-d-occasion/motocyclettes), pages détail
> avec JSON-LD @type Product + table de spécifications (Kilométrage,
> Couleur…) + galerie JSON Magento.
>
> 2b. Next.js custom (Groupe Contant, refonte 2026 — ex-PowerGo) : usagés
> server-rendered dans le payload RSC (self.__next_f.push) des pages
> /fr/vehicules-usages/ ; voir la classe GroupeContant.
>
> 3. D2C Media — aucun des concessionnaires moto candidats sondés n'y est
> (PowerGo domine cette verticale), mais la base D2CMotoConnector est
> prête : mêmes mécanismes que D2CConnector (sitemap /fr/sitemap.xml +
> JSON-LD des pages /occasion/…-idNNN.html), avec un filtre de segments
> INVERSÉ (inclut motos/scooters, exclut le reste) et kind rempli.
## Complétude des champs (annonces actives, N = 631)
| Champ | % rempli |
|---|---|
| Marque | 100.0 % |
| Modèle | 99.8 % |
| Année | 99.7 % |
| Kilométrage | 97.1 % |
| Prix | 98.6 % |
| Carburant | 97.1 % |
| Boîte (transmission) | 4.0 % |
| VIN | 61.2 % |
| Photos | 89.9 % |
| Carfax | 0.0 % |
| GPS (lat/lng) | 100.0 % |
## Sources membres (BD live)
| Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut |
|---|---|---|---|---|---|---|---|
| `excelmoto` | Excel Moto | Montréal | Montréal | 6 | 0 | 2026-09-13 16:15 | OK (6 trouvés) |
| `gabrielharleydavidson` | Gabriel Harley-Davidson Montréal | Montréal | Montréal | 28 | 0 | 2026-09-13 16:15 | OK (28 trouvés) |
| `glsport` | GL Sport | Saint-Gervais | Chaudière-Appalaches | 16 | 0 | 2026-09-13 16:15 | OK (16 trouvés) |
| `groupecontant` | Groupe Contant | Repentigny | Lanaudière | 64 | 0 | 2026-09-13 16:15 | OK (64 trouvés) |
| `groupeimperium` | Groupe Imperium | Chicoutimi | Saguenay–Lac-Saint-Jean | 9 | 0 | 2026-09-13 16:15 | OK (9 trouvés) |
| `mathiassports` | Mathias Sports | Saint-Mathias-sur-Richelieu | Montérégie | 111 | 0 | 2026-09-13 16:15 | OK (111 trouvés) |
| `mecamoto` | Mecamoto | Montréal | Montréal | 16 | 0 | 2026-09-13 16:15 | OK (16 trouvés) |
| `motoducharme` | Moto Ducharme | Joliette | Lanaudière | 18 | 0 | 2026-09-13 16:15 | OK (18 trouvés) |
| `motosillimitees` | Motos Illimitées | Terrebonne | Lanaudière | 240 | 0 | 2026-09-13 16:15 | OK (240 trouvés) |
| `motosthibaulttr` | Motos Thibault Trois-Rivières | Trois-Rivières | Mauricie | 19 | 0 | 2026-09-13 16:15 | OK (19 trouvés) |
| `rmmotosport` | RM Motosport | Victoriaville | Centre-du-Québec | 11 | 0 | 2026-09-13 16:15 | OK (11 trouvés) |
| `smsport` | SM Sport | Québec | Capitale-Nationale | 63 | 0 | 2026-09-13 16:15 | OK (63 trouvés) |
| `stjeromeharleydavidson` | St-Jérôme Harley-Davidson | Saint-Jérôme | Laurentides | 30 | 0 | 2026-09-13 16:15 | OK (30 trouvés) |
## Erreurs de synchronisation récentes (sync_log, ok = 0)
| Source | Quand | Message |
|---|---|---|
| `groupecontant` | 2026-08-30 04:47 | Exceeded 30 redirects. |
| `groupecontant` | 2026-08-30 01:52 | Exceeded 30 redirects. |
| `groupecontant` | 2026-08-28 21:53 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json |
| `groupecontant` | 2026-08-28 18:56 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json |
| `groupecontant` | 2026-08-28 15:57 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json |
| `groupecontant` | 2026-08-27 22:00 | Expecting value: line 1 column 1 (char 0) |