Page /bot (transparence LouKaBot) + User-Agent pointant dessus
Explique le robot aux gestionnaires : cadence, respect de robots.txt, aucune donnée personnelle, contact pour flux officiel/retrait, consigne de blocage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3 changed files +61 −1
modified
frontend/src/App.tsx
+2 −0
@@ -9,6 +9,7 @@ import { fetchFacets, fetchSources, fetchStats, registerSourceNames, sourceName | |||||
| 9 | import CookieConsent from "./components/CookieConsent"; | 9 | import CookieConsent from "./components/CookieConsent"; | ||
| 10 | import Home from "./pages/Home"; | 10 | import Home from "./pages/Home"; | ||
| 11 | import ListingPage from "./pages/Listing"; | 11 | import ListingPage from "./pages/Listing"; | ||
| 12 | +import BotPage from "./pages/Bot"; | ||||
| 12 | import PasserellePage from "./pages/Passerelle"; | 13 | import PasserellePage from "./pages/Passerelle"; | ||
| 13 | import PrivacyPage from "./pages/Privacy"; | 14 | import PrivacyPage from "./pages/Privacy"; | ||
| 14 | import SourcesPage from "./pages/Sources"; | 15 | import SourcesPage from "./pages/Sources"; | ||
@@ -170,6 +171,7 @@ export default function App() { | |||||
| 170 | <Route path="/sources" element={<SourcesPage />} /> | 171 | <Route path="/sources" element={<SourcesPage />} /> | ||
| 171 | <Route path="/confidentialite" element={<PrivacyPage />} /> | 172 | <Route path="/confidentialite" element={<PrivacyPage />} /> | ||
| 172 | <Route path="/passerelle/:uid" element={<PasserellePage />} /> | 173 | <Route path="/passerelle/:uid" element={<PasserellePage />} /> | ||
| 174 | + <Route path="/bot" element={<BotPage />} /> | ||||
| 173 | <Route | 175 | <Route | ||
| 174 | path="*" | 176 | path="*" | ||
| 175 | element={ | 177 | element={ | ||
added
frontend/src/pages/Bot.tsx
+58 −0
@@ -0,0 +1,58 @@ | |||||
| 1 | +// ----------------------------------------------------------------------------- | ||||
| 2 | +// Lou-Ka — Agrégateur de logements à louer (province de Québec) | ||||
| 3 | +// Auteur : Simon-Pierre Boucher — contact@spboucher.ai | ||||
| 4 | +// pages/Bot.tsx : page publique expliquant LouKaBot aux gestionnaires | ||||
| 5 | +// (référencée dans le User-Agent du robot : +https://www.lou-ka.com/bot) | ||||
| 6 | +// ----------------------------------------------------------------------------- | ||||
| 7 | + | ||||
| 8 | +export default function BotPage() { | ||||
| 9 | + return ( | ||||
| 10 | + <div className="container legal"> | ||||
| 11 | + <span className="kicker">LouKaBot</span> | ||||
| 12 | + <h1>À propos de notre robot</h1> | ||||
| 13 | + | ||||
| 14 | + <section> | ||||
| 15 | + <p> | ||||
| 16 | + <b>LouKaBot</b> est le robot de synchronisation de Lou-Ka, un | ||||
| 17 | + agrégateur indépendant de logements à louer au Québec. Si vous voyez | ||||
| 18 | + ce User-Agent dans vos journaux, c'est nous : | ||||
| 19 | + </p> | ||||
| 20 | + <p><code>LouKaBot/1.0 (+https://www.lou-ka.com/bot; contact@spboucher.ai)</code></p> | ||||
| 21 | + </section> | ||||
| 22 | + | ||||
| 23 | + <section> | ||||
| 24 | + <h3>Ce que fait LouKaBot</h3> | ||||
| 25 | + <ul> | ||||
| 26 | + <li>Il consulte les <b>annonces de logements publiques</b> de votre site | ||||
| 27 | + pour les référencer sur Lou-Ka, avec un lien direct vers votre | ||||
| 28 | + annonce originale — chaque visiteur intéressé vous est renvoyé.</li> | ||||
| 29 | + <li>Cadence limitée : au plus <b>~1 requête par seconde</b> par site, | ||||
| 30 | + une à deux synchronisations par heure, avec mise en cache des pages | ||||
| 31 | + déjà vues pour minimiser les requêtes.</li> | ||||
| 32 | + <li>Il respecte <code>robots.txt</code> et ne collecte <b>aucune donnée | ||||
| 33 | + personnelle</b> — seulement le contenu des annonces publiques | ||||
| 34 | + (prix, adresse, photos, description).</li> | ||||
| 35 | + </ul> | ||||
| 36 | + </section> | ||||
| 37 | + | ||||
| 38 | + <section> | ||||
| 39 | + <h3>Vous êtes gestionnaire immobilier ?</h3> | ||||
| 40 | + <p> | ||||
| 41 | + Lou-Ka vous amène des locataires sans intermédiaire : nous affichons | ||||
| 42 | + vos annonces avec votre nom et renvoyons chez vous pour la visite et | ||||
| 43 | + la signature. Si vous préférez nous fournir un flux officiel (JSON, | ||||
| 44 | + XML, iCal…), si vous souhaitez ajuster la cadence, corriger une | ||||
| 45 | + information ou retirer vos annonces, écrivez-nous — nous répondons | ||||
| 46 | + rapidement : | ||||
| 47 | + </p> | ||||
| 48 | + <p><a href="mailto:contact@spboucher.ai"><b>contact@spboucher.ai</b></a></p> | ||||
| 49 | + </section> | ||||
| 50 | + | ||||
| 51 | + <div className="fine"> | ||||
| 52 | + Pour bloquer LouKaBot : ajoutez <code>User-agent: LouKaBot</code> /{" "} | ||||
| 53 | + <code>Disallow: /</code> à votre robots.txt — le retrait est automatique | ||||
| 54 | + à la synchronisation suivante. | ||||
| 55 | + </div> | ||||
| 56 | + </div> | ||||
| 57 | + ); | ||||
| 58 | +} | ||||
modified
louka/connectors/base.py
+1 −1
@@ -15,7 +15,7 @@ from ..schema import Listing | |||||
| 15 | 15 | ||||
| 16 | USER_AGENT = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) " | 16 | USER_AGENT = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) " | ||
| 17 | "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36 " | 17 | "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36 " | ||
| 18 | − "LouKaBot/1.0 (+contact@spboucher.ai)") | 18 | + "LouKaBot/1.0 (+https://www.lou-ka.com/bot; contact@spboucher.ai)") | ||
| 19 | 19 | ||||
| 20 | FIRECRAWL_API = "https://api.firecrawl.dev/v1/scrape" | 20 | FIRECRAWL_API = "https://api.firecrawl.dev/v1/scrape" | ||
| 21 | 21 | ||||
| 22 | 22 | ||||