SPB Git forge

spb/auto-ka

Public
61commits 1branches 0releases
14.4 MBsize
maindefault branch
13 days agolast push
Python 61.6% TypeScript 20.9% CSS 11.4% JavaScript 5.1% HTML 1.1%
5.7 KB · 102 lines markdown
Rendered Raw Blame History
1# Module `moto_dealers` — PowerGo23_Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas éditer à la main._45## Vue d'ensemble67- **Fichier** : `autoka/connectors/moto_dealers.py`8- **Sources membres** : 139- **Annonces actives (BD)** : 63110- **Backend de fetch** : requests direct (aucun anti-bot)11- **Mécanique détectée** : sitemap, JSON-LD schema.org, flux RSC Next.js, endpoint JSON12- **Plafonds / cache** : AUTOKA_MAX_DETAILS, AUTOKA_MAX_PAGES, cache détail BD (detail_cache)13- **Classes** : `MathiasSports` → `mathiassports` ; `SMSport` → `smsport` ; `MotosIllimitees` → `motosillimitees` ; `RMMotosport` → `rmmotosport` ; `GLSport` → `glsport` ; `ExcelMoto` → `excelmoto` … (+7)1415## Mécanique (en-tête du module)1617> connectors/moto_dealers.py : verticale MOTOS & SCOOTERS usagés — connecteurs18> des concessionnaires de motocyclettes/scooters du Québec.19> 20> Chaque véhicule émis porte kind="moto" ou kind="scooter" (jamais "auto").21> Les motoneiges, VTT, côte-à-côte, motomarines, bateaux, VR et vélos sont22> systématiquement EXCLUS. Les marques moto (Harley-Davidson, Indian, KTM,23> Vespa…) ne sont pas dans normalize.MAKES : make est TOUJOURS rempli24> explicitement depuis la source (JSON inventaire ou brand JSON-LD), on ne25> compte jamais sur split_title().26> 27> Plateformes rencontrées dans cette verticale :28> 29> 1. PowerGo (powergo.ca) — de très loin la plus répandue chez les30> concessionnaires de sports motorisés au Québec (l'équivalent moto de31> D2C Media côté autos). Sites Next.js ; l'inventaire COMPLET (neuf +32> usagé, tous types) est publié dans un JSON public :33> <base>/data/vehicles-inventory-fr-items.json34> → type, category, conditionCode (new/used), make, model, year, prix,35> usage (km), stock, URL de la page détail, 1re photo (gabarit CDN).36> Chaque page détail expose en plus un JSON-LD schema.org @type Vehicle37> (parfois dans un @graph) : galerie complète, description, couleur,38> kilométrage… Pages détail en cache BD, clé = prix+km du listing (donc39> revalidation automatique quand le prix ou le km change).40> NB : les sites PowerGo « ancien gabarit » (premonthd.com, lavalmoto.com,41> motojmf.com, motopro.ca…) n'exposent PAS ce JSON (listing 100 % JS).42> 43> 2. Magento/Traction (Moto Ducharme) — listing HTML server-rendered44> par catégorie (/fr/vehicules-d-occasion/motocyclettes), pages détail45> avec JSON-LD @type Product + table de spécifications (Kilométrage,46> Couleur…) + galerie JSON Magento.47> 48> 2b. Next.js custom (Groupe Contant, refonte 2026 — ex-PowerGo) : usagés49> server-rendered dans le payload RSC (self.__next_f.push) des pages50> /fr/vehicules-usages/<type> ; voir la classe GroupeContant.51> 52> 3. D2C Media — aucun des concessionnaires moto candidats sondés n'y est53> (PowerGo domine cette verticale), mais la base D2CMotoConnector est54> prête : mêmes mécanismes que D2CConnector (sitemap /fr/sitemap.xml +55> JSON-LD des pages /occasion/…-idNNN.html), avec un filtre de segments56> INVERSÉ (inclut motos/scooters, exclut le reste) et kind rempli.5758## Complétude des champs (annonces actives, N = 631)5960| Champ | % rempli |61|---|---|62| Marque | 100.0 % |63| Modèle | 99.8 % |64| Année | 99.7 % |65| Kilométrage | 97.1 % |66| Prix | 98.6 % |67| Carburant | 97.1 % |68| Boîte (transmission) | 4.0 % |69| VIN | 61.2 % |70| Photos | 89.9 % |71| Carfax | 0.0 % |72| GPS (lat/lng) | 100.0 % |7374## Sources membres (BD live)7576| Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut |77|---|---|---|---|---|---|---|---|78| `excelmoto` | Excel Moto | Montréal | Montréal | 6 | 0 | 2026-09-13 16:15 | OK (6 trouvés) |79| `gabrielharleydavidson` | Gabriel Harley-Davidson Montréal | Montréal | Montréal | 28 | 0 | 2026-09-13 16:15 | OK (28 trouvés) |80| `glsport` | GL Sport | Saint-Gervais | Chaudière-Appalaches | 16 | 0 | 2026-09-13 16:15 | OK (16 trouvés) |81| `groupecontant` | Groupe Contant | Repentigny | Lanaudière | 64 | 0 | 2026-09-13 16:15 | OK (64 trouvés) |82| `groupeimperium` | Groupe Imperium | Chicoutimi | Saguenay–Lac-Saint-Jean | 9 | 0 | 2026-09-13 16:15 | OK (9 trouvés) |83| `mathiassports` | Mathias Sports | Saint-Mathias-sur-Richelieu | Montérégie | 111 | 0 | 2026-09-13 16:15 | OK (111 trouvés) |84| `mecamoto` | Mecamoto | Montréal | Montréal | 16 | 0 | 2026-09-13 16:15 | OK (16 trouvés) |85| `motoducharme` | Moto Ducharme | Joliette | Lanaudière | 18 | 0 | 2026-09-13 16:15 | OK (18 trouvés) |86| `motosillimitees` | Motos Illimitées | Terrebonne | Lanaudière | 240 | 0 | 2026-09-13 16:15 | OK (240 trouvés) |87| `motosthibaulttr` | Motos Thibault Trois-Rivières | Trois-Rivières | Mauricie | 19 | 0 | 2026-09-13 16:15 | OK (19 trouvés) |88| `rmmotosport` | RM Motosport | Victoriaville | Centre-du-Québec | 11 | 0 | 2026-09-13 16:15 | OK (11 trouvés) |89| `smsport` | SM Sport | Québec | Capitale-Nationale | 63 | 0 | 2026-09-13 16:15 | OK (63 trouvés) |90| `stjeromeharleydavidson` | St-Jérôme Harley-Davidson | Saint-Jérôme | Laurentides | 30 | 0 | 2026-09-13 16:15 | OK (30 trouvés) |9192## Erreurs de synchronisation récentes (sync_log, ok = 0)9394| Source | Quand | Message |95|---|---|---|96| `groupecontant` | 2026-08-30 04:47 | Exceeded 30 redirects. |97| `groupecontant` | 2026-08-30 01:52 | Exceeded 30 redirects. |98| `groupecontant` | 2026-08-28 21:53 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json |99| `groupecontant` | 2026-08-28 18:56 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json |100| `groupecontant` | 2026-08-28 15:57 | 404 Client Error: Not Found for url: https://www.contant.ca/data/vehicles-inventory-fr-items.json |101| `groupecontant` | 2026-08-27 22:00 | Expecting value: line 1 column 1 (char 0) |102