API-KA — plateforme centrale : collecte quotidienne des 8 services KA, historisation append-only et API publique sur www.api-ka.com
Python 60.9%
HTML 21%
TypeScript 7.3%
JavaScript 5.2%
CSS 4.8%
Shell 0.8%
1# ============================================2# Projet : API-KA3# Fichier : src/collectors/__init__.py4# Node : m3u96b5# Author : Simon-Pierre Boucher6# Contact : contact@spboucher.ai7# Date : 2026-08-168# ============================================9"""Collecteurs des 11 services KA et fabriques associées."""1011from __future__ import annotations1213from src.collectors.autoka_collector import AutokaCollector14from src.collectors.base_collector import BaseCollector15from src.collectors.creaka_collector import CreakaCollector16from src.collectors.fabrika_collector import FabrikaCollector17from src.collectors.foodka_collector import FoodkaCollector18from src.collectors.houseka_collector import HousekaCollector19from src.collectors.immoka_collector import ImmokaCollector20from src.collectors.jobka_collector import JobkaCollector21from src.collectors.louka_collector import LoukaCollector22from src.collectors.rentka_collector import RentkaCollector23from src.collectors.restoka_collector import RestokaCollector24from src.collectors.sortika_collector import SortikaCollector2526COLLECTORS: dict[str, type[BaseCollector]] = {27 "louka": LoukaCollector,28 "immoka": ImmokaCollector,29 "houseka": HousekaCollector,30 "foodka": FoodkaCollector,31 "autoka": AutokaCollector,32 "fabrika": FabrikaCollector,33 "restoka": RestokaCollector,34 "sortika": SortikaCollector,35 "creaka": CreakaCollector,36 "jobka": JobkaCollector,37 "rentka": RentkaCollector,38}394041def get_collector(service: str) -> BaseCollector:42 """Instancie le collecteur d'un service donné.4344 Raises:45 ValueError: Si le service est inconnu.46 """47 try:48 return COLLECTORS[service]()49 except KeyError as exc:50 raise ValueError(f"Service inconnu : {service}") from exc515253def build_collectors() -> list[BaseCollector]:54 """Instancie les 11 collecteurs, dans l'ordre canonique des services."""55 return [cls() for cls in COLLECTORS.values()]56