spb/qc-election
Public
Python 66.6%
HTML 24.8%
CSS 4.9%
JavaScript 3.6%
1{2 "_doc": "Registre canonique des comptes sociaux (ADDENDUM §8-§11, §31). RÈGLE : aucun compte inventé — chaque handle porte sa source de vérification (official_site = extrait du site officiel du parti; search = repéré par recherche, statut pending_review jusqu'à confirmation) et sa date. La découverte hebdomadaire (social_account_discovery.py) compare ce fichier aux sites officiels et alerte sur tout changement (chef, compte). Format JSON (zéro dépendance).",3 "_verified_at": "2026-08-30",4 "parties": {5 "CAQ": {6 "official_name": "Coalition avenir Québec",7 "leader": "Christine Fréchette",8 "website": "https://coalitionavenirquebec.org",9 "accounts": {10 "facebook": {"handle": "101058256034207", "source": "official_site", "status": "verified"},11 "youtube": {"handle": "channel/UC7iv0H5EVTzx0RrBCjgu0ew", "source": "official_site", "status": "verified"},12 "x": {"handle": "coalitionavenir", "source": "search", "status": "pending_review"},13 "instagram": {"handle": "coalition_avenir_quebec", "source": "search", "status": "pending_review"},14 "tiktok": {"handle": "coalitionavenirquebec", "source": "search", "status": "pending_review"}15 },16 "leader_accounts": {17 "instagram": {"handle": "frechette_christine", "source": "search", "status": "pending_review"}18 }19 },20 "PQ": {21 "official_name": "Parti québécois",22 "leader": "Paul St-Pierre Plamondon",23 "website": "https://pq.org",24 "accounts": {25 "x": {"handle": "partiquebecois", "source": "search", "status": "pending_review"},26 "facebook": {"handle": "lepartiquebecois", "source": "search", "status": "pending_review"},27 "instagram": {"handle": "partiquebecois", "source": "search", "status": "pending_review"},28 "tiktok": {"handle": "partiquebecois", "source": "search", "status": "pending_review"},29 "youtube": {"handle": "channel/UCUhFy8q8gse395l9E2VZDAQ", "source": "search", "status": "pending_review"}30 },31 "leader_accounts": {32 "instagram": {"handle": "psppqc", "source": "search", "status": "pending_review"}33 }34 },35 "PLQ": {36 "official_name": "Parti libéral du Québec",37 "leader": "Charles Milliard",38 "website": "https://plq.org",39 "accounts": {40 "x": {"handle": "LiberalQuebec", "source": "official_site", "status": "verified"},41 "facebook": {"handle": "LiberalQuebec", "source": "official_site", "status": "verified"},42 "instagram": {"handle": "liberalquebec", "source": "official_site", "status": "verified"},43 "tiktok": {"handle": "liberalqc", "source": "official_site", "status": "verified"},44 "youtube": {"handle": "PartiLiberalduQuebec", "source": "official_site", "status": "verified"}45 },46 "leader_accounts": {}47 },48 "QS": {49 "official_name": "Québec solidaire",50 "leader": "Ruba Ghazal et Sol Zanetti",51 "website": "https://quebecsolidaire.net",52 "accounts": {53 "x": {"handle": "QuebecSolidaire", "source": "search", "status": "pending_review"},54 "facebook": {"handle": "Quebecsolidaire", "source": "search", "status": "pending_review"},55 "instagram": {"handle": "quebecsolidaire", "source": "search", "status": "pending_review"},56 "tiktok": {"handle": "quebecsolidaire", "source": "search", "status": "pending_review"},57 "youtube": {"handle": "user/QuebecSolidaire", "source": "search", "status": "pending_review"}58 },59 "leader_accounts": {}60 },61 "PCQ": {62 "official_name": "Parti conservateur du Québec",63 "leader": "Éric Duhaime",64 "website": "https://conservateur.quebec",65 "accounts": {66 "youtube": {"handle": "channel/UCf4Y6bCQgdFCQXqREQ7IMIw", "source": "official_site", "status": "verified"},67 "tiktok": {"handle": "ericduhaime_pcq", "source": "search", "status": "pending_review"}68 },69 "leader_accounts": {70 "x": {"handle": "E_Duhaime", "source": "search", "status": "pending_review"},71 "instagram": {"handle": "ericduhaimequebec", "source": "search", "status": "pending_review"}72 }73 }74 },75 "media": {76 "Radio-Canada": {"website": "https://ici.radio-canada.ca", "rss": "https://ici.radio-canada.ca/rss/92"},77 "Le Devoir": {"website": "https://www.ledevoir.com", "rss": "https://www.ledevoir.com/rss/section/politique.xml"},78 "La Presse": {"website": "https://www.lapresse.ca", "rss": "https://www.lapresse.ca/actualites/politique/rss"}79 },80 "institutions": {81 "Élections Québec": {"website": "https://www.electionsquebec.qc.ca",82 "donnees": "https://donnees.electionsquebec.qc.ca"},83 "Assemblée nationale": {"website": "https://www.assnat.qc.ca"},84 "Statistique Canada": {"website": "https://www12.statcan.gc.ca/census-recensement/"},85 "ISQ": {"website": "https://statistique.quebec.ca"}86 }87}88