SPB Git forge

spb/immo-ka

Public

Immo-Ka — agrégateur des propriétés à vendre au Québec (73 connecteurs, ~40 000 annonces, React+FastAPI)

112commits 1branches 0releases
125.4 MBsize
maindefault branch
13 days agolast push
Python 47.5% HTML 27.9% TypeScript 15.5% CSS 7.2% JavaScript 2%
3.9 KB · 57 lines tsx
Raw Blame History
1// -----------------------------------------------------------------------------2// Immo-Ka — Agrégateur de propriétés à vendre (province de Québec)3// Auteur : Simon-Pierre Boucher — contact@spboucher.ai4// fiche/SourceDisclosure.tsx : fin de fiche — « Sources et méthodologie »5//   (source · rôle · date · lien) et rangée d'actions de clôture (sources,6//   signaler, partager, PDF).7// -----------------------------------------------------------------------------8import { Listing, sourceName } from "../api";9import { Ico } from "../components/Icons";10import { SectionCard, relTime } from "./ui";1112interface Src { n: string; r: string; d?: string; href?: string; }1314export default function SourceDisclosure({ l, onShare, dates }: {15  l: Listing; onShare: () => void; dates: { air?: number | null; gaz?: string | null };16}) {17  const maj = relTime(l.updated_at);18  const sources: Src[] = [19    { n: sourceName(l.source), r: "Annonce, prix, photos, caractéristiques et courtier (source originale)", d: maj ?? undefined, href: l.url },20    { n: "Vrai-Prix (Groupe KA)", r: "Estimation de valeur marchande et rôle d'évaluation apparié", href: l.vraiprix?.url ?? "https://www.vrai-prix.com" },21    { n: "Adresses Québec", r: "Géocodage de l'adresse (position sur la carte)" },22    { n: "Statistique Canada", r: "Recensement 2021 (aire de diffusion) et mesures de proximité", d: "2021" },23    { n: "Gouvernement du Québec (BDZI)", r: "Zones à risque d'inondation", href: "https://www.quebec.ca/agriculture-environnement-et-ressources-naturelles/eau/zones-inondables-mobilite-rives-littoral/cartographies" },24    { n: "MELCCFP (RSQAQ)", r: "Qualité de l'air — station la plus proche", d: dates.air ? String(dates.air) : undefined },25    { n: "INSPQ", r: "Îlots de chaleur et de fraîcheur urbains" },26    { n: "gazquebec.ca", r: "Prix de l'essence par station", d: dates.gaz ?? undefined, href: "https://gazquebec.ca" },27    { n: "OpenStreetMap · Mapbox", r: "Lieux à proximité, transport, fond de carte" },28    { n: "Institutions financières", r: "Taux hypothécaires publiés, collectés en continu (source et fraîcheur par taux)", href: "/taux-hypothecaires" },29    { n: "Hydro-Québec", r: "Estimation du coût d'électricité à l'adresse" },30    { n: "Immo-Ka", r: "Immo-Ka Score, coût de propriété, suivi et déduplication — calculs maison, indicatifs" },31  ];32  return (33    <SectionCard id="sources" title="Sources et méthodologie" icon={<Ico name="folder" size={18} />}34                 sub="Chaque donnée de cette fiche renvoie à sa source ; les calculs Immo-Ka sont indicatifs et documentés">35      <ul className="ik-sources">36        {sources.map((s) => (37          <li key={s.n}>38            <span className="n">{s.href ? <a href={s.href} target="_blank" rel="noopener noreferrer">{s.n}</a> : s.n}</span>39            {s.d && <span className="d">{s.d}</span>}40            <span className="r">{s.r}</span>41          </li>42        ))}43      </ul>44      <div className="ik-end" style={{ marginTop: 14 }}>45        <a href="/agences"><Ico name="folder" size={18} />Agences et sources<small>Toutes les sources Immo-Ka</small></a>46        <a href={`/contact?sujet=${encodeURIComponent(`Erreur sur la fiche ${l.uid}`)}`}><Ico name="alert" size={18} />Signaler une erreur<small>Prix, photos, adresse…</small></a>47        <button type="button" onClick={onShare}><Ico name="share" size={18} />Partager cette propriété<small>Lien de la fiche</small></button>48        <a href={`/api/listings/${encodeURIComponent(l.uid)}/pdf`} download><Ico name="doc" size={18} />Fiche PDF<small>{maj ? `Mise à jour ${maj}` : "Télécharger"}</small></a>49      </div>50      <p className="ik-fine" style={{ marginTop: 12 }}>51        Les prix et disponibilités sont ceux affichés par la source — chaque fiche renvoie à l'annonce originale de l'agence.52        Immo-Ka est un agrégateur indépendant.53      </p>54    </SectionCard>55  );56}57