archive 2026-09-04 : retrait de crea-ka, trouve-ka, resto-ka, house-ka, rent-ka (registre, monitor, social, insights, UI)
12 changed files +17 −39
modified
public/app.js
+1 −1
@@ -1987,7 +1987,7 @@ | ||
| 1987 | 1987 | // ===== STUDIO_SOCIAL v3 (générateurs + galerie + loading) ===== |
| 1988 | 1988 | (function(){ |
| 1989 | 1989 | const $ = (id) => document.getElementById(id); |
| 1990 | − const SITE_LABEL = {"lou-ka":"Lou·Ka","rent-ka":"Rent·Ka","immo-ka":"Immo·Ka","house-ka":"House·Ka","vrai-prix":"Vrai-Prix","auto-ka":"Auto·Ka","food-ka":"Food·Ka","fabri-ka":"Fabri·Ka","resto-ka":"Resto·Ka","sorti-ka":"Sorti·Ka","crea-ka":"Créa·Ka","job-ka":"Job·Ka","trouve-ka":"Trouve·Ka"}; | |
| 1990 | + const SITE_LABEL = {"lou-ka":"Lou·Ka","immo-ka":"Immo·Ka","vrai-prix":"Vrai-Prix","auto-ka":"Auto·Ka","food-ka":"Food·Ka","fabri-ka":"Fabri·Ka","sorti-ka":"Sorti·Ka","job-ka":"Job·Ka",}; | |
| 1991 | 1991 | // overlay de chargement |
| 1992 | 1992 | let ov; |
| 1993 | 1993 | function showLoading(msg){ |
modified
public/index.html
+2 −2
@@ -281,7 +281,7 @@ document.documentElement.dataset.theme=dark?'dark':'light';}catch(e){}})();</scr | ||
| 281 | 281 | <h3>🖼️ Publication</h3> |
| 282 | 282 | <textarea id="stPostPrompt" rows="2" placeholder="Sujet (optionnel). Ex : dernière propriété à vendre sur Immo-Ka."></textarea> |
| 283 | 283 | <div class="soc-actions"> |
| 284 | − <select id="stPostSite" class="soc-select"><option value="">Choix auto</option><option value="lou-ka">Lou·Ka</option><option value="immo-ka">Immo·Ka</option><option value="vrai-prix">Vrai-Prix</option><option value="auto-ka">Auto·Ka</option><option value="food-ka">Food·Ka</option><option value="fabri-ka">Fabri·Ka</option><option value="resto-ka">Resto·Ka</option><option value="sorti-ka">Sorti·Ka</option><option value="crea-ka">Créa·Ka</option><option value="job-ka">Job·Ka</option><option value="trouve-ka">Trouve·Ka</option></select> | |
| 284 | + <select id="stPostSite" class="soc-select"><option value="">Choix auto</option><option value="lou-ka">Lou·Ka</option><option value="immo-ka">Immo·Ka</option><option value="vrai-prix">Vrai-Prix</option><option value="auto-ka">Auto·Ka</option><option value="food-ka">Food·Ka</option><option value="fabri-ka">Fabri·Ka</option><option value="sorti-ka">Sorti·Ka</option><option value="job-ka">Job·Ka</option></select> | |
| 285 | 285 | <button id="stPostGen" class="btn-cta small">✨ Générer une image</button> |
| 286 | 286 | </div> |
| 287 | 287 | </div> |
@@ -289,7 +289,7 @@ document.documentElement.dataset.theme=dark?'dark':'light';}catch(e){}})();</scr | ||
| 289 | 289 | <h3>🎬 Reel vidéo</h3> |
| 290 | 290 | <textarea id="stReelPrompt" rows="2" placeholder="Sujet (optionnel). Ex : le dernier logement en annonce sur Lou-Ka."></textarea> |
| 291 | 291 | <div class="soc-actions"> |
| 292 | − <select id="stReelSite" class="soc-select"><option value="">Choix auto</option><option value="lou-ka">Lou·Ka</option><option value="immo-ka">Immo·Ka</option><option value="vrai-prix">Vrai-Prix</option><option value="auto-ka">Auto·Ka</option><option value="food-ka">Food·Ka</option><option value="fabri-ka">Fabri·Ka</option><option value="resto-ka">Resto·Ka</option><option value="sorti-ka">Sorti·Ka</option><option value="crea-ka">Créa·Ka</option><option value="job-ka">Job·Ka</option><option value="trouve-ka">Trouve·Ka</option></select> | |
| 292 | + <select id="stReelSite" class="soc-select"><option value="">Choix auto</option><option value="lou-ka">Lou·Ka</option><option value="immo-ka">Immo·Ka</option><option value="vrai-prix">Vrai-Prix</option><option value="auto-ka">Auto·Ka</option><option value="food-ka">Food·Ka</option><option value="fabri-ka">Fabri·Ka</option><option value="sorti-ka">Sorti·Ka</option><option value="job-ka">Job·Ka</option></select> | |
| 293 | 293 | <button id="stReelGen" class="btn-cta small">🎬 Générer un reel</button> |
| 294 | 294 | </div> |
| 295 | 295 | <div class="soc-actions" style="margin-top:8px"> |
modified
server/monitor.js
+0 −5
@@ -15,18 +15,13 @@ import { getSites, getNodes, selfNode, sshTarget } from './registry.js'; | ||
| 15 | 15 | const _SITES_LEGACY_2026_08 = [ |
| 16 | 16 | { app: 'lou-ka', label: 'Lou·Ka', domain: 'www.lou-ka.com', node: 'M3U96b', pm2: 'lou-ka-web', dir: '~/apps/lou-ka', deployed: '2026-08' }, |
| 17 | 17 | { app: 'immo-ka', label: 'Immo·Ka', domain: 'www.immo-ka.com', node: 'M4M64a', pm2: 'immo-ka-web', dir: '~/apps/immo-ka', deployed: '2026-08' }, |
| 18 | − { app: 'house-ka', label: 'House·Ka', domain: 'www.house-ka.com', node: 'M4M64b', pm2: 'house-ka-web', dir: '~/apps/house-ka', deployed: '2026-08' }, | |
| 19 | − { app: 'rent-ka', label: 'Rent·Ka', domain: 'www.rent-ka.com', node: 'M4M36', pm2: 'rent-ka-web', dir: '~/apps/rent-ka', deployed: '2026-08' }, | |
| 20 | 18 | { app: 'vrai-prix', label: 'Vrai-Prix', domain: 'www.vrai-prix.com', node: 'M3U96a', pm2: 'vrai-prix', dir: '~/apps/vrai-prix', deployed: '2026-08' }, |
| 21 | 19 | { app: 'valoplex', label: 'ValoPlex', domain: 'www.valoplex.com', node: 'M3U96a', pm2: 'valoplex', dir: '~/apps/valoplex', deployed: '2026-08' }, |
| 22 | 20 | { app: 'auto-ka', label: 'Auto·Ka', domain: 'www.auto-ka.com', node: 'M4M64b', pm2: 'auto-ka-web', dir: '~/auto-ka', deployed: '2026-08' }, |
| 23 | 21 | { app: 'fabri-ka', label: 'Fabri·Ka', domain: 'www.fabri-ka.com', node: 'M4M64a', pm2: 'fabri-ka-web', dir: '~/fabri-ka', deployed: '2026-08' }, |
| 24 | 22 | { app: 'food-ka', label: 'Food·Ka', domain: 'www.food-ka.com', node: 'M4M64b', pm2: 'food-ka-web', dir: '~/apps/food-ka', deployed: '2026-08' }, |
| 25 | − { app: 'resto-ka', label: 'Resto·Ka', domain: 'www.resto-ka.com', node: 'M3U96b', pm2: 'resto-ka', dir: '~/apps/resto-ka', deployed: '2026-08' }, | |
| 26 | 23 | { app: 'sorti-ka', label: 'Sorti·Ka', domain: 'www.sorti-ka.com', node: 'M3U96a', pm2: 'sorti-ka-web', dir: '~/apps/sorti-ka', deployed: '2026-08' }, |
| 27 | − { app: 'crea-ka', label: 'Créa·Ka', domain: 'www.crea-ka.com', node: 'M3U96b', pm2: 'crea-ka-web', dir: '~/apps/crea-ka', deployed: '2026-08' }, | |
| 28 | 24 | { app: 'job-ka', label: 'Job·Ka', domain: 'www.job-ka.com', node: 'M3U96a', pm2: 'job-ka-web', dir: '~/apps/job-ka', deployed: '2026-08' }, |
| 29 | − { app: 'trouve-ka', label: 'Trouve·Ka', domain: 'www.trouve-ka.com', node: 'M2M32', pm2: 'tk-web', dir: '~/trouve-ka', deployed: '2026-08' }, | |
| 30 | 25 | { app: 'groupe-ka', label: 'Groupe·Ka', domain: 'www.groupe-ka.com', node: 'M3U96b', pm2: 'groupe-ka', dir: '~/apps/groupe-ka', deployed: '2026-08' }, |
| 31 | 26 | { app: 'ka-stats', label: 'Ka·Stats', domain: 'www.ka-stats.com', node: 'M1M32', pm2: 'ka-stats', dir: '~/apps/ka-stats', deployed: '2026-08' }, |
| 32 | 27 | // Agents gardiens KA Guardian — un seul repo sur M4M36, process launchd (unit), pas de pm2 sur ce nœud |
modified
server/registry.js
+0 −5
@@ -28,18 +28,13 @@ const ENV_PATH = '/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin | ||
| 28 | 28 | // monitor:false / project:false : exclure du monitoring / des projets Claude Code. |
| 29 | 29 | export const KA_CATALOG = { |
| 30 | 30 | 'lou-ka': { label: 'Lou·Ka' }, |
| 31 | − 'rent-ka': { label: 'Rent·Ka' }, | |
| 32 | 31 | 'immo-ka': { label: 'Immo·Ka' }, |
| 33 | − 'house-ka': { label: 'House·Ka' }, | |
| 34 | 32 | 'vrai-prix': { label: 'Vrai-Prix' }, |
| 35 | 33 | 'auto-ka': { label: 'Auto·Ka' }, |
| 36 | 34 | 'fabri-ka': { label: 'Fabri·Ka' }, |
| 37 | 35 | 'food-ka': { label: 'Food·Ka' }, |
| 38 | − 'resto-ka': { label: 'Resto·Ka' }, | |
| 39 | 36 | 'sorti-ka': { label: 'Sorti·Ka' }, |
| 40 | − 'crea-ka': { label: 'Créa·Ka' }, | |
| 41 | 37 | 'job-ka': { label: 'Job·Ka' }, |
| 42 | − 'trouve-ka': { label: 'Trouve·Ka', pm2: 'tk-web' }, | |
| 43 | 38 | 'groupe-ka': { label: 'Groupe·Ka' }, |
| 44 | 39 | 'api-ka': { label: 'API·Ka', pm2: 'apika-api' }, |
| 45 | 40 | 'ka-stats': { label: 'Ka·Stats' }, |
modified
server/server.js
+1 −1
@@ -62,7 +62,7 @@ const UPGRADER_MODEL = config.upgraderModel || 'claude-opus-4-8'; | ||
| 62 | 62 | const KA_KNOWLEDGE = `Tu es l'"upgradeur de prompt" de la console administration-ka.com. Ta seule tâche : réécrire la demande brute de l'utilisateur en un prompt EXCELLENT destiné à Claude Code, qui s'exécute sur le nœud d'une app du Groupe KA. Tu ne réponds jamais à la demande toi-même, tu ne codes pas : tu produis UNIQUEMENT le prompt amélioré, prêt à être envoyé. |
| 63 | 63 | |
| 64 | 64 | # Écosystème Groupe KA (12 apps web, stack Node/React, cluster MacLustr) |
| 65 | −- lou-ka (lou-ka.com) : location immobilière/logements. rent-ka (rent-ka.com) : locations résidentielles Canada hors Québec, site EN. immo-ka (immo-ka.com) : achat/vente immobilier. house-ka (house-ka.com) : maisons à vendre Canada hors Québec, site EN. vrai-prix (vrai-prix.com) : comparateur de prix. auto-ka (auto-ka.com) : véhicules. fabri-ka (fabri-ka.com) : fabricants/artisans/friperies. food-ka (food-ka.com) : alimentation/épicerie. resto-ka (resto-ka.com) : restaurants. sorti-ka (sorti-ka.com) : sorties/événements. crea-ka (crea-ka.com) : créateurs de contenu QC (multi-plateforme). job-ka (job-ka.com) : emplois. trouve-ka (trouve-ka.com) : recherche/annuaire. api-ka (api-ka.com) : API centrale + supervision des connecteurs. ka-stats (ka-stats.com) : Ka·Stats, l'observatoire de statistiques de l'écosystème — agrège les dashboards /api/stats/dashboard des sites (Node zéro-dépendance). groupe-ka.com : hub + KA ID (SSO). ka2/ka4/ka6 (ka2.bot/ka4.bot/ka6.bot) : agents gardiens autonomes des connecteurs (KA Guardian — un seul repo Python/FastAPI, process launchd com.kaX.guardian, PAS pm2). Marché cible : Québec (fr-CA). | |
| 65 | +- lou-ka (lou-ka.com) : location immobilière/logements. immo-ka (immo-ka.com) : achat/vente immobilier. vrai-prix (vrai-prix.com) : comparateur de prix. auto-ka (auto-ka.com) : véhicules. fabri-ka (fabri-ka.com) : fabricants/artisans/friperies. food-ka (food-ka.com) : alimentation/épicerie. sorti-ka (sorti-ka.com) : sorties/événements. job-ka (job-ka.com) : emplois. api-ka (api-ka.com) : API centrale + supervision des connecteurs. ka-stats (ka-stats.com) : Ka·Stats, l'observatoire de statistiques de l'écosystème — agrège les dashboards /api/stats/dashboard des sites (Node zéro-dépendance). groupe-ka.com : hub + KA ID (SSO). ka2/ka4/ka6 (ka2.bot/ka4.bot/ka6.bot) : agents gardiens autonomes des connecteurs (KA Guardian — un seul repo Python/FastAPI, process launchd com.kaX.guardian, PAS pm2). Marché cible : Québec (fr-CA). | |
| 66 | 66 | - EMPLACEMENTS : les nœuds, répertoires et process PM2 réels de chaque app sont fournis en fin de ce message (bloc « Emplacements ACTUELS », issu du registre mld) — ils changent au fil des migrations, ne jamais en citer de mémoire. |
| 67 | 67 | - Architecture commune : back Node (souvent Express/Fastify), front React/Next ou Vite, données via connecteurs (scrapers) + SQLite/Postgres, PM2 pour les process, ngrok pour les domaines. Beaucoup d'apps ont un backend "sync"/crawler et une couche qualité (published/quarantaine). |
| 68 | 68 | |
modified
server/social.js
+3 −3
@@ -452,7 +452,7 @@ export async function renderCard(insight) { | ||
| 452 | 452 | } |
| 453 | 453 | |
| 454 | 454 | // --- produit vedette (photo réelle) pour le genre « spotlight » --- |
| 455 | −const KNOWN_SITES = ['lou-ka','immo-ka','vrai-prix','auto-ka','food-ka','fabri-ka','resto-ka','sorti-ka','crea-ka','job-ka','trouve-ka']; | |
| 455 | +const KNOWN_SITES = ['lou-ka','immo-ka','vrai-prix','auto-ka','food-ka','fabri-ka','sorti-ka','job-ka']; | |
| 456 | 456 | const SPOT = { |
| 457 | 457 | 'lou-ka': { url: 'https://www.lou-ka.com/api/listings?limit=24', arr: 'listings', minPrice: 800 }, |
| 458 | 458 | 'immo-ka': { url: 'https://www.immo-ka.com/api/listings?limit=24', arr: 'listings', minPrice: 180000 }, |
@@ -553,7 +553,7 @@ async function fetchItems(site, count) { | ||
| 553 | 553 | async function planFromPrompt(prompt) { |
| 554 | 554 | const model = CFG.socialModel || CFG.upgraderModel || 'claude-opus-4-8'; |
| 555 | 555 | const sys = "Tu es le planificateur du Studio KA. À partir d'une demande, renvoie UNIQUEMENT un objet JSON (rien d'autre) : {\"site\":\"<id ou vide>\",\"mode\":\"stat|spotlight|list|grid|donut|quote\",\"count\":<1-6>}.\n" + |
| 556 | − "Sites: lou-ka (logements à louer), immo-ka (propriétés à vendre), vrai-prix (évaluations), auto-ka (autos occasion), food-ka (épicerie/soldes), fabri-ka (produits québécois), resto-ka (restos), sorti-ka (événements), crea-ka (créateurs), job-ka (emplois), trouve-ka (recherche web).\n" + | |
| 556 | + "Sites: lou-ka (logements à louer), immo-ka (propriétés à vendre), vrai-prix (évaluations), auto-ka (autos occasion), food-ka (épicerie/soldes), fabri-ka (produits québécois), sorti-ka (événements), job-ka (emplois).\n" + | |
| 557 | 557 | "Modes: 'stat' = un chiffre marquant ; 'spotlight' = UNE annonce/produit en vedette avec photo ; 'list' = une LISTE de plusieurs derniers items ; 'grid' = MOSAÏQUE de 4 photos d'items ; 'donut' = un POURCENTAGE mis en scène en anneau ; 'quote' = le fait raconté en grande typo (« le saviez-vous »).\n" + |
| 558 | 558 | "Règles: 'liste/derniers/plusieurs/top N/montre' => list (count = N demandé ou 5). 'mosaïque/collage/en images' => grid. 'dernier/une annonce/en vedette' => spotlight. 'pourcentage/part/proportion' => donut. 'fait/anecdote/saviez-vous/storytelling' => quote. Sinon stat. list/grid/spotlight ne valent que pour lou-ka, immo-ka, fabri-ka, sorti-ka ; sinon stat/donut/quote. Choisis le site le plus pertinent."; |
| 559 | 559 | try { |
@@ -856,7 +856,7 @@ export function genBatchStatus(){ return { running: genBatchRunning }; } | ||
| 856 | 856 | |
| 857 | 857 | // ---------- Lot de reels (génération + publication assistée) ---------- |
| 858 | 858 | let batchRunning = false; |
| 859 | −export const REEL_BATCH_DEFAULT = ['lou-ka','immo-ka','fabri-ka','sorti-ka','food-ka','auto-ka','vrai-prix','crea-ka','trouve-ka','resto-ka']; | |
| 859 | +export const REEL_BATCH_DEFAULT = ['lou-ka','immo-ka','fabri-ka','sorti-ka','food-ka','auto-ka','vrai-prix']; | |
| 860 | 860 | export function startReelBatch(sites) { |
| 861 | 861 | if (batchRunning) return { started: false, reason: 'lot déjà en cours' }; |
| 862 | 862 | batchRunning = true; |
added
server/social/__pycache__/insights.cpython-314.pyc
+0 −0
Binary file not shown.
added
server/social/__pycache__/make_reel.cpython-314.pyc
+0 −0
Binary file not shown.
added
server/social/__pycache__/render_card_html.cpython-314.pyc
+0 −0
Binary file not shown.
modified
server/social/insights.py
+10 −16
@@ -19,28 +19,23 @@ CTX.verify_mode = ssl.CERT_NONE | ||
| 19 | 19 | LIME = "#d9f26b" |
| 20 | 20 | ACCENT = { |
| 21 | 21 | "lou-ka": "#ff6a00", "immo-ka": "#e23744", "food-ka": "#1f9d55", |
| 22 | − "fabri-ka": "#c4532e", "resto-ka": "#f08c00", "auto-ka": "#ff5a2a", | |
| 23 | − "vrai-prix": LIME, "trouve-ka": LIME, "sorti-ka": LIME, | |
| 24 | − "crea-ka": LIME, "job-ka": LIME, "groupe-ka": LIME, | |
| 22 | + "fabri-ka": "#c4532e", "auto-ka": "#ff5a2a", | |
| 23 | + "vrai-prix": LIME, "sorti-ka": LIME, "job-ka": LIME, "groupe-ka": LIME, | |
| 25 | 24 | } |
| 26 | 25 | LABELS = { |
| 27 | 26 | "lou-ka": "Lou·Ka", "immo-ka": "Immo·Ka", "food-ka": "Food·Ka", |
| 28 | − "fabri-ka": "Fabri·Ka", "resto-ka": "Resto·Ka", "auto-ka": "Auto·Ka", | |
| 29 | − "vrai-prix": "Vrai-Prix", "trouve-ka": "Trouve·Ka", "sorti-ka": "Sorti·Ka", | |
| 30 | − "crea-ka": "Créa·Ka", "job-ka": "Job·Ka", "trouve-ka": "Trouve·Ka", | |
| 27 | + "fabri-ka": "Fabri·Ka", "auto-ka": "Auto·Ka", | |
| 28 | + "vrai-prix": "Vrai-Prix", "sorti-ka": "Sorti·Ka", "job-ka": "Job·Ka", | |
| 31 | 29 | } |
| 32 | 30 | URLS = { |
| 33 | 31 | "lou-ka": "https://www.lou-ka.com/api/stats/detailed", |
| 34 | 32 | "immo-ka": "https://www.immo-ka.com/api/stats", |
| 35 | 33 | "food-ka": "https://www.food-ka.com/api/stats", |
| 36 | 34 | "fabri-ka": "https://www.fabri-ka.com/api/stats", |
| 37 | − "resto-ka": "https://www.resto-ka.com/api/stats", | |
| 38 | 35 | "auto-ka": "https://www.auto-ka.com/api/stats", |
| 39 | 36 | "vrai-prix": "https://www.vrai-prix.com/api/stats", |
| 40 | 37 | "sorti-ka": "https://www.sorti-ka.com/api/stats", |
| 41 | − "crea-ka": "https://www.crea-ka.com/api/stats", | |
| 42 | 38 | "job-ka": "https://www.job-ka.com/api/stats", |
| 43 | − "trouve-ka": "https://www.trouve-ka.com/api/status", | |
| 44 | 39 | } |
| 45 | 40 | |
| 46 | 41 | |
@@ -198,7 +193,7 @@ def ex_fabri_ka(d): | ||
| 198 | 193 | def ex_resto_ka(d): |
| 199 | 194 | out = [] |
| 200 | 195 | total = d.get("restaurants", 0) |
| 201 | − out.append(mk("resto-ka", "total", fr(total), "restaurants répertoriés au Québec", | |
| 196 | + out.append(mk("total", fr(total), "restaurants répertoriés au Québec", | |
| 202 | 197 | [(fr(d.get("items", 0)), "plats aux menus"), (fr(d.get("menus", 0)), "menus complets"), |
| 203 | 198 | (fr(d.get("regions", 0)), "régions")], |
| 204 | 199 | f"Resto·Ka répertorie {fr(total)} restaurants et {fr(d.get('items',0))} plats détaillés " |
@@ -207,7 +202,7 @@ def ex_resto_ka(d): | ||
| 207 | 202 | tagline="Tous les restos du Québec, une seule adresse.")) |
| 208 | 203 | by = sorted([x for x in d.get("by_region", []) if x.get("n")], key=lambda x: -x["n"])[:6] |
| 209 | 204 | if by: |
| 210 | − out.append(mk("resto-ka", "regions", fr(total), "restaurants, par région", | |
| 205 | + out.append(mk("regions", fr(total), "restaurants, par région", | |
| 211 | 206 | [(fr(d.get("items", 0)), "plats"), (fr(d.get("inspections", 0)), "inspections MAPAQ"), |
| 212 | 207 | (fr(d.get("with_alcohol_permit", 0)), "permis d'alcool")], |
| 213 | 208 | "Le Québec gourmand région par région, des grands centres aux régions.", |
@@ -236,7 +231,7 @@ def ex_crea_ka(d): | ||
| 236 | 231 | total = d.get("creators", 0) |
| 237 | 232 | bp = d.get("by_platform", {}) |
| 238 | 233 | bars = sorted(bp.items(), key=lambda x: -x[1])[:6] |
| 239 | − out.append(mk("crea-ka", "creators", fr(total), "créateurs de contenu québécois recensés", | |
| 234 | + out.append(mk("creators", fr(total), "créateurs de contenu québécois recensés", | |
| 240 | 235 | [(fr(d.get("accounts", 0)), "comptes reliés"), |
| 241 | 236 | (str(len(bp)), "plateformes"), (str(len(d.get("by_niche", {}))), "niches")], |
| 242 | 237 | f"Créa·Ka a cartographié {fr(total)} créateurs de contenu québécois, avec {fr(d.get('accounts',0))} " |
@@ -265,7 +260,7 @@ def ex_job_ka(d): | ||
| 265 | 260 | def ex_trouve_ka(d): |
| 266 | 261 | out = [] |
| 267 | 262 | pages = d.get("pages_indexed", 0) |
| 268 | − out.append(mk("trouve-ka", "pages", fr(pages), "pages web québécoises indexées", | |
| 263 | + out.append(mk("pages", fr(pages), "pages web québécoises indexées", | |
| 269 | 264 | [(fr(d.get("domains_count", 0)), "domaines"), (fr(d.get("indexed_last_hour", 0)), "pages/heure"), |
| 270 | 265 | ("100 %", "recherche sémantique")], |
| 271 | 266 | f"Trouve·Ka a indexé {fr(pages)} pages web québécoises sur {fr(d.get('domains_count',0))} domaines, " |
@@ -277,9 +272,8 @@ def ex_trouve_ka(d): | ||
| 277 | 272 | |
| 278 | 273 | EXTRACT = { |
| 279 | 274 | "lou-ka": ex_lou_ka, "immo-ka": ex_immo_ka, "vrai-prix": ex_vrai_prix, |
| 280 | − "auto-ka": ex_auto_ka, "food-ka": ex_food_ka, "fabri-ka": ex_fabri_ka, | |
| 281 | − "resto-ka": ex_resto_ka, "sorti-ka": ex_sorti_ka, "crea-ka": ex_crea_ka, | |
| 282 | − "job-ka": ex_job_ka, "trouve-ka": ex_trouve_ka, | |
| 275 | + "auto-ka": ex_auto_ka, "food-ka": ex_food_ka, "fabri-ka": ex_fabri_ka, "sorti-ka": ex_sorti_ka, | |
| 276 | + "job-ka": ex_job_ka, | |
| 283 | 277 | } |
| 284 | 278 | |
| 285 | 279 | |
modified
server/social/make_reel.py
+0 −3
@@ -30,12 +30,9 @@ PALETTES={ | ||
| 30 | 30 | "immo-ka":{"a":"#e23744","b":"#ff6b76","g1":"#2a0c10","g2":"#0d0a0b"}, |
| 31 | 31 | "food-ka":{"a":"#1f9d55","b":"#5fd08a","g1":"#07230f","g2":"#0a0d0b"}, |
| 32 | 32 | "fabri-ka":{"a":"#c4532e","b":"#e8895f","g1":"#241009","g2":"#0d0a09"}, |
| 33 | − "resto-ka":{"a":"#f08c00","b":"#ffb84d","g1":"#241804","g2":"#0d0b08"}, | |
| 34 | 33 | "auto-ka":{"a":"#ff5a2a","b":"#ff8f6b","g1":"#26100a","g2":"#0d0a09"}, |
| 35 | 34 | "vrai-prix":{"a":"#d9f26b","b":"#b8e04a","g1":"#16230a","g2":"#0b0d08"}, |
| 36 | − "trouve-ka":{"a":"#d9f26b","b":"#8fd3ff","g1":"#0a1a20","g2":"#080b0d"}, | |
| 37 | 35 | "sorti-ka":{"a":"#d9f26b","b":"#ff8fd0","g1":"#210a1c","g2":"#0c090c"}, |
| 38 | − "crea-ka":{"a":"#d9f26b","b":"#c08bff","g1":"#160a24","g2":"#0a090d"}, | |
| 39 | 36 | "job-ka":{"a":"#d9f26b","b":"#7ab8ff","g1":"#0a1522","g2":"#080b0d"}, |
| 40 | 37 | } |
| 41 | 38 | def pal(s): return PALETTES.get(s, PALETTES["vrai-prix"]) |
modified
server/social/render_card_html.py
+0 −3
@@ -32,12 +32,9 @@ PALETTES = { | ||
| 32 | 32 | "immo-ka": {"a":"#e23744","b":"#ff6b76","g1":"#2a0c10","g2":"#0d0a0b","ad":"#b02532"}, |
| 33 | 33 | "food-ka": {"a":"#1f9d55","b":"#5fd08a","g1":"#07230f","g2":"#0a0d0b","ad":"#157a41"}, |
| 34 | 34 | "fabri-ka": {"a":"#c4532e","b":"#e8895f","g1":"#241009","g2":"#0d0a09","ad":"#9c3f21"}, |
| 35 | − "resto-ka": {"a":"#f08c00","b":"#ffb84d","g1":"#241804","g2":"#0d0b08","ad":"#b96c00"}, | |
| 36 | 35 | "auto-ka": {"a":"#ff5a2a","b":"#ff8f6b","g1":"#26100a","g2":"#0d0a09","ad":"#cc3f14"}, |
| 37 | 36 | "vrai-prix":{"a":"#d9f26b","b":"#b8e04a","g1":"#16230a","g2":"#0b0d08","ad":"#6b7f1d"}, |
| 38 | − "trouve-ka":{"a":"#d9f26b","b":"#8fd3ff","g1":"#0a1a20","g2":"#080b0d","ad":"#6b7f1d"}, | |
| 39 | 37 | "sorti-ka": {"a":"#d9f26b","b":"#ff8fd0","g1":"#210a1c","g2":"#0c090c","ad":"#6b7f1d"}, |
| 40 | − "crea-ka": {"a":"#d9f26b","b":"#c08bff","g1":"#160a24","g2":"#0a090d","ad":"#6b7f1d"}, | |
| 41 | 38 | "job-ka": {"a":"#d9f26b","b":"#7ab8ff","g1":"#0a1522","g2":"#080b0d","ad":"#6b7f1d"}, |
| 42 | 39 | } |
| 43 | 40 | |
| 44 | 41 | |