État du nœud — MAJ README ; gitignore *.log (logs de backfill)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 changed files +4 −7
modified
.gitignore
+1 −0
@@ -11,3 +11,4 @@ __pycache__/ | |||||
| 11 | .pytest_cache/ | 11 | .pytest_cache/ | ||
| 12 | .venv/ | 12 | .venv/ | ||
| 13 | .DS_Store | 13 | .DS_Store | ||
| 14 | +*.log | ||||
modified
README.md
+3 −7
@@ -23,8 +23,7 @@ | |||||
| 23 |  | 23 |  | ||
| 24 |  | 24 |  | ||
| 25 |  | 25 |  | ||
| 26 | − | 26 | + | ||
| 27 | − | ||||
| 28 | 27 | ||||
| 29 | *Agrégateur indépendant de sorties & événements — concerts, festivals, spectacles, | 28 | *Agrégateur indépendant de sorties & événements — concerts, festivals, spectacles, | ||
| 30 | expositions, sport, famille — dans les 17 régions administratives du Québec, avec | 29 | expositions, sport, famille — dans les 17 régions administratives du Québec, avec | ||
@@ -80,7 +79,6 @@ architecture calquée sur le patron de référence Lou·Ka. | |||||
| 80 | | **Dédup** | empreinte titre + ville + date : un même concert publié par 3 sources = **une carte**, la fiche la plus riche gagne | `schema.dedup_key()` + `web.py` | | 79 | | **Dédup** | empreinte titre + ville + date : un même concert publié par 3 sources = **une carte**, la fiche la plus riche gagne | `schema.dedup_key()` + `web.py` | | ||
| 81 | | **API + SSR** | recherche/filtres JSON, fiches `/evenement/{uid}` servies avec `<head>` unique + **JSON-LD Event**, robots, sitemaps | `sortika/web.py` + `sortika/seo.py` | | 80 | | **API + SSR** | recherche/filtres JSON, fiches `/evenement/{uid}` servies avec `<head>` unique + **JSON-LD Event**, robots, sitemaps | `sortika/web.py` + `sortika/seo.py` | | ||
| 82 | | **Frontend** | SPA sans build, routeur History API, design system **Groupe KA « éditorial sharp »** | `frontend/index.html` | | 81 | | **Frontend** | SPA sans build, routeur History API, design system **Groupe KA « éditorial sharp »** | `frontend/index.html` | | ||
| 83 | −| **Comptes** | « Se connecter avec KA » — SSO **KA ID** du hub groupe-ka.com (jeton HS256, secret partagé, profil dicté par le hub) | `sortika/auth.py` | | ||||
| 84 | 82 | ||||
| 85 | ## Les 8 connecteurs actifs | 83 | ## Les 8 connecteurs actifs | ||
| 86 | 84 | ||||
@@ -102,14 +100,13 @@ Repentigny (2021) — consignées au registre `data/sources.json` avec leur stat | |||||
| 102 | 100 | ||||
| 103 | ```bash | 101 | ```bash | ||
| 104 | python3 -m venv .venv && .venv/bin/pip install -r requirements.txt | 102 | python3 -m venv .venv && .venv/bin/pip install -r requirements.txt | ||
| 105 | −.venv/bin/python -m pytest tests/ -q # 22 tests (fixtures réelles, zéro réseau) | 103 | +.venv/bin/python -m pytest tests/ -q # 19 tests (fixtures réelles, zéro réseau) | ||
| 106 | .venv/bin/python run.py sync # ingestion des 8 sources | 104 | .venv/bin/python run.py sync # ingestion des 8 sources | ||
| 107 | .venv/bin/python run.py web --port 8120 # API + frontend + SSR | 105 | .venv/bin/python run.py web --port 8120 # API + frontend + SSR | ||
| 108 | .venv/bin/python run.py watch --interval 3600 # boucle d'ingestion horaire | 106 | .venv/bin/python run.py watch --interval 3600 # boucle d'ingestion horaire | ||
| 109 | ``` | 107 | ``` | ||
| 110 | 108 | ||||
| 111 | −Secrets `.env` : `SCRAPFLY_API_KEY` (Atuvu), `KA_SSO_SECRET` + `SESSION_SECRET` + | 109 | +Secrets : `SCRAPFLY_API_KEY` dans `.env` (requis seulement pour Atuvu). | ||
| 112 | −`SORTIKA_BASE_URL` (connexion KA ID — secret partagé avec le hub groupe-ka.com). | ||||
| 113 | 110 | ||||
| 114 | ## API | 111 | ## API | ||
| 115 | 112 | ||||
@@ -118,7 +115,6 @@ Secrets `.env` : `SCRAPFLY_API_KEY` (Atuvu), `KA_SSO_SECRET` + `SESSION_SECRET` | |||||
| 118 | | `GET /api/events` | recherche — `q`, `region`, `city`, `category`, `free`, `from`, `to`, `sort`, pagination ; dédupliquée inter-sources | | 115 | | `GET /api/events` | recherche — `q`, `region`, `city`, `category`, `free`, `from`, `to`, `sort`, pagination ; dédupliquée inter-sources | | ||
| 119 | | `GET /api/events/{uid}` | fiche complète d'un événement | | 116 | | `GET /api/events/{uid}` | fiche complète d'un événement | | ||
| 120 | | `GET /api/stats` | volumes par région et par catégorie | | 117 | | `GET /api/stats` | volumes par région et par catégorie | | ||
| 121 | −| `GET /api/auth/ka/login` · `/api/me` | connexion **KA ID** (SSO groupe-ka.com), profil membre | | ||||
| 122 | | `GET /api/sources` | registre des sources + événements actifs + dernière synchro | | 118 | | `GET /api/sources` | registre des sources + événements actifs + dernière synchro | | ||
| 123 | | `GET /evenement/{uid}` | fiche HTML SSR (title/og/canonical + **JSON-LD Event**) | | 119 | | `GET /evenement/{uid}` | fiche HTML SSR (title/og/canonical + **JSON-LD Event**) | | ||
| 124 | | `GET /sitemap.xml` · `/robots.txt` | référencement | | 120 | | `GET /sitemap.xml` · `/robots.txt` | référencement | | ||
added
data/sortika.db-shm
+0 −0
Binary file not shown.
added
data/sortika.db-wal
+0 −0
Binary file not shown.