SPB Git forge

spb/trouve-ka

Public ★ Pinned

Trouve-KA — moteur de recherche web indépendant, Québec-first. Crawler distribué, index OpenSearch, ranking bilingue, galerie d'images. En prod : www.trouve-ka.com

40commits 1branches 0releases
9.2 MBsize
maindefault branch
23 days agolast push
Python 51.9% TypeScript 32.7% JavaScript 4.8% CSS 4.1% Shell 2.9% HTML 1.8% SQL 1.5%
1.8 KB · 48 lines typescript
Raw Blame History
1/**2 * Trouve-KA — les 14 sites indexés de l'écosystème Groupe KA3 * Author: Simon-Pierre Boucher4 * Contact: contact@spboucher.ai5 *6 * Source des pilules de filtre « par site » de la page de recherche et du7 * wordmark affiché sur chaque résultat (dérivé du champ `domain`).8 */910export interface KaSite {11  /** Wordmark officiel (ex. « Lou·Ka »). */12  wordmark: string;13  /** Domaine canonique indexé (avec www). */14  domain: string;15}1617export const KA_SITES: readonly KaSite[] = [18  { wordmark: "Groupe KA", domain: "www.groupe-ka.com" },19  { wordmark: "Trouve·Ka", domain: "www.trouve-ka.com" },20  { wordmark: "Lou·Ka", domain: "www.lou-ka.com" },21  { wordmark: "Immo·Ka", domain: "www.immo-ka.com" },22  { wordmark: "Vrai-Prix", domain: "www.vrai-prix.com" },23  { wordmark: "Toit·Ka", domain: "www.toit-ka.com" },24  { wordmark: "Valoplex", domain: "www.valoplex.com" },25  { wordmark: "Auto·Ka", domain: "www.auto-ka.com" },26  { wordmark: "Fabri·Ka", domain: "www.fabri-ka.com" },27  { wordmark: "Food·Ka", domain: "www.food-ka.com" },28  { wordmark: "Resto·Ka", domain: "www.resto-ka.com" },29  { wordmark: "Sorti·Ka", domain: "www.sorti-ka.com" },30  { wordmark: "Créa·Ka", domain: "www.crea-ka.com" },31  { wordmark: "Job·Ka", domain: "www.job-ka.com" },32];3334/** Normalise un domaine pour la comparaison (retire le préfixe www.). */35function bareDomain(domain: string): string {36  return domain.trim().toLowerCase().replace(/^www\./, "");37}3839/**40 * Wordmark du site KA correspondant à un domaine (`www.lou-ka.com` ou41 * `lou-ka.com`). Domaine inconnu → le domaine tel quel.42 */43export function siteWordmark(domain: string): string {44  const bare = bareDomain(domain);45  const site = KA_SITES.find((s) => bareDomain(s.domain) === bare);46  return site ? site.wordmark : domain;47}48