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
Python 51.9%
TypeScript 32.7%
JavaScript 4.8%
CSS 4.1%
Shell 2.9%
HTML 1.8%
SQL 1.5%
1/**2 * Trouve-KA — page « Mes favoris » (Mon univers Ka)3 * Author: Simon-Pierre Boucher4 * Contact: contact@spboucher.ai5 *6 * Enveloppe serveur : vérifie la session KA ID (cookie tk_ka_session).7 * Connecté → liste des favoris lue au hub Groupe KA (client, /api/favorites) ;8 * sinon → invitation « Se connecter avec KA ID » (flux SSO existant).9 */1011import type { Metadata } from "next";12import { cookies } from "next/headers";13import { SESSION_COOKIE, readSession } from "@/lib/ka-auth";14import { FavorisContent } from "./favoris-content";1516export const metadata: Metadata = {17 title: "Mes favoris",18 description:19 "Mon univers Ka — vos favoris, partagés entre toutes les plateformes du Groupe KA.",20 robots: { index: false, follow: true },21};2223export default async function FavorisPage() {24 const jar = await cookies();25 const session = readSession(jar.get(SESSION_COOKIE)?.value);2627 if (!session) {28 return (29 <main id="contenu" className="mx-auto w-full max-w-3xl flex-1 px-4 py-16">30 <div className="rise text-center">31 <p className="klabel">Mon univers Ka</p>32 <h1 className="mx-auto mt-4 max-w-xl text-3xl font-bold leading-tight tracking-[-0.03em] sm:text-4xl">33 Vos favoris, sur <span className="hl">toutes</span> les plateformes34 KA.35 </h1>36 <p className="mx-auto mt-5 max-w-md text-sm leading-relaxed text-ink-2">37 Touchez le cœur ♥ d'un résultat pour le garder dans Mon38 univers Ka — la même liste vous suit sur les 14 sites du Groupe39 KA. Connectez-vous avec votre KA ID pour commencer.40 </p>41 <a42 href="/api/auth/ka/login?next=%2Ffavoris"43 className="btn btn-primary mt-8"44 >45 Se connecter avec KA ID46 </a>47 </div>48 </main>49 );50 }5152 return <FavorisContent name={session.name} />;53}54