# 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) |