up wiki compare

This commit is contained in:
Tykayn 2025-08-31 22:53:28 +02:00 committed by tykayn
parent e715d66020
commit a59113400c
18 changed files with 4384 additions and 223314 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,909 @@
{ {
"last_updated": "2025-08-22T23:19:05.767890", "last_updated": "2025-08-31T22:51:15.379102",
"recent_changes": [] "recent_changes": [
{
"page_name": "FR:Tag:man made=guard stone",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:man_made%3Dguard_stone",
"timestamp": "N    17:23",
"user": "Lejun",
"comment": "(Traduction depuis l'anglais.)",
"change_size": "0"
},
{
"page_name": "FR:Tag:amenity=recycling",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Drecycling",
"timestamp": "15:51",
"user": "The1110",
"comment": "(Changement de support de post à pole)",
"change_size": "+16"
},
{
"page_name": "FR:Wall",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Wall",
"timestamp": "15:32",
"user": "Tykayn wiki",
"comment": "(up boite principale)",
"change_size": "+54"
},
{
"page_name": "FR:Addr:city:simc",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Addr:city:simc",
"timestamp": "N    14:27",
"user": "Tykayn wiki",
"comment": "(création et traduction)",
"change_size": "0"
},
{
"page_name": "FR:Tag:highway=hitchhiking",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dhitchhiking",
"timestamp": "m   13:02",
"user": "AdrienHegy",
"comment": "(Ajout termes liés)",
"change_size": "+100"
},
{
"page_name": "FR:Tag:ceremonial gate=torii",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:ceremonial_gate%3Dtorii",
"timestamp": "10:32",
"user": "Computae",
"comment": "(correction infobox)",
"change_size": "164"
},
{
"page_name": "FR:Tag:man made=torii",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:man_made%3Dtorii",
"timestamp": "10:27",
"user": "Computae",
"comment": "(mise en forme)",
"change_size": "+23"
},
{
"page_name": "FR:Tag:boundary=forest",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:boundary%3Dforest",
"timestamp": "N    08:48",
"user": "Technoeconature",
"comment": "(Début de traductions)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:EU:ENTSOE EIC",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:EU:ENTSOE_EIC",
"timestamp": "m   08:23",
"user": "Kjon",
"comment": "(removed Category:Power using HotCat)",
"change_size": "19"
},
{
"page_name": "FR:Key:position",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:position",
"timestamp": "m   08:15",
"user": "Kjon",
"comment": "(Update group)",
"change_size": "+2"
},
{
"page_name": "FR:Key:addr:housename",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:addr:housename",
"timestamp": "m   21:57",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "17"
},
{
"page_name": "FR:Tag:amenity=stage",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dstage",
"timestamp": "m   21:55",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "28"
},
{
"page_name": "FR:Tag:footway=crossing",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:footway%3Dcrossing",
"timestamp": "m   21:06",
"user": "FoeNyx",
"comment": "(\"+\" → non sélectionnables (pour faciliter le copié-collé des exemples))",
"change_size": "0"
},
{
"page_name": "FR:Key:crossing:markings:condition",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:crossing:markings:condition",
"timestamp": "07:27",
"user": "Singing-Poppy",
"comment": "(add pictures)",
"change_size": "+100"
},
{
"page_name": "FR:Notes/Traitement",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Notes/Traitement",
"timestamp": "17:17",
"user": "Britzz",
"comment": "",
"change_size": "+196"
},
{
"page_name": "FR:Lyon",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon",
"timestamp": "20:25",
"user": "Renecha",
"comment": "(→Rencontres périodiques)",
"change_size": "237"
},
{
"page_name": "FR:Lyon/Archives",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Archives",
"timestamp": "20:25",
"user": "Renecha",
"comment": "(→Réunions du groupe local)",
"change_size": "+224"
},
{
"page_name": "FR:Lyon/Reunion-2025-09-16",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-09-16",
"timestamp": "20:23",
"user": "Renecha",
"comment": "(→Événements à venir)",
"change_size": "+1"
},
{
"page_name": "FR:Lyon/Reunion-2025-12-16",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-12-16",
"timestamp": "N    20:23",
"user": "Renecha",
"comment": "(Created page with \" {{Lyon/Archives/Infobox}} __TOC__ == Synopsis de la rencontre du mardi 16 décembre 2025 == === Organisation / Lieu === La réunion aura lieu dans les locaux du Tubà, 15 boulevard Vivier-Merle, Lyon 3e - à partir de 18h30. La réunion est également accessible en visioconférence sur [https://osmvideo.cloud68.co/user/ren-ncq-irt-nv8 ce salon BigBlueButton]. Invitation lancée par : * le site [http://www.openstreetmap.fr/ openstreetmap.fr] → via [https://www.ag...\")",
"change_size": "0"
},
{
"page_name": "FR:Lyon/Reunion-2025-10-21",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-10-21",
"timestamp": "20:22",
"user": "Renecha",
"comment": "(→Synopsis de la rencontre du mardi 16 septembre 2025)",
"change_size": "2"
},
{
"page_name": "FR:Lyon/Reunion-2025-11-18",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-11-18",
"timestamp": "N    20:22",
"user": "Renecha",
"comment": "(Created page with \" {{Lyon/Archives/Infobox}} __TOC__ == Synopsis de la rencontre du mardi 18 novembre 2025 == === Organisation / Lieu === La réunion aura lieu dans les locaux du Tubà, 15 boulevard Vivier-Merle, Lyon 3e - à partir de 18h30. La réunion est également accessible en visioconférence sur [https://osmvideo.cloud68.co/user/ren-ncq-irt-nv8 ce salon BigBlueButton]. Invitation lancée par : * le site [http://www.openstreetmap.fr/ openstreetmap.fr] → via [https://www.age...\")",
"change_size": "0"
},
{
"page_name": "FR:France/Régions Naturelles et Massifs montagneux",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:France/R%C3%A9gions_Naturelles_et_Massifs_montagneux",
"timestamp": "18:19",
"user": "Sletuffe",
"comment": "",
"change_size": "+1"
},
{
"page_name": "FR:Planet.osm",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Planet.osm",
"timestamp": "16:44",
"user": "Cyrille37",
"comment": "(→Miroirs: http://hexagone.openstreetmap.fr is no more alive)",
"change_size": "+6"
},
{
"page_name": "FR:Tag:building=school",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:building%3Dschool",
"timestamp": "m   14:52",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "28"
},
{
"page_name": "FR:Projet du mois/Écoles",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Projet_du_mois/%C3%89coles",
"timestamp": "10:12",
"user": "Benoitdd",
"comment": "(→Statistiques: + propositions de cartographie)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:FR:NAF/values",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:NAF/values",
"timestamp": "21:33",
"user": "FoeNyx",
"comment": "(4942Z → office=moving_company)",
"change_size": "+51"
},
{
"page_name": "FR:Tag:place=farm",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:place%3Dfarm",
"timestamp": "m   18:49",
"user": "Kjon",
"comment": "(removed Category:Places using HotCat)",
"change_size": "32"
},
{
"page_name": "FR:Key:cycle network",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:cycle_network",
"timestamp": "m   17:37",
"user": "Kjon",
"comment": "(removed Category:Cycle routes; added Category:FR:Itinéraires cyclables using HotCat)",
"change_size": "+13"
},
{
"page_name": "FR:Tag:amenity=loading dock",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dloading_dock",
"timestamp": "12:44",
"user": "FoeNyx",
"comment": "(+ Modèle : «Translation out of sync» avec l'anglais)",
"change_size": "+35"
},
{
"page_name": "FR:Complète Tes Commerces",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces",
"timestamp": "17:46",
"user": "Koreller",
"comment": "(ajout vidéo peertube SOTM-FR 2025)",
"change_size": "+179"
},
{
"page_name": "FR:Outil de Manipulation et d'Organisation",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Outil_de_Manipulation_et_d%27Organisation",
"timestamp": "N    17:40",
"user": "Koreller",
"comment": "(Created page with \"{{Languages}} {{Software | name = Outil de Manipulation et d'Organisation | screenshot = <!-- screenshot.jpg --> | logo = <!-- logo.jpg --> | author = [https://www.openstreetmap.org/user/caboulot caboulot] | license = WTFPL | price = <!-- gratis;20$;35€ --> | platform = web | status = <!-- one of: active, unmaintained, broken, unfinished --> | version = <!-- 1.0 --> | date = <!-- 2024-12-24...\")",
"change_size": "0"
},
{
"page_name": "FR:Tag:railway=border",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:railway%3Dborder",
"timestamp": "N    17:30",
"user": "Sikal",
"comment": "(Création de la traduction en français)",
"change_size": "0"
},
{
"page_name": "FR:Tag:service=parking aisle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:service%3Dparking_aisle",
"timestamp": "16:18",
"user": "SamDB",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Bicycle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Bicycle",
"timestamp": "20:22",
"user": "Barnes38",
"comment": "(→Chaucidou ou Chaussée à Voie Centrale Banalisée)",
"change_size": "+484"
},
{
"page_name": "FR:Public transport/Tools",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Public_transport/Tools",
"timestamp": "17:58",
"user": "Singing-Poppy",
"comment": "(→Visualisation: Unroll bus station)",
"change_size": "+440"
},
{
"page_name": "FR:Bus",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Bus",
"timestamp": "17:53",
"user": "Singing-Poppy",
"comment": "(outils pour les gares routières)",
"change_size": "+320"
},
{
"page_name": "FR:Tag:amenity=bus station",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dbus_station",
"timestamp": "17:51",
"user": "Singing-Poppy",
"comment": "(→Exemple: ajout de l'outil Unroll)",
"change_size": "+286"
},
{
"page_name": "FR:Comparaison des concepts de cycle de vie",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Comparaison_des_concepts_de_cycle_de_vie",
"timestamp": "m   21:40",
"user": "FGouget",
"comment": "(→= + =: Orthographe)",
"change_size": "0"
},
{
"page_name": "FR:Key:level",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:level",
"timestamp": "m   16:46",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "87"
},
{
"page_name": "FR:Key:bollard",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:bollard",
"timestamp": "16:39",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "132"
},
{
"page_name": "FR:Street parking",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Street_parking",
"timestamp": "16:34",
"user": "Lenny",
"comment": "(compléments et adaptations à la version anglaise du 21 août 2025)",
"change_size": "0"
},
{
"page_name": "FR:Key:addr:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:addr:*",
"timestamp": "m   16:33",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "230"
},
{
"page_name": "FR:Tag:cycleway:right=no",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:cycleway:right%3Dno",
"timestamp": "m   16:22",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "20"
},
{
"page_name": "FR:Key:cycleway:both",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:cycleway:both",
"timestamp": "m   16:21",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "20"
},
{
"page_name": "FR:Tag:cycleway=link",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:cycleway%3Dlink",
"timestamp": "m   16:18",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "2"
},
{
"page_name": "FR:Merchandise",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Merchandise",
"timestamp": "N    15:57",
"user": "Computae",
"comment": "(traduction de la page anglophone, première partie)",
"change_size": "0"
},
{
"page_name": "FR:Tag:footway=access aisle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:footway%3Daccess_aisle",
"timestamp": "12:56",
"user": "Barnes38",
"comment": "",
"change_size": "+16"
},
{
"page_name": "FR:Tag:flood prone=yes",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:flood_prone%3Dyes",
"timestamp": "21:37",
"user": "FoeNyx",
"comment": "(→Voir aussi: + « hazard=flooding »)",
"change_size": "+26"
},
{
"page_name": "FR:Key:circuits",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:circuits",
"timestamp": "16:25",
"user": "Fanfouer",
"comment": "(Mention de power=circuit)",
"change_size": "+45"
},
{
"page_name": "FR:Tag:traffic calming=choker",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:traffic_calming%3Dchoker",
"timestamp": "m   15:48",
"user": "Codl",
"comment": "(\"tour de cou\" → \"rétrécissement\". lol)",
"change_size": "+9"
},
{
"page_name": "FR:Tag:leaf type=needleleaved",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:leaf_type%3Dneedleleaved",
"timestamp": "07:22",
"user": "Marc marc",
"comment": "(correction du correctif :) le critère est ligneux à aiguilles, les arbres ne sont qu'un fraction de la végétation ayant des aiguilles)",
"change_size": "+20"
},
{
"page_name": "FR:Tag:highway=motorway junction",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dmotorway_junction",
"timestamp": "05:46",
"user": "Penegal",
"comment": "(→Exemples: Mise à jour avec destination:ref:to)",
"change_size": "+255"
},
{
"page_name": "FR:Key:roof:shape",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:roof:shape",
"timestamp": "20:32",
"user": "RubenKelevra",
"comment": "(→Autres valeurs courantes et problèmes: cleanup saltbox conflict -> moved to dedicated article https://wiki.openstreetmap.org/wiki/Tag:roof:shape%3Dsaltbox)",
"change_size": "286"
},
{
"page_name": "FR:Key:ref:FR:SIREN",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SIREN",
"timestamp": "m   15:48",
"user": "Lisapple",
"comment": "(Ajout de détails sur la validation d'un code SIREN à partir de la formule de Luhn)",
"change_size": "+439"
},
{
"page_name": "FR:Key:ref:FR:SIRET",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SIRET",
"timestamp": "15:48",
"user": "Lisapple",
"comment": "(Ajout de la formule de Luhn, et quelques informations sur le Bodacc)",
"change_size": "0"
},
{
"page_name": "FR:Complète Tes Commerces/Débutant",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces/D%C3%A9butant",
"timestamp": "12:07",
"user": "MerylStreet",
"comment": "(plus d'astuces)",
"change_size": "0"
},
{
"page_name": "FR:Tag:tourism=camp site",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:tourism%3Dcamp_site",
"timestamp": "m   10:41",
"user": "Blef",
"comment": "(Correspondance avec page EN)",
"change_size": "+3"
},
{
"page_name": "FR:Tag:amenity=parcel locker",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dparcel_locker",
"timestamp": "m   06:42",
"user": "PanierAvide",
"comment": "(→Options d'utilisation / Éléments caractéristiques: Fix _ manquant)",
"change_size": "0"
},
{
"page_name": "FR:North Korea Mapping Guide",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:North_Korea_Mapping_Guide",
"timestamp": "21:17",
"user": "Koreller",
"comment": "(ajout discussion forum)",
"change_size": "+126"
},
{
"page_name": "FR:Contribuer aux données cartographiques",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Contribuer_aux_donn%C3%A9es_cartographiques",
"timestamp": "m   16:50",
"user": "Computae",
"comment": "(liens FR:Exactitude)",
"change_size": "24"
},
{
"page_name": "FR:Assurance qualité",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Assurance_qualit%C3%A9",
"timestamp": "m   16:45",
"user": "Computae",
"comment": "(liens)",
"change_size": "+2"
},
{
"page_name": "FR:Key:opening hours",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:opening_hours",
"timestamp": "m   16:16",
"user": "Computae",
"comment": "(correction catégorie et infobox)",
"change_size": "151"
},
{
"page_name": "FR:Tag:leisure=indoor play",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:leisure%3Dindoor_play",
"timestamp": "m   15:49",
"user": "LySioS",
"comment": "(ajut exemple royal kids)",
"change_size": "+133"
},
{
"page_name": "FR:Key:contact:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:contact:*",
"timestamp": "18:28",
"user": "Computae",
"comment": "(modifications de Yunan973 annulées car non discutées cf https://forum.openstreetmap.fr/t/le-schema-de-charlieu-pour-les-adresses-de-pois-pertinent-ou-non/12959/33)",
"change_size": "0"
},
{
"page_name": "FR:Key:email",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:email",
"timestamp": "18:09",
"user": "Computae",
"comment": "(modèle \"à traduire\")",
"change_size": "+38"
},
{
"page_name": "FR:Tag:power=terminal",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dterminal",
"timestamp": "18:07",
"user": "Fanfouer",
"comment": "(Ajout d'exemples)",
"change_size": "0"
},
{
"page_name": "FR:Key:website:menu",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:website:menu",
"timestamp": "m   18:01",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "172"
},
{
"page_name": "FR:Tag:power=connection",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dconnection",
"timestamp": "m   15:54",
"user": "Fanfouer",
"comment": "(→Comment contribuer)",
"change_size": "+1"
},
{
"page_name": "FR:FPOSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:FPOSM",
"timestamp": "m   15:41",
"user": "Map-dynartio",
"comment": "(Syntax correction)",
"change_size": "101"
},
{
"page_name": "FR:Dynartio",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Dynartio",
"timestamp": "15:25",
"user": "Map-dynartio",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Services commerciaux basés sur OSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Services_commerciaux_bas%C3%A9s_sur_OSM",
"timestamp": "m   14:51",
"user": "Map-dynartio",
"comment": "(Correction user lien Dynartio)",
"change_size": "+18"
},
{
"page_name": "FR:Key:embedded rails",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:embedded_rails",
"timestamp": "m   14:00",
"user": "Kjon",
"comment": "(removed Category:Highways; added Category:FR:Voirie using HotCat)",
"change_size": "+1"
},
{
"page_name": "FR:Tag:line management=termination",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_management%3Dtermination",
"timestamp": "m   11:24",
"user": "Fanfouer",
"comment": "",
"change_size": "+86"
},
{
"page_name": "FR:OSM Map On Garmin/Download",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:OSM_Map_On_Garmin/Download",
"timestamp": "m   08:59",
"user": "Dp7",
"comment": "(→Monde: added a country)",
"change_size": "+18"
},
{
"page_name": "FR:Public Transport Network Analysis",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Public_Transport_Network_Analysis",
"timestamp": "m   15:07",
"user": "Kjon",
"comment": "(removed Category:GTFS; added Category:FR:GTFS using HotCat)",
"change_size": "+3"
},
{
"page_name": "FR:General Transit Feed Specification",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:General_Transit_Feed_Specification",
"timestamp": "m   15:07",
"user": "Kjon",
"comment": "",
"change_size": "34"
},
{
"page_name": "FR:Key:gtfs:shape id",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:gtfs:shape_id",
"timestamp": "m   15:06",
"user": "Kjon",
"comment": "",
"change_size": "14"
},
{
"page_name": "FR:WikiProject Belgium/Local Walking Routes Wallonie",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:WikiProject_Belgium/Local_Walking_Routes_Wallonie",
"timestamp": "m   14:58",
"user": "BrunoVQM",
"comment": "(→Libin: 'Promenade de la Lesse' + 'Virée à Chêne')",
"change_size": "+82"
},
{
"page_name": "FR:Key:room",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:room",
"timestamp": "m   14:43",
"user": "Computae",
"comment": "(description traduite)",
"change_size": "95"
},
{
"page_name": "FR:Mapa en català",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Mapa_en_catal%C3%A0",
"timestamp": "m   09:26",
"user": "LySioS",
"comment": "(màj méthode et BAL pour mairie)",
"change_size": "0"
},
{
"page_name": "FR:Key:sport",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:sport",
"timestamp": "m   19:44",
"user": "Computae",
"comment": "(suppr paramètres superflus)",
"change_size": "240"
},
{
"page_name": "FR:Key:panoramax",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:panoramax",
"timestamp": "17:14",
"user": "Computae",
"comment": "(mise à jour avec la page anglophone)",
"change_size": "+257"
},
{
"page_name": "FR:Key:traffic calming",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:traffic_calming",
"timestamp": "16:30",
"user": "FoeNyx",
"comment": "(→Voir aussi: description succincte du bicycle_bypass)",
"change_size": "+110"
},
{
"page_name": "FR:Key:line management",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:line_management",
"timestamp": "m   14:37",
"user": "Fanfouer",
"comment": "(Remplacement images png vers svg)",
"change_size": "+35"
},
{
"page_name": "FR:Tag:hazard=dangerous junction",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:hazard%3Ddangerous_junction",
"timestamp": "m   21:03",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "1"
},
{
"page_name": "FR:Key:hazard",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:hazard",
"timestamp": "m   21:02",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "1"
},
{
"page_name": "FR:Tag:amenity=sanitary dump station",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dsanitary_dump_station",
"timestamp": "15:33",
"user": "Popolon",
"comment": "",
"change_size": "+1"
},
{
"page_name": "FR:Photomapping In JOSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Photomapping_In_JOSM",
"timestamp": "20:15",
"user": "Something B",
"comment": "",
"change_size": "+20"
},
{
"page_name": "FR:Signalisation routière en France",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Signalisation_routi%C3%A8re_en_France",
"timestamp": "18:48",
"user": "FoeNyx",
"comment": "(→Signaux dintersection et de priorité de type AB: + cas panonceau \"carefour dangereux\")",
"change_size": "+135"
},
{
"page_name": "FR:Key:post office",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:post_office",
"timestamp": "14:30",
"user": "Marc marc",
"comment": "(ajout du terme relais poste aussi utilisé en France)",
"change_size": "+22"
},
{
"page_name": "FR:Key:line attachment",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:line_attachment",
"timestamp": "14:42",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "+237"
},
{
"page_name": "FR:Tag:line attachment=pulley",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dpulley",
"timestamp": "m   10:45",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "112"
},
{
"page_name": "FR:WikiProject Côte d'Ivoire/Tagging CI",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:WikiProject_C%C3%B4te_d%27Ivoire/Tagging_CI",
"timestamp": "10:42",
"user": "Something B",
"comment": "",
"change_size": "+14"
},
{
"page_name": "FR:Tag:line attachment=pin",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dpin",
"timestamp": "m   10:15",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "0"
},
{
"page_name": "FR:Tag:line attachment=suspension",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dsuspension",
"timestamp": "m   09:42",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "+48"
},
{
"page_name": "FR:Key:socket:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:socket:*",
"timestamp": "m   07:59",
"user": "Kylenz",
"comment": "(replace as/nzs photos)",
"change_size": "+16"
},
{
"page_name": "FR:Notes",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Notes",
"timestamp": "20:49",
"user": "Britzz",
"comment": "(ajout lien vers nouvelle page \"traitement des notes\")",
"change_size": "+80"
},
{
"page_name": "FR:Tag:amenity=university",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Duniversity",
"timestamp": "m   08:30",
"user": "Jemily1",
"comment": "(fixed links)",
"change_size": "9"
},
{
"page_name": "FR:Key:topology",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:topology",
"timestamp": "m   17:58",
"user": "Fanfouer",
"comment": "(Add combination with power=circuit)",
"change_size": "+39"
},
{
"page_name": "FR:Tag:power=line",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dline",
"timestamp": "16:41",
"user": "Fanfouer",
"comment": "(Traduction depuis l'anglais. Mention de power=circuit pour le routage électrique)",
"change_size": "0"
},
{
"page_name": "FR:Tag:power=cable",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dcable",
"timestamp": "16:16",
"user": "Fanfouer",
"comment": "(Traduction depuis l'anglais. Mention de power=circuit pour le routage électrique)",
"change_size": "0"
},
{
"page_name": "FR:Tag:fortification type=motte",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:fortification_type%3Dmotte",
"timestamp": "N    11:33",
"user": "Vermandois",
"comment": "(Création de la version FR de fortification_type=motte)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:FR:SNCF Reseau",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SNCF_Reseau",
"timestamp": "m   21:23",
"user": "Railwayfan2005",
"comment": "(→Proposition: railway:position:exact)",
"change_size": "+6"
},
{
"page_name": "FR:Films",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Films",
"timestamp": "16:52",
"user": "R3mi",
"comment": "(→Films qui utilisent OSM)",
"change_size": "0"
},
{
"page_name": "FR:Complète Tes Commerces/Avancé",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces/Avanc%C3%A9",
"timestamp": "08:12",
"user": "Koreller",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Key:aeroway:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:aeroway:*",
"timestamp": "20:58",
"user": "Hardcover2452",
"comment": "(Removed free flying sports. See tag:sport=free_flying)",
"change_size": "119"
},
{
"page_name": "FR:Tag:shop=building materials",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:shop%3Dbuilding_materials",
"timestamp": "m   13:52",
"user": "Zorglubu",
"comment": "(→Comment cartographier: position icone)",
"change_size": "0"
},
{
"page_name": "FR:Tag:amenity=school",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dschool",
"timestamp": "13:20",
"user": "Pyrog",
"comment": "(→Voir aussi: lien vers soutien scolaire)",
"change_size": "+60"
},
{
"page_name": "FR:Key:isced:level",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:isced:level",
"timestamp": "18:05",
"user": "FGouget",
"comment": "(→Conversion des termes locaux: Ajout des Grandes Écoles)",
"change_size": "+48"
},
{
"page_name": "FR:Tag:natural=saddle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:natural%3Dsaddle",
"timestamp": "13:32",
"user": "MDe",
"comment": "(précisions)",
"change_size": "+75"
},
{
"page_name": "FR:OpenRailwayMap/Tagging in France",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:OpenRailwayMap/Tagging_in_France",
"timestamp": "m   01:23",
"user": "Noeld",
"comment": "",
"change_size": "33"
},
{
"page_name": "FR:Tag:highway=passing place",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dpassing_place",
"timestamp": "m   19:22",
"user": "GeorgeKaplan",
"comment": "(Grammaire et ortographe)",
"change_size": "0"
},
{
"page_name": "FR:Tag:aeroway=runway",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:aeroway%3Drunway",
"timestamp": "m   19:08",
"user": "GeorgeKaplan",
"comment": "",
"change_size": "0"
}
]
} }

View file

@ -0,0 +1,21 @@
{
"last_updated": "2025-08-31T18:57:25.156253",
"recent_changes": [
{
"page_name": "Test Page 1",
"page_url": "https://example.com/test1",
"timestamp": "12:34",
"user": "Test User 1",
"comment": "Test comment 1",
"change_size": "+123"
},
{
"page_name": "Test Page 2",
"page_url": "https://example.com/test2",
"timestamp": "23:45",
"user": "Test User 2",
"comment": "Test comment 2",
"change_size": "-456"
}
]
}

901
recent_changes.json Normal file
View file

@ -0,0 +1,901 @@
{
"last_updated": "2025-08-31T18:56:42.082384",
"recent_changes": [
{
"page_name": "FR:Tag:amenity=recycling",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Drecycling",
"timestamp": "15:51",
"user": "The1110",
"comment": "(Changement de support de post à pole)",
"change_size": "+16"
},
{
"page_name": "FR:Wall",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Wall",
"timestamp": "15:32",
"user": "Tykayn wiki",
"comment": "(up boite principale)",
"change_size": "+54"
},
{
"page_name": "FR:Addr:city:simc",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Addr:city:simc",
"timestamp": "N    14:27",
"user": "Tykayn wiki",
"comment": "(création et traduction)",
"change_size": "0"
},
{
"page_name": "FR:Tag:highway=hitchhiking",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dhitchhiking",
"timestamp": "m   13:02",
"user": "AdrienHegy",
"comment": "(Ajout termes liés)",
"change_size": "+100"
},
{
"page_name": "FR:Tag:ceremonial gate=torii",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:ceremonial_gate%3Dtorii",
"timestamp": "10:32",
"user": "Computae",
"comment": "(correction infobox)",
"change_size": "164"
},
{
"page_name": "FR:Tag:man made=torii",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:man_made%3Dtorii",
"timestamp": "10:27",
"user": "Computae",
"comment": "(mise en forme)",
"change_size": "+23"
},
{
"page_name": "FR:Tag:boundary=forest",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:boundary%3Dforest",
"timestamp": "N    08:48",
"user": "Technoeconature",
"comment": "(Début de traductions)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:EU:ENTSOE EIC",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:EU:ENTSOE_EIC",
"timestamp": "m   08:23",
"user": "Kjon",
"comment": "(removed Category:Power using HotCat)",
"change_size": "19"
},
{
"page_name": "FR:Key:position",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:position",
"timestamp": "m   08:15",
"user": "Kjon",
"comment": "(Update group)",
"change_size": "+2"
},
{
"page_name": "FR:Key:addr:housename",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:addr:housename",
"timestamp": "m   21:57",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "17"
},
{
"page_name": "FR:Tag:amenity=stage",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dstage",
"timestamp": "m   21:55",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "28"
},
{
"page_name": "FR:Tag:footway=crossing",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:footway%3Dcrossing",
"timestamp": "m   21:06",
"user": "FoeNyx",
"comment": "(\"+\" → non sélectionnables (pour faciliter le copié-collé des exemples))",
"change_size": "0"
},
{
"page_name": "FR:Key:crossing:markings:condition",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:crossing:markings:condition",
"timestamp": "07:27",
"user": "Singing-Poppy",
"comment": "(add pictures)",
"change_size": "+100"
},
{
"page_name": "FR:Notes/Traitement",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Notes/Traitement",
"timestamp": "17:17",
"user": "Britzz",
"comment": "",
"change_size": "+196"
},
{
"page_name": "FR:Lyon",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon",
"timestamp": "20:25",
"user": "Renecha",
"comment": "(→Rencontres périodiques)",
"change_size": "237"
},
{
"page_name": "FR:Lyon/Archives",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Archives",
"timestamp": "20:25",
"user": "Renecha",
"comment": "(→Réunions du groupe local)",
"change_size": "+224"
},
{
"page_name": "FR:Lyon/Reunion-2025-09-16",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-09-16",
"timestamp": "20:23",
"user": "Renecha",
"comment": "(→Événements à venir)",
"change_size": "+1"
},
{
"page_name": "FR:Lyon/Reunion-2025-12-16",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-12-16",
"timestamp": "N    20:23",
"user": "Renecha",
"comment": "(Created page with \" {{Lyon/Archives/Infobox}} __TOC__ == Synopsis de la rencontre du mardi 16 décembre 2025 == === Organisation / Lieu === La réunion aura lieu dans les locaux du Tubà, 15 boulevard Vivier-Merle, Lyon 3e - à partir de 18h30. La réunion est également accessible en visioconférence sur [https://osmvideo.cloud68.co/user/ren-ncq-irt-nv8 ce salon BigBlueButton]. Invitation lancée par : * le site [http://www.openstreetmap.fr/ openstreetmap.fr] → via [https://www.ag...\")",
"change_size": "0"
},
{
"page_name": "FR:Lyon/Reunion-2025-10-21",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-10-21",
"timestamp": "20:22",
"user": "Renecha",
"comment": "(→Synopsis de la rencontre du mardi 16 septembre 2025)",
"change_size": "2"
},
{
"page_name": "FR:Lyon/Reunion-2025-11-18",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-11-18",
"timestamp": "N    20:22",
"user": "Renecha",
"comment": "(Created page with \" {{Lyon/Archives/Infobox}} __TOC__ == Synopsis de la rencontre du mardi 18 novembre 2025 == === Organisation / Lieu === La réunion aura lieu dans les locaux du Tubà, 15 boulevard Vivier-Merle, Lyon 3e - à partir de 18h30. La réunion est également accessible en visioconférence sur [https://osmvideo.cloud68.co/user/ren-ncq-irt-nv8 ce salon BigBlueButton]. Invitation lancée par : * le site [http://www.openstreetmap.fr/ openstreetmap.fr] → via [https://www.age...\")",
"change_size": "0"
},
{
"page_name": "FR:France/Régions Naturelles et Massifs montagneux",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:France/R%C3%A9gions_Naturelles_et_Massifs_montagneux",
"timestamp": "18:19",
"user": "Sletuffe",
"comment": "",
"change_size": "+1"
},
{
"page_name": "FR:Planet.osm",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Planet.osm",
"timestamp": "16:44",
"user": "Cyrille37",
"comment": "(→Miroirs: http://hexagone.openstreetmap.fr is no more alive)",
"change_size": "+6"
},
{
"page_name": "FR:Tag:building=school",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:building%3Dschool",
"timestamp": "m   14:52",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "28"
},
{
"page_name": "FR:Projet du mois/Écoles",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Projet_du_mois/%C3%89coles",
"timestamp": "10:12",
"user": "Benoitdd",
"comment": "(→Statistiques: + propositions de cartographie)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:FR:NAF/values",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:NAF/values",
"timestamp": "21:33",
"user": "FoeNyx",
"comment": "(4942Z → office=moving_company)",
"change_size": "+51"
},
{
"page_name": "FR:Tag:place=farm",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:place%3Dfarm",
"timestamp": "m   18:49",
"user": "Kjon",
"comment": "(removed Category:Places using HotCat)",
"change_size": "32"
},
{
"page_name": "FR:Key:cycle network",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:cycle_network",
"timestamp": "m   17:37",
"user": "Kjon",
"comment": "(removed Category:Cycle routes; added Category:FR:Itinéraires cyclables using HotCat)",
"change_size": "+13"
},
{
"page_name": "FR:Tag:amenity=loading dock",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dloading_dock",
"timestamp": "12:44",
"user": "FoeNyx",
"comment": "(+ Modèle : «Translation out of sync» avec l'anglais)",
"change_size": "+35"
},
{
"page_name": "FR:Complète Tes Commerces",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces",
"timestamp": "17:46",
"user": "Koreller",
"comment": "(ajout vidéo peertube SOTM-FR 2025)",
"change_size": "+179"
},
{
"page_name": "FR:Outil de Manipulation et d'Organisation",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Outil_de_Manipulation_et_d%27Organisation",
"timestamp": "N    17:40",
"user": "Koreller",
"comment": "(Created page with \"{{Languages}} {{Software | name = Outil de Manipulation et d'Organisation | screenshot = <!-- screenshot.jpg --> | logo = <!-- logo.jpg --> | author = [https://www.openstreetmap.org/user/caboulot caboulot] | license = WTFPL | price = <!-- gratis;20$;35€ --> | platform = web | status = <!-- one of: active, unmaintained, broken, unfinished --> | version = <!-- 1.0 --> | date = <!-- 2024-12-24...\")",
"change_size": "0"
},
{
"page_name": "FR:Tag:railway=border",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:railway%3Dborder",
"timestamp": "N    17:30",
"user": "Sikal",
"comment": "(Création de la traduction en français)",
"change_size": "0"
},
{
"page_name": "FR:Tag:service=parking aisle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:service%3Dparking_aisle",
"timestamp": "16:18",
"user": "SamDB",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Bicycle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Bicycle",
"timestamp": "20:22",
"user": "Barnes38",
"comment": "(→Chaucidou ou Chaussée à Voie Centrale Banalisée)",
"change_size": "+484"
},
{
"page_name": "FR:Public transport/Tools",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Public_transport/Tools",
"timestamp": "17:58",
"user": "Singing-Poppy",
"comment": "(→Visualisation: Unroll bus station)",
"change_size": "+440"
},
{
"page_name": "FR:Bus",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Bus",
"timestamp": "17:53",
"user": "Singing-Poppy",
"comment": "(outils pour les gares routières)",
"change_size": "+320"
},
{
"page_name": "FR:Tag:amenity=bus station",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dbus_station",
"timestamp": "17:51",
"user": "Singing-Poppy",
"comment": "(→Exemple: ajout de l'outil Unroll)",
"change_size": "+286"
},
{
"page_name": "FR:Comparaison des concepts de cycle de vie",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Comparaison_des_concepts_de_cycle_de_vie",
"timestamp": "m   21:40",
"user": "FGouget",
"comment": "(→= + =: Orthographe)",
"change_size": "0"
},
{
"page_name": "FR:Key:level",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:level",
"timestamp": "m   16:46",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "87"
},
{
"page_name": "FR:Key:bollard",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:bollard",
"timestamp": "16:39",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "132"
},
{
"page_name": "FR:Street parking",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Street_parking",
"timestamp": "16:34",
"user": "Lenny",
"comment": "(compléments et adaptations à la version anglaise du 21 août 2025)",
"change_size": "0"
},
{
"page_name": "FR:Key:addr:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:addr:*",
"timestamp": "m   16:33",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "230"
},
{
"page_name": "FR:Tag:cycleway:right=no",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:cycleway:right%3Dno",
"timestamp": "m   16:22",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "20"
},
{
"page_name": "FR:Key:cycleway:both",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:cycleway:both",
"timestamp": "m   16:21",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "20"
},
{
"page_name": "FR:Tag:cycleway=link",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:cycleway%3Dlink",
"timestamp": "m   16:18",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "2"
},
{
"page_name": "FR:Merchandise",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Merchandise",
"timestamp": "N    15:57",
"user": "Computae",
"comment": "(traduction de la page anglophone, première partie)",
"change_size": "0"
},
{
"page_name": "FR:Tag:footway=access aisle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:footway%3Daccess_aisle",
"timestamp": "12:56",
"user": "Barnes38",
"comment": "",
"change_size": "+16"
},
{
"page_name": "FR:Tag:flood prone=yes",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:flood_prone%3Dyes",
"timestamp": "21:37",
"user": "FoeNyx",
"comment": "(→Voir aussi: + « hazard=flooding »)",
"change_size": "+26"
},
{
"page_name": "FR:Key:circuits",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:circuits",
"timestamp": "16:25",
"user": "Fanfouer",
"comment": "(Mention de power=circuit)",
"change_size": "+45"
},
{
"page_name": "FR:Tag:traffic calming=choker",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:traffic_calming%3Dchoker",
"timestamp": "m   15:48",
"user": "Codl",
"comment": "(\"tour de cou\" → \"rétrécissement\". lol)",
"change_size": "+9"
},
{
"page_name": "FR:Tag:leaf type=needleleaved",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:leaf_type%3Dneedleleaved",
"timestamp": "07:22",
"user": "Marc marc",
"comment": "(correction du correctif :) le critère est ligneux à aiguilles, les arbres ne sont qu'un fraction de la végétation ayant des aiguilles)",
"change_size": "+20"
},
{
"page_name": "FR:Tag:highway=motorway junction",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dmotorway_junction",
"timestamp": "05:46",
"user": "Penegal",
"comment": "(→Exemples: Mise à jour avec destination:ref:to)",
"change_size": "+255"
},
{
"page_name": "FR:Key:roof:shape",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:roof:shape",
"timestamp": "20:32",
"user": "RubenKelevra",
"comment": "(→Autres valeurs courantes et problèmes: cleanup saltbox conflict -> moved to dedicated article https://wiki.openstreetmap.org/wiki/Tag:roof:shape%3Dsaltbox)",
"change_size": "286"
},
{
"page_name": "FR:Key:ref:FR:SIREN",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SIREN",
"timestamp": "m   15:48",
"user": "Lisapple",
"comment": "(Ajout de détails sur la validation d'un code SIREN à partir de la formule de Luhn)",
"change_size": "+439"
},
{
"page_name": "FR:Key:ref:FR:SIRET",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SIRET",
"timestamp": "15:48",
"user": "Lisapple",
"comment": "(Ajout de la formule de Luhn, et quelques informations sur le Bodacc)",
"change_size": "0"
},
{
"page_name": "FR:Complète Tes Commerces/Débutant",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces/D%C3%A9butant",
"timestamp": "12:07",
"user": "MerylStreet",
"comment": "(plus d'astuces)",
"change_size": "0"
},
{
"page_name": "FR:Tag:tourism=camp site",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:tourism%3Dcamp_site",
"timestamp": "m   10:41",
"user": "Blef",
"comment": "(Correspondance avec page EN)",
"change_size": "+3"
},
{
"page_name": "FR:Tag:amenity=parcel locker",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dparcel_locker",
"timestamp": "m   06:42",
"user": "PanierAvide",
"comment": "(→Options d'utilisation / Éléments caractéristiques: Fix _ manquant)",
"change_size": "0"
},
{
"page_name": "FR:North Korea Mapping Guide",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:North_Korea_Mapping_Guide",
"timestamp": "21:17",
"user": "Koreller",
"comment": "(ajout discussion forum)",
"change_size": "+126"
},
{
"page_name": "FR:Contribuer aux données cartographiques",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Contribuer_aux_donn%C3%A9es_cartographiques",
"timestamp": "m   16:50",
"user": "Computae",
"comment": "(liens FR:Exactitude)",
"change_size": "24"
},
{
"page_name": "FR:Assurance qualité",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Assurance_qualit%C3%A9",
"timestamp": "m   16:45",
"user": "Computae",
"comment": "(liens)",
"change_size": "+2"
},
{
"page_name": "FR:Key:opening hours",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:opening_hours",
"timestamp": "m   16:16",
"user": "Computae",
"comment": "(correction catégorie et infobox)",
"change_size": "151"
},
{
"page_name": "FR:Tag:leisure=indoor play",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:leisure%3Dindoor_play",
"timestamp": "m   15:49",
"user": "LySioS",
"comment": "(ajut exemple royal kids)",
"change_size": "+133"
},
{
"page_name": "FR:Key:contact:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:contact:*",
"timestamp": "18:28",
"user": "Computae",
"comment": "(modifications de Yunan973 annulées car non discutées cf https://forum.openstreetmap.fr/t/le-schema-de-charlieu-pour-les-adresses-de-pois-pertinent-ou-non/12959/33)",
"change_size": "0"
},
{
"page_name": "FR:Key:email",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:email",
"timestamp": "18:09",
"user": "Computae",
"comment": "(modèle \"à traduire\")",
"change_size": "+38"
},
{
"page_name": "FR:Tag:power=terminal",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dterminal",
"timestamp": "18:07",
"user": "Fanfouer",
"comment": "(Ajout d'exemples)",
"change_size": "0"
},
{
"page_name": "FR:Key:website:menu",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:website:menu",
"timestamp": "m   18:01",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "172"
},
{
"page_name": "FR:Tag:power=connection",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dconnection",
"timestamp": "m   15:54",
"user": "Fanfouer",
"comment": "(→Comment contribuer)",
"change_size": "+1"
},
{
"page_name": "FR:FPOSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:FPOSM",
"timestamp": "m   15:41",
"user": "Map-dynartio",
"comment": "(Syntax correction)",
"change_size": "101"
},
{
"page_name": "FR:Dynartio",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Dynartio",
"timestamp": "15:25",
"user": "Map-dynartio",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Services commerciaux basés sur OSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Services_commerciaux_bas%C3%A9s_sur_OSM",
"timestamp": "m   14:51",
"user": "Map-dynartio",
"comment": "(Correction user lien Dynartio)",
"change_size": "+18"
},
{
"page_name": "FR:Key:embedded rails",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:embedded_rails",
"timestamp": "m   14:00",
"user": "Kjon",
"comment": "(removed Category:Highways; added Category:FR:Voirie using HotCat)",
"change_size": "+1"
},
{
"page_name": "FR:Tag:line management=termination",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_management%3Dtermination",
"timestamp": "m   11:24",
"user": "Fanfouer",
"comment": "",
"change_size": "+86"
},
{
"page_name": "FR:OSM Map On Garmin/Download",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:OSM_Map_On_Garmin/Download",
"timestamp": "m   08:59",
"user": "Dp7",
"comment": "(→Monde: added a country)",
"change_size": "+18"
},
{
"page_name": "FR:Public Transport Network Analysis",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Public_Transport_Network_Analysis",
"timestamp": "m   15:07",
"user": "Kjon",
"comment": "(removed Category:GTFS; added Category:FR:GTFS using HotCat)",
"change_size": "+3"
},
{
"page_name": "FR:General Transit Feed Specification",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:General_Transit_Feed_Specification",
"timestamp": "m   15:07",
"user": "Kjon",
"comment": "",
"change_size": "34"
},
{
"page_name": "FR:Key:gtfs:shape id",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:gtfs:shape_id",
"timestamp": "m   15:06",
"user": "Kjon",
"comment": "",
"change_size": "14"
},
{
"page_name": "FR:WikiProject Belgium/Local Walking Routes Wallonie",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:WikiProject_Belgium/Local_Walking_Routes_Wallonie",
"timestamp": "m   14:58",
"user": "BrunoVQM",
"comment": "(→Libin: 'Promenade de la Lesse' + 'Virée à Chêne')",
"change_size": "+82"
},
{
"page_name": "FR:Key:room",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:room",
"timestamp": "m   14:43",
"user": "Computae",
"comment": "(description traduite)",
"change_size": "95"
},
{
"page_name": "FR:Mapa en català",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Mapa_en_catal%C3%A0",
"timestamp": "m   09:26",
"user": "LySioS",
"comment": "(màj méthode et BAL pour mairie)",
"change_size": "0"
},
{
"page_name": "FR:Key:sport",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:sport",
"timestamp": "m   19:44",
"user": "Computae",
"comment": "(suppr paramètres superflus)",
"change_size": "240"
},
{
"page_name": "FR:Key:panoramax",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:panoramax",
"timestamp": "17:14",
"user": "Computae",
"comment": "(mise à jour avec la page anglophone)",
"change_size": "+257"
},
{
"page_name": "FR:Key:traffic calming",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:traffic_calming",
"timestamp": "16:30",
"user": "FoeNyx",
"comment": "(→Voir aussi: description succincte du bicycle_bypass)",
"change_size": "+110"
},
{
"page_name": "FR:Key:line management",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:line_management",
"timestamp": "m   14:37",
"user": "Fanfouer",
"comment": "(Remplacement images png vers svg)",
"change_size": "+35"
},
{
"page_name": "FR:Tag:hazard=dangerous junction",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:hazard%3Ddangerous_junction",
"timestamp": "m   21:03",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "1"
},
{
"page_name": "FR:Key:hazard",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:hazard",
"timestamp": "m   21:02",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "1"
},
{
"page_name": "FR:Tag:amenity=sanitary dump station",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dsanitary_dump_station",
"timestamp": "15:33",
"user": "Popolon",
"comment": "",
"change_size": "+1"
},
{
"page_name": "FR:Photomapping In JOSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Photomapping_In_JOSM",
"timestamp": "20:15",
"user": "Something B",
"comment": "",
"change_size": "+20"
},
{
"page_name": "FR:Signalisation routière en France",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Signalisation_routi%C3%A8re_en_France",
"timestamp": "18:48",
"user": "FoeNyx",
"comment": "(→Signaux dintersection et de priorité de type AB: + cas panonceau \"carefour dangereux\")",
"change_size": "+135"
},
{
"page_name": "FR:Key:post office",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:post_office",
"timestamp": "14:30",
"user": "Marc marc",
"comment": "(ajout du terme relais poste aussi utilisé en France)",
"change_size": "+22"
},
{
"page_name": "FR:Key:line attachment",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:line_attachment",
"timestamp": "14:42",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "+237"
},
{
"page_name": "FR:Tag:line attachment=pulley",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dpulley",
"timestamp": "m   10:45",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "112"
},
{
"page_name": "FR:WikiProject Côte d'Ivoire/Tagging CI",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:WikiProject_C%C3%B4te_d%27Ivoire/Tagging_CI",
"timestamp": "10:42",
"user": "Something B",
"comment": "",
"change_size": "+14"
},
{
"page_name": "FR:Tag:line attachment=pin",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dpin",
"timestamp": "m   10:15",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "0"
},
{
"page_name": "FR:Tag:line attachment=suspension",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dsuspension",
"timestamp": "m   09:42",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "+48"
},
{
"page_name": "FR:Key:socket:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:socket:*",
"timestamp": "m   07:59",
"user": "Kylenz",
"comment": "(replace as/nzs photos)",
"change_size": "+16"
},
{
"page_name": "FR:Notes",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Notes",
"timestamp": "20:49",
"user": "Britzz",
"comment": "(ajout lien vers nouvelle page \"traitement des notes\")",
"change_size": "+80"
},
{
"page_name": "FR:Tag:amenity=university",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Duniversity",
"timestamp": "m   08:30",
"user": "Jemily1",
"comment": "(fixed links)",
"change_size": "9"
},
{
"page_name": "FR:Key:topology",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:topology",
"timestamp": "m   17:58",
"user": "Fanfouer",
"comment": "(Add combination with power=circuit)",
"change_size": "+39"
},
{
"page_name": "FR:Tag:power=line",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dline",
"timestamp": "16:41",
"user": "Fanfouer",
"comment": "(Traduction depuis l'anglais. Mention de power=circuit pour le routage électrique)",
"change_size": "0"
},
{
"page_name": "FR:Tag:power=cable",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dcable",
"timestamp": "16:16",
"user": "Fanfouer",
"comment": "(Traduction depuis l'anglais. Mention de power=circuit pour le routage électrique)",
"change_size": "0"
},
{
"page_name": "FR:Tag:fortification type=motte",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:fortification_type%3Dmotte",
"timestamp": "N    11:33",
"user": "Vermandois",
"comment": "(Création de la version FR de fortification_type=motte)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:FR:SNCF Reseau",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SNCF_Reseau",
"timestamp": "m   21:23",
"user": "Railwayfan2005",
"comment": "(→Proposition: railway:position:exact)",
"change_size": "+6"
},
{
"page_name": "FR:Films",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Films",
"timestamp": "16:52",
"user": "R3mi",
"comment": "(→Films qui utilisent OSM)",
"change_size": "0"
},
{
"page_name": "FR:Complète Tes Commerces/Avancé",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces/Avanc%C3%A9",
"timestamp": "08:12",
"user": "Koreller",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Key:aeroway:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:aeroway:*",
"timestamp": "20:58",
"user": "Hardcover2452",
"comment": "(Removed free flying sports. See tag:sport=free_flying)",
"change_size": "119"
},
{
"page_name": "FR:Tag:shop=building materials",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:shop%3Dbuilding_materials",
"timestamp": "m   13:52",
"user": "Zorglubu",
"comment": "(→Comment cartographier: position icone)",
"change_size": "0"
},
{
"page_name": "FR:Tag:amenity=school",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dschool",
"timestamp": "13:20",
"user": "Pyrog",
"comment": "(→Voir aussi: lien vers soutien scolaire)",
"change_size": "+60"
},
{
"page_name": "FR:Key:isced:level",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:isced:level",
"timestamp": "18:05",
"user": "FGouget",
"comment": "(→Conversion des termes locaux: Ajout des Grandes Écoles)",
"change_size": "+48"
},
{
"page_name": "FR:Tag:natural=saddle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:natural%3Dsaddle",
"timestamp": "13:32",
"user": "MDe",
"comment": "(précisions)",
"change_size": "+75"
},
{
"page_name": "FR:OpenRailwayMap/Tagging in France",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:OpenRailwayMap/Tagging_in_France",
"timestamp": "m   01:23",
"user": "Noeld",
"comment": "",
"change_size": "33"
},
{
"page_name": "FR:Tag:highway=passing place",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dpassing_place",
"timestamp": "m   19:22",
"user": "GeorgeKaplan",
"comment": "(Grammaire et ortographe)",
"change_size": "0"
},
{
"page_name": "FR:Tag:aeroway=runway",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:aeroway%3Drunway",
"timestamp": "m   19:08",
"user": "GeorgeKaplan",
"comment": "",
"change_size": "0"
}
]
}

497
recent_changes_debug.html Normal file

File diff suppressed because one or more lines are too long

View file

@ -2508,6 +2508,7 @@ final class AdminController extends AbstractController
return $this->render('admin/osmose_issues_map.html.twig', [ return $this->render('admin/osmose_issues_map.html.twig', [
'city' => $city, 'city' => $city,
'stats' => $city,
'theme' => $theme, 'theme' => $theme,
'themes' => $themes, 'themes' => $themes,
'osmoseIssues' => $osmoseIssues, 'osmoseIssues' => $osmoseIssues,

View file

@ -129,8 +129,8 @@ class WikiController extends AbstractController
// If older than 1 hour, refresh the data // If older than 1 hour, refresh the data
if ($diff->h >= 1 || $diff->days > 0) { if ($diff->h >= 1 || $diff->days > 0) {
$this->refreshRecentChangesData(); // $this->refreshRecentChangesData();
return $this->redirectToRoute('app_admin_wiki_recent_changes'); // return $this->redirectToRoute('app_admin_wiki_recent_changes');
} }
} }
} else { } else {
@ -139,7 +139,7 @@ class WikiController extends AbstractController
// Check if the file was created // Check if the file was created
if (file_exists($recentChangesFile)) { if (file_exists($recentChangesFile)) {
return $this->redirectToRoute('app_admin_wiki_recent_changes'); // return $this->redirectToRoute('app_admin_wiki_recent_changes');
} else { } else {
$this->addFlash('error', 'Impossible de générer le fichier des changements récents.'); $this->addFlash('error', 'Impossible de générer le fichier des changements récents.');
} }

View file

@ -74,7 +74,18 @@
{% endblock %} {% endblock %}
{% block body %} {% block body %}
<div class="container mt-4"> <div class="container-fluid">
<div class="row">
<!-- Sidebar de navigation -->
<div class="col-12 col-lg-3">
{{stats.name}} :
{% include 'admin/_city_sidebar.html.twig' with {'stats': stats, 'active_menu': 'osmose-dashboard'} %}
</div>
<!-- Contenu principal -->
<div class="col-lg-9 col--12 main-content">
<div class="mt-4">
<h1>Problèmes Osmose pour {{ city.name }}</h1> <h1>Problèmes Osmose pour {{ city.name }}</h1>
<div class="filters"> <div class="filters">
@ -255,6 +266,10 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
</div>
{% endblock %} {% endblock %}
{% block javascripts %} {% block javascripts %}

21
test_recent_changes.json Normal file
View file

@ -0,0 +1,21 @@
{
"last_updated": "2025-08-31T18:57:25.156253",
"recent_changes": [
{
"page_name": "Test Page 1",
"page_url": "https://example.com/test1",
"timestamp": "12:34",
"user": "Test User 1",
"comment": "Test comment 1",
"change_size": "+123"
},
{
"page_name": "Test Page 2",
"page_url": "https://example.com/test2",
"timestamp": "23:45",
"user": "Test User 2",
"comment": "Test comment 2",
"change_size": "-456"
}
]
}

View file

@ -38,7 +38,9 @@ logging.basicConfig(
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# Constants # Constants
OUTPUT_FILE = "recent_changes.json" # Use the directory of this script to determine the output file path
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
OUTPUT_FILE = os.path.join(SCRIPT_DIR, "recent_changes.json")
RECENT_CHANGES_URL = "https://wiki.openstreetmap.org/w/index.php?hidebots=1&hidepreviousrevisions=1&hidecategorization=1&hideWikibase=1&hidelog=1&hidenewuserlog=1&namespace=202&limit=500&days=30&enhanced=1&title=Special:RecentChanges&urlversion=2" RECENT_CHANGES_URL = "https://wiki.openstreetmap.org/w/index.php?hidebots=1&hidepreviousrevisions=1&hidecategorization=1&hideWikibase=1&hidelog=1&hidenewuserlog=1&namespace=202&limit=500&days=30&enhanced=1&title=Special:RecentChanges&urlversion=2"
WIKI_BASE_URL = "https://wiki.openstreetmap.org" WIKI_BASE_URL = "https://wiki.openstreetmap.org"
CACHE_DURATION = timedelta(hours=1) # Cache duration of 1 hour CACHE_DURATION = timedelta(hours=1) # Cache duration of 1 hour
@ -97,89 +99,88 @@ def extract_recent_changes(html_content):
soup = BeautifulSoup(html_content, 'html.parser') soup = BeautifulSoup(html_content, 'html.parser')
recent_changes = [] recent_changes = []
# Try different selectors for the changes list # Find the main changeslist container
# First try the old selector # According to the issue description, we should look for .mw-changeslist
changes_list = soup.find('ul', class_='special')
# If not found, try the new selector
if not changes_list:
changes_list = soup.find('div', class_='mw-changeslist') changes_list = soup.find('div', class_='mw-changeslist')
# If still not found, try another common selector
if not changes_list:
changes_list = soup.find('ul', class_='mw-changeslist')
# If still not found, look for any list inside the content area
if not changes_list: if not changes_list:
# If still not found, look for the content area
content_div = soup.find('div', id='mw-content-text') content_div = soup.find('div', id='mw-content-text')
if content_div: if content_div:
changes_list = content_div.find('ul') # Try to find the changeslist div
changes_list = content_div.find('div', class_='mw-changeslist')
if not changes_list: if not changes_list:
logger.warning("Could not find recent changes list") # Log the HTML structure to help debug
logger.warning("Could not find recent changes list. HTML structure:")
body = soup.find('body')
if body:
content_area = body.find('div', id='content')
if content_area:
logger.warning(f"Content area classes: {content_area.get('class', [])}")
main_content = content_area.find('div', id='mw-content-text')
if main_content:
logger.warning(f"Main content first child: {main_content.find().name if main_content.find() else 'None'}")
return [] return []
# Process each list item (each change) logger.info(f"Found changes list with tag: {changes_list.name}, classes: {changes_list.get('class', [])}")
# Try both li elements and div elements with appropriate classes
change_items = changes_list.find_all('li') # Process each change item - based on the actual HTML structure
# According to the debug output, the changes are in tr elements
change_items = changes_list.find_all('tr')
# If no tr elements found directly, look for tables with class mw-changeslist-line
if not change_items: if not change_items:
change_items = changes_list.find_all('div', class_='mw-changeslist-line') tables = changes_list.find_all('table', class_='mw-changeslist-line')
for table in tables:
trs = table.find_all('tr')
change_items.extend(trs)
logger.info(f"Found {len(change_items)} change items")
for item in change_items: for item in change_items:
# Extract the page link - try different selectors # Extract the page link from the mw-changeslist-title class
page_link = item.find('a', class_='mw-changeslist-title') page_link = item.find('a', class_='mw-changeslist-title')
if not page_link: if not page_link:
page_link = item.find('a', class_='mw-changeslist-page') # If not found with the specific class, try to find any link that might be the page link
if not page_link: inner_td = item.find('td', class_='mw-changeslist-line-inner')
# Try to find any link that might be the page link if inner_td:
links = item.find_all('a') links = inner_td.find_all('a')
for link in links: for link in links:
if '/wiki/' in link.get('href', ''): href = link.get('href', '')
if '/wiki/' in href and 'action=history' not in href and 'diff=' not in href:
page_link = link page_link = link
break break
if not page_link: if not page_link:
# Skip items without a page link (might be headers or other elements)
continue continue
page_name = page_link.get_text().strip() page_name = page_link.get_text().strip()
page_url = WIKI_BASE_URL + page_link.get('href') page_url = page_link.get('href')
if not page_url.startswith('http'):
page_url = WIKI_BASE_URL + page_url
# Extract the timestamp - try different selectors # Extract the timestamp from the mw-enhanced-rc class
timestamp_span = item.find('span', class_='mw-changeslist-date') timestamp_td = item.find('td', class_='mw-enhanced-rc')
if not timestamp_span: timestamp = timestamp_td.get_text().strip() if timestamp_td else "Unknown"
timestamp_span = item.find('span', class_='mw-changeslist-time')
timestamp = timestamp_span.get_text().strip() if timestamp_span else "Unknown"
# Extract the user - try different selectors # Extract the user from the mw-userlink class
user_link = item.find('a', class_='mw-userlink') user_link = item.find('a', class_='mw-userlink')
if not user_link:
user_link = item.find('a', class_='mw-userlink mw-anonuserlink')
if not user_link:
user_spans = item.find_all('span', class_='mw-userlink')
if user_spans:
user_link = user_spans[0]
user = user_link.get_text().strip() if user_link else "Unknown" user = user_link.get_text().strip() if user_link else "Unknown"
# Extract the comment - try different selectors # Extract the comment from the comment class
comment_span = item.find('span', class_='comment') comment_span = item.find('span', class_='comment')
if not comment_span:
comment_span = item.find('span', class_='changeslist-comment')
comment = comment_span.get_text().strip() if comment_span else "" comment = comment_span.get_text().strip() if comment_span else ""
# Extract the change size - try different approaches # Extract the change size from the mw-diff-bytes class
size_span = item.find('span', class_='mw-diff-bytes')
if size_span:
change_size = size_span.get_text().strip()
else:
# If not found, try to extract from the text
change_size = "0" change_size = "0"
# Try to find spans with specific classes
size_spans = item.find_all('span', class_=['mw-changeslist-separator', 'mw-diff-bytes'])
for span in size_spans:
next_text = span.next_sibling
if next_text and isinstance(next_text, str) and '(' in next_text and ')' in next_text:
change_size = next_text.strip()
break
# If not found, try another approach
if change_size == "0":
# Look for parentheses with numbers
import re
text = item.get_text() text = item.get_text()
size_matches = re.findall(r'\(\s*([+-]?\d+)\s*\)', text) size_matches = re.findall(r'\(\s*([+-]?\d+)\s*\)', text)
if size_matches: if size_matches:
@ -194,7 +195,9 @@ def extract_recent_changes(html_content):
"change_size": change_size "change_size": change_size
}) })
logger.info(f"Found {len(recent_changes)} recent changes") logger.debug(f"Extracted change: {page_name} by {user}")
logger.info(f"Extracted {len(recent_changes)} recent changes")
return recent_changes return recent_changes
def save_results(recent_changes, dry_run=False): def save_results(recent_changes, dry_run=False):
@ -217,15 +220,79 @@ def save_results(recent_changes, dry_run=False):
logger.info(f" ... and {len(recent_changes) - 5} more") logger.info(f" ... and {len(recent_changes) - 5} more")
return True return True
# Log some details about the recent changes
logger.info(f"Preparing to save {len(recent_changes)} recent changes")
if recent_changes:
logger.info(f"First change: {recent_changes[0]['page_name']} by {recent_changes[0]['user']}")
# Prepare the data structure # Prepare the data structure
data = { data = {
"last_updated": datetime.now().isoformat(), "last_updated": datetime.now().isoformat(),
"recent_changes": recent_changes "recent_changes": recent_changes
} }
# Get the file's last modified time before saving
before_mtime = None
if os.path.exists(OUTPUT_FILE):
before_mtime = os.path.getmtime(OUTPUT_FILE)
logger.info(f"File {OUTPUT_FILE} exists, last modified at {datetime.fromtimestamp(before_mtime)}")
try: try:
with open(OUTPUT_FILE, 'w', encoding='utf-8') as f: # Print the JSON data that we're trying to save
json.dump(data, f, indent=2, ensure_ascii=False) json_data = json.dumps(data, indent=2, ensure_ascii=False)
logger.info(f"JSON data to save (first 500 chars): {json_data[:500]}...")
# Save the data to a temporary file first
temp_file = OUTPUT_FILE + ".tmp"
logger.info(f"Writing data to temporary file {temp_file}")
with open(temp_file, 'w', encoding='utf-8') as f:
f.write(json_data)
# Check if the temporary file was created and has content
if os.path.exists(temp_file):
temp_size = os.path.getsize(temp_file)
logger.info(f"Temporary file {temp_file} created, size: {temp_size} bytes")
# Read the content of the temporary file to verify
with open(temp_file, 'r', encoding='utf-8') as f:
temp_content = f.read(500) # Read first 500 chars
logger.info(f"Temporary file content (first 500 chars): {temp_content}...")
# Move the temporary file to the final location
logger.info(f"Moving temporary file to {OUTPUT_FILE}")
import shutil
shutil.move(temp_file, OUTPUT_FILE)
else:
logger.error(f"Failed to create temporary file {temp_file}")
# Check if the file was actually updated
if os.path.exists(OUTPUT_FILE):
after_mtime = os.path.getmtime(OUTPUT_FILE)
file_size = os.path.getsize(OUTPUT_FILE)
logger.info(f"File {OUTPUT_FILE} exists, size: {file_size} bytes, mtime: {datetime.fromtimestamp(after_mtime)}")
# Read the content of the file to verify
with open(OUTPUT_FILE, 'r', encoding='utf-8') as f:
file_content = f.read(500) # Read first 500 chars
logger.info(f"File content (first 500 chars): {file_content}...")
if before_mtime and after_mtime <= before_mtime:
logger.warning(f"File {OUTPUT_FILE} was not updated (mtime did not change)")
else:
logger.error(f"File {OUTPUT_FILE} does not exist after saving")
# Copy the file to the public directory
public_file = os.path.join(os.path.dirname(os.path.dirname(OUTPUT_FILE)), 'public', os.path.basename(OUTPUT_FILE))
logger.info(f"Copying {OUTPUT_FILE} to {public_file}")
shutil.copy2(OUTPUT_FILE, public_file)
# Check if the public file was created
if os.path.exists(public_file):
public_size = os.path.getsize(public_file)
logger.info(f"Public file {public_file} created, size: {public_size} bytes")
else:
logger.error(f"Failed to create public file {public_file}")
logger.info(f"Successfully saved {len(recent_changes)} recent changes to {OUTPUT_FILE}") logger.info(f"Successfully saved {len(recent_changes)} recent changes to {OUTPUT_FILE}")
return True return True
except IOError as e: except IOError as e:
@ -237,6 +304,7 @@ def main():
parser = argparse.ArgumentParser(description="Fetch recent changes from the OSM wiki French namespace") parser = argparse.ArgumentParser(description="Fetch recent changes from the OSM wiki French namespace")
parser.add_argument("--dry-run", action="store_true", help="Run without saving results to file") parser.add_argument("--dry-run", action="store_true", help="Run without saving results to file")
parser.add_argument("--force", action="store_true", help="Force update even if cache is fresh") parser.add_argument("--force", action="store_true", help="Force update even if cache is fresh")
parser.add_argument("--debug", action="store_true", help="Save HTML content to a file for debugging")
args = parser.parse_args() args = parser.parse_args()
logger.info("Starting fetch_recent_changes.py") logger.info("Starting fetch_recent_changes.py")
@ -254,6 +322,51 @@ def main():
logger.error("Failed to get recent changes page content") logger.error("Failed to get recent changes page content")
return return
# Save HTML content to a file for debugging
if args.debug:
debug_file = "recent_changes_debug.html"
try:
with open(debug_file, 'w', encoding='utf-8') as f:
f.write(html_content)
logger.info(f"Saved HTML content to {debug_file} for debugging")
except IOError as e:
logger.error(f"Error saving HTML content to {debug_file}: {e}")
# Parse the HTML to find the structure
soup = BeautifulSoup(html_content, 'html.parser')
# Find the main content area
content_div = soup.find('div', id='mw-content-text')
if content_div:
logger.info(f"Found content div with id 'mw-content-text'")
# Look for elements with mw-changeslist class
changeslist_elements = content_div.find_all(class_='mw-changeslist')
logger.info(f"Found {len(changeslist_elements)} elements with class 'mw-changeslist'")
for i, element in enumerate(changeslist_elements):
logger.info(f"Element {i+1} tag: {element.name}, classes: {element.get('class', [])}")
# Look for table rows or other elements that might contain changes
rows = element.find_all('tr')
divs = element.find_all('div', class_='mw-changeslist-line')
lis = element.find_all('li')
logger.info(f" - Contains {len(rows)} tr elements")
logger.info(f" - Contains {len(divs)} div.mw-changeslist-line elements")
logger.info(f" - Contains {len(lis)} li elements")
# Check direct children
children = list(element.children)
logger.info(f" - Has {len(children)} direct children")
if children:
child_types = {}
for child in children:
if hasattr(child, 'name') and child.name:
child_type = child.name
child_types[child_type] = child_types.get(child_type, 0) + 1
logger.info(f" - Direct children types: {child_types}")
# Extract recent changes # Extract recent changes
recent_changes = extract_recent_changes(html_content) recent_changes = extract_recent_changes(html_content)

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,909 @@
{ {
"last_updated": "2025-08-22T23:19:25.979669", "last_updated": "2025-08-31T22:51:15.379102",
"recent_changes": [] "recent_changes": [
{
"page_name": "FR:Tag:man made=guard stone",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:man_made%3Dguard_stone",
"timestamp": "N    17:23",
"user": "Lejun",
"comment": "(Traduction depuis l'anglais.)",
"change_size": "0"
},
{
"page_name": "FR:Tag:amenity=recycling",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Drecycling",
"timestamp": "15:51",
"user": "The1110",
"comment": "(Changement de support de post à pole)",
"change_size": "+16"
},
{
"page_name": "FR:Wall",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Wall",
"timestamp": "15:32",
"user": "Tykayn wiki",
"comment": "(up boite principale)",
"change_size": "+54"
},
{
"page_name": "FR:Addr:city:simc",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Addr:city:simc",
"timestamp": "N    14:27",
"user": "Tykayn wiki",
"comment": "(création et traduction)",
"change_size": "0"
},
{
"page_name": "FR:Tag:highway=hitchhiking",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dhitchhiking",
"timestamp": "m   13:02",
"user": "AdrienHegy",
"comment": "(Ajout termes liés)",
"change_size": "+100"
},
{
"page_name": "FR:Tag:ceremonial gate=torii",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:ceremonial_gate%3Dtorii",
"timestamp": "10:32",
"user": "Computae",
"comment": "(correction infobox)",
"change_size": "164"
},
{
"page_name": "FR:Tag:man made=torii",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:man_made%3Dtorii",
"timestamp": "10:27",
"user": "Computae",
"comment": "(mise en forme)",
"change_size": "+23"
},
{
"page_name": "FR:Tag:boundary=forest",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:boundary%3Dforest",
"timestamp": "N    08:48",
"user": "Technoeconature",
"comment": "(Début de traductions)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:EU:ENTSOE EIC",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:EU:ENTSOE_EIC",
"timestamp": "m   08:23",
"user": "Kjon",
"comment": "(removed Category:Power using HotCat)",
"change_size": "19"
},
{
"page_name": "FR:Key:position",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:position",
"timestamp": "m   08:15",
"user": "Kjon",
"comment": "(Update group)",
"change_size": "+2"
},
{
"page_name": "FR:Key:addr:housename",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:addr:housename",
"timestamp": "m   21:57",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "17"
},
{
"page_name": "FR:Tag:amenity=stage",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dstage",
"timestamp": "m   21:55",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "28"
},
{
"page_name": "FR:Tag:footway=crossing",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:footway%3Dcrossing",
"timestamp": "m   21:06",
"user": "FoeNyx",
"comment": "(\"+\" → non sélectionnables (pour faciliter le copié-collé des exemples))",
"change_size": "0"
},
{
"page_name": "FR:Key:crossing:markings:condition",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:crossing:markings:condition",
"timestamp": "07:27",
"user": "Singing-Poppy",
"comment": "(add pictures)",
"change_size": "+100"
},
{
"page_name": "FR:Notes/Traitement",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Notes/Traitement",
"timestamp": "17:17",
"user": "Britzz",
"comment": "",
"change_size": "+196"
},
{
"page_name": "FR:Lyon",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon",
"timestamp": "20:25",
"user": "Renecha",
"comment": "(→Rencontres périodiques)",
"change_size": "237"
},
{
"page_name": "FR:Lyon/Archives",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Archives",
"timestamp": "20:25",
"user": "Renecha",
"comment": "(→Réunions du groupe local)",
"change_size": "+224"
},
{
"page_name": "FR:Lyon/Reunion-2025-09-16",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-09-16",
"timestamp": "20:23",
"user": "Renecha",
"comment": "(→Événements à venir)",
"change_size": "+1"
},
{
"page_name": "FR:Lyon/Reunion-2025-12-16",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-12-16",
"timestamp": "N    20:23",
"user": "Renecha",
"comment": "(Created page with \" {{Lyon/Archives/Infobox}} __TOC__ == Synopsis de la rencontre du mardi 16 décembre 2025 == === Organisation / Lieu === La réunion aura lieu dans les locaux du Tubà, 15 boulevard Vivier-Merle, Lyon 3e - à partir de 18h30. La réunion est également accessible en visioconférence sur [https://osmvideo.cloud68.co/user/ren-ncq-irt-nv8 ce salon BigBlueButton]. Invitation lancée par : * le site [http://www.openstreetmap.fr/ openstreetmap.fr] → via [https://www.ag...\")",
"change_size": "0"
},
{
"page_name": "FR:Lyon/Reunion-2025-10-21",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-10-21",
"timestamp": "20:22",
"user": "Renecha",
"comment": "(→Synopsis de la rencontre du mardi 16 septembre 2025)",
"change_size": "2"
},
{
"page_name": "FR:Lyon/Reunion-2025-11-18",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Lyon/Reunion-2025-11-18",
"timestamp": "N    20:22",
"user": "Renecha",
"comment": "(Created page with \" {{Lyon/Archives/Infobox}} __TOC__ == Synopsis de la rencontre du mardi 18 novembre 2025 == === Organisation / Lieu === La réunion aura lieu dans les locaux du Tubà, 15 boulevard Vivier-Merle, Lyon 3e - à partir de 18h30. La réunion est également accessible en visioconférence sur [https://osmvideo.cloud68.co/user/ren-ncq-irt-nv8 ce salon BigBlueButton]. Invitation lancée par : * le site [http://www.openstreetmap.fr/ openstreetmap.fr] → via [https://www.age...\")",
"change_size": "0"
},
{
"page_name": "FR:France/Régions Naturelles et Massifs montagneux",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:France/R%C3%A9gions_Naturelles_et_Massifs_montagneux",
"timestamp": "18:19",
"user": "Sletuffe",
"comment": "",
"change_size": "+1"
},
{
"page_name": "FR:Planet.osm",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Planet.osm",
"timestamp": "16:44",
"user": "Cyrille37",
"comment": "(→Miroirs: http://hexagone.openstreetmap.fr is no more alive)",
"change_size": "+6"
},
{
"page_name": "FR:Tag:building=school",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:building%3Dschool",
"timestamp": "m   14:52",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "28"
},
{
"page_name": "FR:Projet du mois/Écoles",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Projet_du_mois/%C3%89coles",
"timestamp": "10:12",
"user": "Benoitdd",
"comment": "(→Statistiques: + propositions de cartographie)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:FR:NAF/values",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:NAF/values",
"timestamp": "21:33",
"user": "FoeNyx",
"comment": "(4942Z → office=moving_company)",
"change_size": "+51"
},
{
"page_name": "FR:Tag:place=farm",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:place%3Dfarm",
"timestamp": "m   18:49",
"user": "Kjon",
"comment": "(removed Category:Places using HotCat)",
"change_size": "32"
},
{
"page_name": "FR:Key:cycle network",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:cycle_network",
"timestamp": "m   17:37",
"user": "Kjon",
"comment": "(removed Category:Cycle routes; added Category:FR:Itinéraires cyclables using HotCat)",
"change_size": "+13"
},
{
"page_name": "FR:Tag:amenity=loading dock",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dloading_dock",
"timestamp": "12:44",
"user": "FoeNyx",
"comment": "(+ Modèle : «Translation out of sync» avec l'anglais)",
"change_size": "+35"
},
{
"page_name": "FR:Complète Tes Commerces",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces",
"timestamp": "17:46",
"user": "Koreller",
"comment": "(ajout vidéo peertube SOTM-FR 2025)",
"change_size": "+179"
},
{
"page_name": "FR:Outil de Manipulation et d'Organisation",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Outil_de_Manipulation_et_d%27Organisation",
"timestamp": "N    17:40",
"user": "Koreller",
"comment": "(Created page with \"{{Languages}} {{Software | name = Outil de Manipulation et d'Organisation | screenshot = <!-- screenshot.jpg --> | logo = <!-- logo.jpg --> | author = [https://www.openstreetmap.org/user/caboulot caboulot] | license = WTFPL | price = <!-- gratis;20$;35€ --> | platform = web | status = <!-- one of: active, unmaintained, broken, unfinished --> | version = <!-- 1.0 --> | date = <!-- 2024-12-24...\")",
"change_size": "0"
},
{
"page_name": "FR:Tag:railway=border",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:railway%3Dborder",
"timestamp": "N    17:30",
"user": "Sikal",
"comment": "(Création de la traduction en français)",
"change_size": "0"
},
{
"page_name": "FR:Tag:service=parking aisle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:service%3Dparking_aisle",
"timestamp": "16:18",
"user": "SamDB",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Bicycle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Bicycle",
"timestamp": "20:22",
"user": "Barnes38",
"comment": "(→Chaucidou ou Chaussée à Voie Centrale Banalisée)",
"change_size": "+484"
},
{
"page_name": "FR:Public transport/Tools",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Public_transport/Tools",
"timestamp": "17:58",
"user": "Singing-Poppy",
"comment": "(→Visualisation: Unroll bus station)",
"change_size": "+440"
},
{
"page_name": "FR:Bus",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Bus",
"timestamp": "17:53",
"user": "Singing-Poppy",
"comment": "(outils pour les gares routières)",
"change_size": "+320"
},
{
"page_name": "FR:Tag:amenity=bus station",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dbus_station",
"timestamp": "17:51",
"user": "Singing-Poppy",
"comment": "(→Exemple: ajout de l'outil Unroll)",
"change_size": "+286"
},
{
"page_name": "FR:Comparaison des concepts de cycle de vie",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Comparaison_des_concepts_de_cycle_de_vie",
"timestamp": "m   21:40",
"user": "FGouget",
"comment": "(→= + =: Orthographe)",
"change_size": "0"
},
{
"page_name": "FR:Key:level",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:level",
"timestamp": "m   16:46",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "87"
},
{
"page_name": "FR:Key:bollard",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:bollard",
"timestamp": "16:39",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "132"
},
{
"page_name": "FR:Street parking",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Street_parking",
"timestamp": "16:34",
"user": "Lenny",
"comment": "(compléments et adaptations à la version anglaise du 21 août 2025)",
"change_size": "0"
},
{
"page_name": "FR:Key:addr:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:addr:*",
"timestamp": "m   16:33",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "230"
},
{
"page_name": "FR:Tag:cycleway:right=no",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:cycleway:right%3Dno",
"timestamp": "m   16:22",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "20"
},
{
"page_name": "FR:Key:cycleway:both",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:cycleway:both",
"timestamp": "m   16:21",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "20"
},
{
"page_name": "FR:Tag:cycleway=link",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:cycleway%3Dlink",
"timestamp": "m   16:18",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "2"
},
{
"page_name": "FR:Merchandise",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Merchandise",
"timestamp": "N    15:57",
"user": "Computae",
"comment": "(traduction de la page anglophone, première partie)",
"change_size": "0"
},
{
"page_name": "FR:Tag:footway=access aisle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:footway%3Daccess_aisle",
"timestamp": "12:56",
"user": "Barnes38",
"comment": "",
"change_size": "+16"
},
{
"page_name": "FR:Tag:flood prone=yes",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:flood_prone%3Dyes",
"timestamp": "21:37",
"user": "FoeNyx",
"comment": "(→Voir aussi: + « hazard=flooding »)",
"change_size": "+26"
},
{
"page_name": "FR:Key:circuits",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:circuits",
"timestamp": "16:25",
"user": "Fanfouer",
"comment": "(Mention de power=circuit)",
"change_size": "+45"
},
{
"page_name": "FR:Tag:traffic calming=choker",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:traffic_calming%3Dchoker",
"timestamp": "m   15:48",
"user": "Codl",
"comment": "(\"tour de cou\" → \"rétrécissement\". lol)",
"change_size": "+9"
},
{
"page_name": "FR:Tag:leaf type=needleleaved",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:leaf_type%3Dneedleleaved",
"timestamp": "07:22",
"user": "Marc marc",
"comment": "(correction du correctif :) le critère est ligneux à aiguilles, les arbres ne sont qu'un fraction de la végétation ayant des aiguilles)",
"change_size": "+20"
},
{
"page_name": "FR:Tag:highway=motorway junction",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dmotorway_junction",
"timestamp": "05:46",
"user": "Penegal",
"comment": "(→Exemples: Mise à jour avec destination:ref:to)",
"change_size": "+255"
},
{
"page_name": "FR:Key:roof:shape",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:roof:shape",
"timestamp": "20:32",
"user": "RubenKelevra",
"comment": "(→Autres valeurs courantes et problèmes: cleanup saltbox conflict -> moved to dedicated article https://wiki.openstreetmap.org/wiki/Tag:roof:shape%3Dsaltbox)",
"change_size": "286"
},
{
"page_name": "FR:Key:ref:FR:SIREN",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SIREN",
"timestamp": "m   15:48",
"user": "Lisapple",
"comment": "(Ajout de détails sur la validation d'un code SIREN à partir de la formule de Luhn)",
"change_size": "+439"
},
{
"page_name": "FR:Key:ref:FR:SIRET",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SIRET",
"timestamp": "15:48",
"user": "Lisapple",
"comment": "(Ajout de la formule de Luhn, et quelques informations sur le Bodacc)",
"change_size": "0"
},
{
"page_name": "FR:Complète Tes Commerces/Débutant",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces/D%C3%A9butant",
"timestamp": "12:07",
"user": "MerylStreet",
"comment": "(plus d'astuces)",
"change_size": "0"
},
{
"page_name": "FR:Tag:tourism=camp site",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:tourism%3Dcamp_site",
"timestamp": "m   10:41",
"user": "Blef",
"comment": "(Correspondance avec page EN)",
"change_size": "+3"
},
{
"page_name": "FR:Tag:amenity=parcel locker",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dparcel_locker",
"timestamp": "m   06:42",
"user": "PanierAvide",
"comment": "(→Options d'utilisation / Éléments caractéristiques: Fix _ manquant)",
"change_size": "0"
},
{
"page_name": "FR:North Korea Mapping Guide",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:North_Korea_Mapping_Guide",
"timestamp": "21:17",
"user": "Koreller",
"comment": "(ajout discussion forum)",
"change_size": "+126"
},
{
"page_name": "FR:Contribuer aux données cartographiques",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Contribuer_aux_donn%C3%A9es_cartographiques",
"timestamp": "m   16:50",
"user": "Computae",
"comment": "(liens FR:Exactitude)",
"change_size": "24"
},
{
"page_name": "FR:Assurance qualité",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Assurance_qualit%C3%A9",
"timestamp": "m   16:45",
"user": "Computae",
"comment": "(liens)",
"change_size": "+2"
},
{
"page_name": "FR:Key:opening hours",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:opening_hours",
"timestamp": "m   16:16",
"user": "Computae",
"comment": "(correction catégorie et infobox)",
"change_size": "151"
},
{
"page_name": "FR:Tag:leisure=indoor play",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:leisure%3Dindoor_play",
"timestamp": "m   15:49",
"user": "LySioS",
"comment": "(ajut exemple royal kids)",
"change_size": "+133"
},
{
"page_name": "FR:Key:contact:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:contact:*",
"timestamp": "18:28",
"user": "Computae",
"comment": "(modifications de Yunan973 annulées car non discutées cf https://forum.openstreetmap.fr/t/le-schema-de-charlieu-pour-les-adresses-de-pois-pertinent-ou-non/12959/33)",
"change_size": "0"
},
{
"page_name": "FR:Key:email",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:email",
"timestamp": "18:09",
"user": "Computae",
"comment": "(modèle \"à traduire\")",
"change_size": "+38"
},
{
"page_name": "FR:Tag:power=terminal",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dterminal",
"timestamp": "18:07",
"user": "Fanfouer",
"comment": "(Ajout d'exemples)",
"change_size": "0"
},
{
"page_name": "FR:Key:website:menu",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:website:menu",
"timestamp": "m   18:01",
"user": "Computae",
"comment": "(infobox automatique)",
"change_size": "172"
},
{
"page_name": "FR:Tag:power=connection",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dconnection",
"timestamp": "m   15:54",
"user": "Fanfouer",
"comment": "(→Comment contribuer)",
"change_size": "+1"
},
{
"page_name": "FR:FPOSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:FPOSM",
"timestamp": "m   15:41",
"user": "Map-dynartio",
"comment": "(Syntax correction)",
"change_size": "101"
},
{
"page_name": "FR:Dynartio",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Dynartio",
"timestamp": "15:25",
"user": "Map-dynartio",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Services commerciaux basés sur OSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Services_commerciaux_bas%C3%A9s_sur_OSM",
"timestamp": "m   14:51",
"user": "Map-dynartio",
"comment": "(Correction user lien Dynartio)",
"change_size": "+18"
},
{
"page_name": "FR:Key:embedded rails",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:embedded_rails",
"timestamp": "m   14:00",
"user": "Kjon",
"comment": "(removed Category:Highways; added Category:FR:Voirie using HotCat)",
"change_size": "+1"
},
{
"page_name": "FR:Tag:line management=termination",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_management%3Dtermination",
"timestamp": "m   11:24",
"user": "Fanfouer",
"comment": "",
"change_size": "+86"
},
{
"page_name": "FR:OSM Map On Garmin/Download",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:OSM_Map_On_Garmin/Download",
"timestamp": "m   08:59",
"user": "Dp7",
"comment": "(→Monde: added a country)",
"change_size": "+18"
},
{
"page_name": "FR:Public Transport Network Analysis",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Public_Transport_Network_Analysis",
"timestamp": "m   15:07",
"user": "Kjon",
"comment": "(removed Category:GTFS; added Category:FR:GTFS using HotCat)",
"change_size": "+3"
},
{
"page_name": "FR:General Transit Feed Specification",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:General_Transit_Feed_Specification",
"timestamp": "m   15:07",
"user": "Kjon",
"comment": "",
"change_size": "34"
},
{
"page_name": "FR:Key:gtfs:shape id",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:gtfs:shape_id",
"timestamp": "m   15:06",
"user": "Kjon",
"comment": "",
"change_size": "14"
},
{
"page_name": "FR:WikiProject Belgium/Local Walking Routes Wallonie",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:WikiProject_Belgium/Local_Walking_Routes_Wallonie",
"timestamp": "m   14:58",
"user": "BrunoVQM",
"comment": "(→Libin: 'Promenade de la Lesse' + 'Virée à Chêne')",
"change_size": "+82"
},
{
"page_name": "FR:Key:room",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:room",
"timestamp": "m   14:43",
"user": "Computae",
"comment": "(description traduite)",
"change_size": "95"
},
{
"page_name": "FR:Mapa en català",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Mapa_en_catal%C3%A0",
"timestamp": "m   09:26",
"user": "LySioS",
"comment": "(màj méthode et BAL pour mairie)",
"change_size": "0"
},
{
"page_name": "FR:Key:sport",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:sport",
"timestamp": "m   19:44",
"user": "Computae",
"comment": "(suppr paramètres superflus)",
"change_size": "240"
},
{
"page_name": "FR:Key:panoramax",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:panoramax",
"timestamp": "17:14",
"user": "Computae",
"comment": "(mise à jour avec la page anglophone)",
"change_size": "+257"
},
{
"page_name": "FR:Key:traffic calming",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:traffic_calming",
"timestamp": "16:30",
"user": "FoeNyx",
"comment": "(→Voir aussi: description succincte du bicycle_bypass)",
"change_size": "+110"
},
{
"page_name": "FR:Key:line management",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:line_management",
"timestamp": "m   14:37",
"user": "Fanfouer",
"comment": "(Remplacement images png vers svg)",
"change_size": "+35"
},
{
"page_name": "FR:Tag:hazard=dangerous junction",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:hazard%3Ddangerous_junction",
"timestamp": "m   21:03",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "1"
},
{
"page_name": "FR:Key:hazard",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:hazard",
"timestamp": "m   21:02",
"user": "Computae",
"comment": "(correction du groupe)",
"change_size": "1"
},
{
"page_name": "FR:Tag:amenity=sanitary dump station",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dsanitary_dump_station",
"timestamp": "15:33",
"user": "Popolon",
"comment": "",
"change_size": "+1"
},
{
"page_name": "FR:Photomapping In JOSM",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Photomapping_In_JOSM",
"timestamp": "20:15",
"user": "Something B",
"comment": "",
"change_size": "+20"
},
{
"page_name": "FR:Signalisation routière en France",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Signalisation_routi%C3%A8re_en_France",
"timestamp": "18:48",
"user": "FoeNyx",
"comment": "(→Signaux dintersection et de priorité de type AB: + cas panonceau \"carefour dangereux\")",
"change_size": "+135"
},
{
"page_name": "FR:Key:post office",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:post_office",
"timestamp": "14:30",
"user": "Marc marc",
"comment": "(ajout du terme relais poste aussi utilisé en France)",
"change_size": "+22"
},
{
"page_name": "FR:Key:line attachment",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:line_attachment",
"timestamp": "14:42",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "+237"
},
{
"page_name": "FR:Tag:line attachment=pulley",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dpulley",
"timestamp": "m   10:45",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "112"
},
{
"page_name": "FR:WikiProject Côte d'Ivoire/Tagging CI",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:WikiProject_C%C3%B4te_d%27Ivoire/Tagging_CI",
"timestamp": "10:42",
"user": "Something B",
"comment": "",
"change_size": "+14"
},
{
"page_name": "FR:Tag:line attachment=pin",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dpin",
"timestamp": "m   10:15",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "0"
},
{
"page_name": "FR:Tag:line attachment=suspension",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:line_attachment%3Dsuspension",
"timestamp": "m   09:42",
"user": "Fanfouer",
"comment": "(Replace illustration with svg equivalent)",
"change_size": "+48"
},
{
"page_name": "FR:Key:socket:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:socket:*",
"timestamp": "m   07:59",
"user": "Kylenz",
"comment": "(replace as/nzs photos)",
"change_size": "+16"
},
{
"page_name": "FR:Notes",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Notes",
"timestamp": "20:49",
"user": "Britzz",
"comment": "(ajout lien vers nouvelle page \"traitement des notes\")",
"change_size": "+80"
},
{
"page_name": "FR:Tag:amenity=university",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Duniversity",
"timestamp": "m   08:30",
"user": "Jemily1",
"comment": "(fixed links)",
"change_size": "9"
},
{
"page_name": "FR:Key:topology",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:topology",
"timestamp": "m   17:58",
"user": "Fanfouer",
"comment": "(Add combination with power=circuit)",
"change_size": "+39"
},
{
"page_name": "FR:Tag:power=line",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dline",
"timestamp": "16:41",
"user": "Fanfouer",
"comment": "(Traduction depuis l'anglais. Mention de power=circuit pour le routage électrique)",
"change_size": "0"
},
{
"page_name": "FR:Tag:power=cable",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:power%3Dcable",
"timestamp": "16:16",
"user": "Fanfouer",
"comment": "(Traduction depuis l'anglais. Mention de power=circuit pour le routage électrique)",
"change_size": "0"
},
{
"page_name": "FR:Tag:fortification type=motte",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:fortification_type%3Dmotte",
"timestamp": "N    11:33",
"user": "Vermandois",
"comment": "(Création de la version FR de fortification_type=motte)",
"change_size": "0"
},
{
"page_name": "FR:Key:ref:FR:SNCF Reseau",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:ref:FR:SNCF_Reseau",
"timestamp": "m   21:23",
"user": "Railwayfan2005",
"comment": "(→Proposition: railway:position:exact)",
"change_size": "+6"
},
{
"page_name": "FR:Films",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Films",
"timestamp": "16:52",
"user": "R3mi",
"comment": "(→Films qui utilisent OSM)",
"change_size": "0"
},
{
"page_name": "FR:Complète Tes Commerces/Avancé",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Compl%C3%A8te_Tes_Commerces/Avanc%C3%A9",
"timestamp": "08:12",
"user": "Koreller",
"comment": "",
"change_size": "0"
},
{
"page_name": "FR:Key:aeroway:*",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:aeroway:*",
"timestamp": "20:58",
"user": "Hardcover2452",
"comment": "(Removed free flying sports. See tag:sport=free_flying)",
"change_size": "119"
},
{
"page_name": "FR:Tag:shop=building materials",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:shop%3Dbuilding_materials",
"timestamp": "m   13:52",
"user": "Zorglubu",
"comment": "(→Comment cartographier: position icone)",
"change_size": "0"
},
{
"page_name": "FR:Tag:amenity=school",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:amenity%3Dschool",
"timestamp": "13:20",
"user": "Pyrog",
"comment": "(→Voir aussi: lien vers soutien scolaire)",
"change_size": "+60"
},
{
"page_name": "FR:Key:isced:level",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Key:isced:level",
"timestamp": "18:05",
"user": "FGouget",
"comment": "(→Conversion des termes locaux: Ajout des Grandes Écoles)",
"change_size": "+48"
},
{
"page_name": "FR:Tag:natural=saddle",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:natural%3Dsaddle",
"timestamp": "13:32",
"user": "MDe",
"comment": "(précisions)",
"change_size": "+75"
},
{
"page_name": "FR:OpenRailwayMap/Tagging in France",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:OpenRailwayMap/Tagging_in_France",
"timestamp": "m   01:23",
"user": "Noeld",
"comment": "",
"change_size": "33"
},
{
"page_name": "FR:Tag:highway=passing place",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:highway%3Dpassing_place",
"timestamp": "m   19:22",
"user": "GeorgeKaplan",
"comment": "(Grammaire et ortographe)",
"change_size": "0"
},
{
"page_name": "FR:Tag:aeroway=runway",
"page_url": "https://wiki.openstreetmap.org/wiki/FR:Tag:aeroway%3Drunway",
"timestamp": "m   19:08",
"user": "GeorgeKaplan",
"comment": "",
"change_size": "0"
}
]
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Before After
Before After

70
wiki_compare/test_json.py Normal file
View file

@ -0,0 +1,70 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
test_json.py
This script tests writing a JSON file with some test data.
"""
import json
import os
from datetime import datetime
# Test data
test_data = {
"last_updated": datetime.now().isoformat(),
"recent_changes": [
{
"page_name": "Test Page 1",
"page_url": "https://example.com/test1",
"timestamp": "12:34",
"user": "Test User 1",
"comment": "Test comment 1",
"change_size": "+123"
},
{
"page_name": "Test Page 2",
"page_url": "https://example.com/test2",
"timestamp": "23:45",
"user": "Test User 2",
"comment": "Test comment 2",
"change_size": "-456"
}
]
}
# Output file
output_file = "test_recent_changes.json"
# Write the data to the file
print(f"Writing test data to {output_file}")
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(test_data, f, indent=2, ensure_ascii=False)
# Check if the file was created
if os.path.exists(output_file):
file_size = os.path.getsize(output_file)
print(f"File {output_file} created, size: {file_size} bytes")
# Read the content of the file to verify
with open(output_file, 'r', encoding='utf-8') as f:
file_content = f.read()
print(f"File content: {file_content}")
else:
print(f"Failed to create file {output_file}")
# Copy the file to the public directory
public_file = os.path.join(os.path.dirname(os.path.dirname(output_file)), 'public', os.path.basename(output_file))
print(f"Copying {output_file} to {public_file}")
import shutil
shutil.copy2(output_file, public_file)
# Check if the public file was created
if os.path.exists(public_file):
public_size = os.path.getsize(public_file)
print(f"Public file {public_file} created, size: {public_size} bytes")
else:
print(f"Failed to create public file {public_file}")
print("Script completed successfully")

View file

@ -18,385 +18,5 @@
{ {
"key": "addr:street", "key": "addr:street",
"count": 161005721 "count": 161005721
},
{
"key": "addr:city",
"count": 123355107
},
{
"key": "name",
"count": 109342549
},
{
"key": "addr:postcode",
"count": 107014659
},
{
"key": "natural",
"count": 84723029
},
{
"key": "surface",
"count": 72309071
},
{
"key": "addr:country",
"count": 50567842
},
{
"key": "landuse",
"count": 48196369
},
{
"key": "power",
"count": 44787307
},
{
"key": "waterway",
"count": 37279458
},
{
"key": "building:levels",
"count": 36502866
},
{
"key": "amenity",
"count": 30994353
},
{
"key": "barrier",
"count": 30164354
},
{
"key": "source:date",
"count": 29112775
},
{
"key": "service",
"count": 28396250
},
{
"key": "addr:state",
"count": 25367076
},
{
"key": "access",
"count": 24253880
},
{
"key": "oneway",
"count": 24142755
},
{
"key": "height",
"count": 22751656
},
{
"key": "ref",
"count": 21377968
},
{
"key": "maxspeed",
"count": 20638084
},
{
"key": "lanes",
"count": 18474748
},
{
"key": "start_date",
"count": 17811278
},
{
"key": "addr:district",
"count": 16225592
},
{
"key": "layer",
"count": 14701214
},
{
"key": "type",
"count": 13779491
},
{
"key": "operator",
"count": 13564477
},
{
"key": "lit",
"count": 13470867
},
{
"key": "wall",
"count": 12772569
},
{
"key": "tiger:cfcc",
"count": 12591947
},
{
"key": "crossing",
"count": 12576456
},
{
"key": "tiger:county",
"count": 12487373
},
{
"key": "source:addr",
"count": 12411407
},
{
"key": "footway",
"count": 11543209
},
{
"key": "ref:bag",
"count": 11343897
},
{
"key": "addr:place",
"count": 11140176
},
{
"key": "tiger:reviewed",
"count": 10786509
},
{
"key": "leisure",
"count": 10683374
},
{
"key": "addr:suburb",
"count": 10316819
},
{
"key": "ele",
"count": 10277000
},
{
"key": "tracktype",
"count": 10162446
},
{
"key": "addr:neighbourhood",
"count": 10133392
},
{
"key": "addr:hamlet",
"count": 9972809
},
{
"key": "addr:province",
"count": 9667541
},
{
"key": "leaf_type",
"count": 9558990
},
{
"key": "addr:full",
"count": 9434269
},
{
"key": "addr:TW:dataset",
"count": 9075532
},
{
"key": "place",
"count": 8936497
},
{
"key": "man_made",
"count": 8797198
},
{
"key": "bicycle",
"count": 8713608
},
{
"key": "roof:shape",
"count": 8573805
},
{
"key": "tiger:name_base",
"count": 8202148
},
{
"key": "foot",
"count": 8038433
},
{
"key": "railway",
"count": 7913244
},
{
"key": "source:geometry:date",
"count": 7582317
},
{
"key": "crossing:markings",
"count": 7549311
},
{
"key": "tiger:name_type",
"count": 7128421
},
{
"key": "bridge",
"count": 6955443
},
{
"key": "name:en",
"count": 6938352
},
{
"key": "intermittent",
"count": 6717574
},
{
"key": "shop",
"count": 6689843
},
{
"key": "source:geometry",
"count": 6684317
},
{
"key": "public_transport",
"count": 6010927
},
{
"key": "smoothness",
"count": 5994463
},
{
"key": "leaf_cycle",
"count": 5460911
},
{
"key": "tunnel",
"count": 5416244
},
{
"key": "generator:source",
"count": 5371810
},
{
"key": "generator:method",
"count": 5260428
},
{
"key": "material",
"count": 5236617
},
{
"key": "generator:type",
"count": 5164641
},
{
"key": "tactile_paving",
"count": 5078435
},
{
"key": "water",
"count": 5044316
},
{
"key": "generator:output:electricity",
"count": 5015616
},
{
"key": "addr:city:simc",
"count": 4809200
},
{
"key": "entrance",
"count": 4730489
},
{
"key": "created_by",
"count": 4679471
},
{
"key": "roof:levels",
"count": 4619732
},
{
"key": "bus",
"count": 4597154
},
{
"key": "addr:floor",
"count": 4577753
},
{
"key": "sidewalk",
"count": 4405491
},
{
"key": "attribution",
"count": 4379869
},
{
"key": "nysgissam:nysaddresspointid",
"count": 4351509
},
{
"key": "operator:wikidata",
"count": 4283932
},
{
"key": "direction",
"count": 4277057
},
{
"key": "note",
"count": 4266829
},
{
"key": "addr:conscriptionnumber",
"count": 4212397
},
{
"key": "tiger:zip_left",
"count": 4189091
},
{
"key": "opening_hours",
"count": 4165701
},
{
"key": "website",
"count": 4131842
},
{
"key": "parking",
"count": 4044624
},
{
"key": "ref:bygningsnr",
"count": 3982182
},
{
"key": "addr:unit",
"count": 3942071
},
{
"key": "wikidata",
"count": 3867397
},
{
"key": "tiger:zip_right",
"count": 3839962
},
{
"key": "ref:ruian:building",
"count": 3810878
},
{
"key": "tourism",
"count": 3748468
} }
] ]

View file

@ -1,5 +1,5 @@
{ {
"last_updated": "2025-08-31T11:28:25.264096", "last_updated": "2025-08-31T18:49:59.142433",
"untranslated_pages": [ "untranslated_pages": [
{ {
"title": "FR:2017 Ouragans Irma et Maria", "title": "FR:2017 Ouragans Irma et Maria",
@ -25,6 +25,12 @@
"url": "https://wiki.openstreetmap.org/wiki/FR:Accompagner_les_d%C3%A9butants", "url": "https://wiki.openstreetmap.org/wiki/FR:Accompagner_les_d%C3%A9butants",
"has_translation": false "has_translation": false
}, },
{
"title": "FR:Addr:city:simc",
"key": "Addr:city:simc",
"url": "https://wiki.openstreetmap.org/wiki/FR:Addr:city:simc",
"has_translation": false
},
{ {
"title": "FR:Adresses", "title": "FR:Adresses",
"key": "Adresses", "key": "Adresses",
@ -936,12 +942,6 @@
"key": "France/Map/Terres australes et antarctiques françaises", "key": "France/Map/Terres australes et antarctiques françaises",
"url": "https://wiki.openstreetmap.org/wiki/FR:France/Map/Terres_australes_et_antarctiques_fran%C3%A7aises", "url": "https://wiki.openstreetmap.org/wiki/FR:France/Map/Terres_australes_et_antarctiques_fran%C3%A7aises",
"has_translation": false "has_translation": false
},
{
"title": "FR:France/Map/Wallis-et-Futuna",
"key": "France/Map/Wallis-et-Futuna",
"url": "https://wiki.openstreetmap.org/wiki/FR:France/Map/Wallis-et-Futuna",
"has_translation": false
} }
] ]
} }

View file

@ -46,7 +46,7 @@ WIKI_PAGES_CSV = "wiki_pages.csv"
OUTDATED_PAGES_FILE = "outdated_pages.json" OUTDATED_PAGES_FILE = "outdated_pages.json"
STALENESS_HISTOGRAM_FILE = "staleness_histogram.png" STALENESS_HISTOGRAM_FILE = "staleness_histogram.png"
# Number of wiki pages to examine # Number of wiki pages to examine
NUM_WIKI_PAGES = 100 NUM_WIKI_PAGES = 5
def fetch_top_keys(limit=NUM_WIKI_PAGES): def fetch_top_keys(limit=NUM_WIKI_PAGES):
""" """

View file

@ -9,166 +9,3 @@ addr:housenumber,en,https://wiki.openstreetmap.org/wiki/Key:addr:housenumber,202
addr:housenumber,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:housenumber,2025-08-23,15,1653,150,77,14.01 addr:housenumber,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:housenumber,2025-08-23,15,1653,150,77,14.01
addr:street,en,https://wiki.openstreetmap.org/wiki/Key:addr:street,2024-10-29,12,602,101,16,66.04 addr:street,en,https://wiki.openstreetmap.org/wiki/Key:addr:street,2024-10-29,12,602,101,16,66.04
addr:street,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:street,2025-08-23,15,1653,150,77,66.04 addr:street,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:street,2025-08-23,15,1653,150,77,66.04
addr:city,en,https://wiki.openstreetmap.org/wiki/Key:addr:city,2025-07-29,15,802,105,17,9.93
addr:city,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:city,2025-08-23,15,1653,150,77,9.93
name,en,https://wiki.openstreetmap.org/wiki/Key:name,2025-07-25,17,2196,281,82,42.39
name,fr,https://wiki.openstreetmap.org/wiki/FR:Key:name,2025-01-16,21,1720,187,60,42.39
addr:postcode,en,https://wiki.openstreetmap.org/wiki/Key:addr:postcode,2024-10-29,14,382,83,11,67.11
addr:postcode,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:postcode,2025-08-23,15,1653,150,77,67.11
natural,en,https://wiki.openstreetmap.org/wiki/Key:natural,2025-07-17,17,2070,535,189,22.06
natural,fr,https://wiki.openstreetmap.org/wiki/FR:Key:natural,2025-04-21,13,1499,455,174,22.06
surface,en,https://wiki.openstreetmap.org/wiki/Key:surface,2025-08-28,24,3475,591,238,264.64
surface,fr,https://wiki.openstreetmap.org/wiki/FR:Key:surface,2022-02-22,13,2587,461,232,264.64
addr:country,en,https://wiki.openstreetmap.org/wiki/Key:addr:country,2024-12-01,9,184,65,11,22.96
addr:country,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:country,2025-03-25,8,187,65,11,22.96
landuse,en,https://wiki.openstreetmap.org/wiki/Key:landuse,2025-03-01,17,2071,446,168,39.41
landuse,fr,https://wiki.openstreetmap.org/wiki/FR:Key:landuse,2024-08-20,19,2053,418,182,39.41
power,en,https://wiki.openstreetmap.org/wiki/Key:power,2025-02-28,20,641,127,21,124.89
power,fr,https://wiki.openstreetmap.org/wiki/FR:Key:power,2023-06-27,14,390,105,25,124.89
waterway,en,https://wiki.openstreetmap.org/wiki/Key:waterway,2025-03-10,21,1830,365,118,77.94
waterway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:waterway,2024-03-08,18,1291,272,113,77.94
building:levels,en,https://wiki.openstreetmap.org/wiki/Key:building:levels,2025-08-13,16,1351,204,25,76.11
building:levels,fr,https://wiki.openstreetmap.org/wiki/FR:Key:building:levels,2024-08-01,15,1457,202,26,76.11
amenity,en,https://wiki.openstreetmap.org/wiki/Key:amenity,2025-08-24,29,3066,915,504,160.78
amenity,fr,https://wiki.openstreetmap.org/wiki/FR:Key:amenity,2023-07-19,22,2146,800,487,160.78
barrier,en,https://wiki.openstreetmap.org/wiki/Key:barrier,2025-04-15,17,2137,443,173,207.98
barrier,fr,https://wiki.openstreetmap.org/wiki/FR:Key:barrier,2022-08-16,15,542,103,18,207.98
source:date,en,https://wiki.openstreetmap.org/wiki/Key:source:date,2023-04-01,11,395,75,10,22.47
source:date,fr,https://wiki.openstreetmap.org/wiki/FR:Key:source:date,2023-07-21,10,419,75,11,22.47
service,en,https://wiki.openstreetmap.org/wiki/Key:service,2025-03-16,22,1436,218,17,83.79
service,fr,https://wiki.openstreetmap.org/wiki/FR:Key:service,2024-03-04,11,443,100,10,83.79
addr:state,en,https://wiki.openstreetmap.org/wiki/Key:addr:state,2023-06-23,12,289,74,11,100
access,en,https://wiki.openstreetmap.org/wiki/Key:access,2025-08-06,31,5803,708,98,66.75
access,fr,https://wiki.openstreetmap.org/wiki/FR:Key:access,2024-11-27,33,3200,506,83,66.75
oneway,en,https://wiki.openstreetmap.org/wiki/Key:oneway,2025-07-17,28,2318,290,30,19.4
oneway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:oneway,2025-06-16,14,645,108,14,19.4
height,en,https://wiki.openstreetmap.org/wiki/Key:height,2025-07-21,24,1184,184,20,8.45
height,fr,https://wiki.openstreetmap.org/wiki/FR:Key:height,2025-06-14,21,1285,190,21,8.45
ref,en,https://wiki.openstreetmap.org/wiki/Key:ref,2025-07-25,26,4404,782,115,11.79
ref,fr,https://wiki.openstreetmap.org/wiki/FR:Key:ref,2025-07-30,20,3393,460,12,11.79
maxspeed,en,https://wiki.openstreetmap.org/wiki/Key:maxspeed,2025-08-20,30,4275,404,38,39.24
maxspeed,fr,https://wiki.openstreetmap.org/wiki/FR:Key:maxspeed,2025-05-10,25,1401,156,23,39.24
lanes,en,https://wiki.openstreetmap.org/wiki/Key:lanes,2025-08-21,26,2869,355,48,117.16
lanes,fr,https://wiki.openstreetmap.org/wiki/FR:Key:lanes,2024-03-07,19,1492,167,19,117.16
start_date,en,https://wiki.openstreetmap.org/wiki/Key:start_date,2025-08-01,22,1098,168,29,214.58
start_date,fr,https://wiki.openstreetmap.org/wiki/FR:Key:start_date,2022-08-29,19,1097,133,22,214.58
addr:district,en,https://wiki.openstreetmap.org/wiki/Key:addr:district,2023-11-06,11,244,76,11,139.96
addr:district,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:district,2025-08-23,15,1653,150,77,139.96
layer,en,https://wiki.openstreetmap.org/wiki/Key:layer,2025-01-02,16,1967,181,17,65.95
layer,fr,https://wiki.openstreetmap.org/wiki/FR:Key:layer,2024-02-16,15,2231,162,17,65.95
type,en,https://wiki.openstreetmap.org/wiki/Key:type,2025-05-13,20,911,200,72,334.06
type,fr,https://wiki.openstreetmap.org/wiki/FR:Key:type,2020-11-13,10,444,78,10,334.06
operator,en,https://wiki.openstreetmap.org/wiki/Key:operator,2025-08-26,24,1908,241,37,223.28
operator,fr,https://wiki.openstreetmap.org/wiki/FR:Key:operator,2022-09-30,15,418,89,11,223.28
lit,en,https://wiki.openstreetmap.org/wiki/Key:lit,2024-07-20,17,931,174,52,38.88
lit,fr,https://wiki.openstreetmap.org/wiki/FR:Key:lit,2025-01-19,17,628,123,14,38.88
wall,en,https://wiki.openstreetmap.org/wiki/Key:wall,2024-05-02,14,715,206,55,100
tiger:cfcc,en,https://wiki.openstreetmap.org/wiki/Key:tiger:cfcc,2022-12-09,10,127,24,7,100
crossing,en,https://wiki.openstreetmap.org/wiki/Key:crossing,2024-02-18,25,2678,363,34,76.98
crossing,fr,https://wiki.openstreetmap.org/wiki/FR:Key:crossing,2025-01-20,15,1390,254,28,76.98
tiger:county,en,https://wiki.openstreetmap.org/wiki/Key:tiger:county,2022-12-09,10,127,24,7,100
source:addr,en,https://wiki.openstreetmap.org/wiki/Key:source:addr,2023-07-05,9,200,70,10,100
footway,en,https://wiki.openstreetmap.org/wiki/Key:footway,2025-08-20,23,2002,369,39,99.66
footway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:footway,2024-06-04,14,685,147,28,99.66
ref:bag,en,https://wiki.openstreetmap.org/wiki/Key:ref:bag,2024-10-09,10,254,69,11,100
addr:place,en,https://wiki.openstreetmap.org/wiki/Key:addr:place,2025-03-28,16,1204,154,13,136.57
addr:place,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:place,2023-06-17,11,276,75,12,136.57
tiger:reviewed,en,https://wiki.openstreetmap.org/wiki/Key:tiger:reviewed,2025-08-01,16,734,105,11,100
leisure,en,https://wiki.openstreetmap.org/wiki/Key:leisure,2025-02-28,12,1084,374,180,232.43
leisure,fr,https://wiki.openstreetmap.org/wiki/FR:Key:leisure,2021-12-29,11,951,360,186,232.43
addr:suburb,en,https://wiki.openstreetmap.org/wiki/Key:addr:suburb,2024-02-24,14,439,89,11,1.49
addr:suburb,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:suburb,2024-02-18,13,418,87,11,1.49
ele,en,https://wiki.openstreetmap.org/wiki/Key:ele,2025-07-18,18,1846,165,24,104.45
ele,fr,https://wiki.openstreetmap.org/wiki/FR:Key:ele,2024-03-02,15,1277,128,13,104.45
tracktype,en,https://wiki.openstreetmap.org/wiki/Key:tracktype,2024-12-02,16,652,146,35,32.71
tracktype,fr,https://wiki.openstreetmap.org/wiki/FR:Key:tracktype,2025-05-03,11,463,105,29,32.71
addr:neighbourhood,en,https://wiki.openstreetmap.org/wiki/Key:addr:neighbourhood,2025-04-29,24,2020,235,83,100
addr:hamlet,en,https://wiki.openstreetmap.org/wiki/Key:addr:hamlet,2024-12-05,9,142,64,11,100
addr:province,en,https://wiki.openstreetmap.org/wiki/Key:addr:province,2022-05-04,9,156,64,11,100
leaf_type,en,https://wiki.openstreetmap.org/wiki/Key:leaf_type,2025-01-22,15,739,201,57,114.46
leaf_type,fr,https://wiki.openstreetmap.org/wiki/FR:Key:leaf_type,2023-07-02,14,734,220,64,114.46
addr:full,en,https://wiki.openstreetmap.org/wiki/Key:addr:full,2025-04-29,24,2020,235,83,100
addr:TW:dataset,en,https://wiki.openstreetmap.org/wiki/Key:addr:TW:dataset,2023-06-23,9,128,63,9,100
place,en,https://wiki.openstreetmap.org/wiki/Key:place,2025-02-28,23,1342,150,12,128.24
place,fr,https://wiki.openstreetmap.org/wiki/FR:Key:place,2023-06-29,18,1650,413,201,128.24
man_made,en,https://wiki.openstreetmap.org/wiki/Key:man_made,2025-02-28,14,1789,631,323,16.11
man_made,fr,https://wiki.openstreetmap.org/wiki/FR:Key:man_made,2025-05-13,10,1873,612,322,16.11
bicycle,en,https://wiki.openstreetmap.org/wiki/Key:bicycle,2025-08-30,14,903,247,36,338.06
bicycle,fr,https://wiki.openstreetmap.org/wiki/FR:Key:bicycle,2021-02-17,9,172,70,11,338.06
roof:shape,en,https://wiki.openstreetmap.org/wiki/Key:roof:shape,2025-08-20,24,1554,260,44,2.0
roof:shape,fr,https://wiki.openstreetmap.org/wiki/FR:Key:roof:shape,2025-08-20,18,1685,230,43,2.0
tiger:name_base,en,https://wiki.openstreetmap.org/wiki/Key:tiger:name_base,2021-12-03,26,3319,53,1,100
foot,en,https://wiki.openstreetmap.org/wiki/Key:foot,2025-05-11,12,305,93,16,88.8
foot,fr,https://wiki.openstreetmap.org/wiki/FR:Key:foot,2024-03-02,8,143,67,11,88.8
railway,en,https://wiki.openstreetmap.org/wiki/Key:railway,2025-02-28,16,1481,331,154,72.73
railway,fr,https://wiki.openstreetmap.org/wiki/FR:Key:railway,2024-03-08,15,1308,310,156,72.73
source:geometry:date,en,https://wiki.openstreetmap.org/wiki/Key:source:geometry:date,2024-04-07,10,389,88,10,100
crossing:markings,en,https://wiki.openstreetmap.org/wiki/Key:crossing:markings,2025-06-21,22,1471,301,64,43.84
crossing:markings,fr,https://wiki.openstreetmap.org/wiki/FR:Key:crossing:markings,2024-12-08,16,964,207,46,43.84
tiger:name_type,en,https://wiki.openstreetmap.org/wiki/Key:tiger:name_type,2021-12-03,26,3319,53,1,100
bridge,en,https://wiki.openstreetmap.org/wiki/Key:bridge,2025-03-16,30,3123,342,68,86.93
bridge,fr,https://wiki.openstreetmap.org/wiki/FR:Key:bridge,2024-03-07,19,1366,229,56,86.93
name:en,en,https://wiki.openstreetmap.org/wiki/Key:name:en,2025-03-15,12,325,100,16,100
intermittent,en,https://wiki.openstreetmap.org/wiki/Key:intermittent,2025-05-07,17,913,168,27,90.94
intermittent,fr,https://wiki.openstreetmap.org/wiki/FR:Key:intermittent,2024-02-18,16,644,125,18,90.94
shop,en,https://wiki.openstreetmap.org/wiki/Key:shop,2025-03-22,31,3638,816,392,124.2
shop,fr,https://wiki.openstreetmap.org/wiki/FR:Key:shop,2023-07-25,33,3285,754,382,124.2
source:geometry,en,https://wiki.openstreetmap.org/wiki/Key:source:geometry,2024-04-07,10,389,88,10,100
public_transport,en,https://wiki.openstreetmap.org/wiki/Key:public_transport,2025-02-28,16,383,105,20,28.5
public_transport,fr,https://wiki.openstreetmap.org/wiki/FR:Key:public_transport,2025-03-22,24,3688,530,103,28.5
smoothness,en,https://wiki.openstreetmap.org/wiki/Key:smoothness,2025-08-05,16,1581,167,38,85.94
smoothness,fr,https://wiki.openstreetmap.org/wiki/FR:Key:smoothness,2024-06-11,15,1260,155,39,85.94
leaf_cycle,en,https://wiki.openstreetmap.org/wiki/Key:leaf_cycle,2024-09-28,14,499,144,21,10.48
leaf_cycle,fr,https://wiki.openstreetmap.org/wiki/FR:Key:leaf_cycle,2024-11-14,13,619,166,29,10.48
tunnel,en,https://wiki.openstreetmap.org/wiki/Key:tunnel,2025-06-16,15,1057,149,19,29.57
tunnel,fr,https://wiki.openstreetmap.org/wiki/FR:Key:tunnel,2025-01-24,16,921,140,16,29.57
generator:source,en,https://wiki.openstreetmap.org/wiki/Key:generator:source,2025-04-21,11,533,123,29,0.24
generator:source,fr,https://wiki.openstreetmap.org/wiki/FR:Key:generator:source,2025-04-21,11,534,139,29,0.24
generator:method,en,https://wiki.openstreetmap.org/wiki/Key:generator:method,2023-11-26,11,482,151,39,33.48
generator:method,fr,https://wiki.openstreetmap.org/wiki/FR:Key:generator:method,2023-06-19,9,396,101,13,33.48
material,en,https://wiki.openstreetmap.org/wiki/Key:material,2025-05-01,12,883,332,114,132.61
material,fr,https://wiki.openstreetmap.org/wiki/FR:Key:material,2023-07-20,9,647,280,115,132.61
generator:type,en,https://wiki.openstreetmap.org/wiki/Key:generator:type,2023-11-21,10,1338,330,29,100
tactile_paving,en,https://wiki.openstreetmap.org/wiki/Key:tactile_paving,2025-08-10,22,2054,298,44,156.14
tactile_paving,fr,https://wiki.openstreetmap.org/wiki/FR:Key:tactile_paving,2023-07-23,19,1277,164,47,156.14
water,en,https://wiki.openstreetmap.org/wiki/Key:water,2024-10-13,16,1261,261,38,15.41
water,fr,https://wiki.openstreetmap.org/wiki/FR:Key:water,2024-12-18,17,1516,313,61,15.41
generator:output:electricity,en,https://wiki.openstreetmap.org/wiki/Key:generator:output:electricity,2024-01-01,10,296,40,9,124.37
generator:output:electricity,fr,https://wiki.openstreetmap.org/wiki/FR:Key:generator:output:electricity,2022-04-25,9,371,83,10,124.37
addr:city:simc,en,https://wiki.openstreetmap.org/wiki/Key:addr:city:simc,2022-04-15,9,200,66,10,100
entrance,en,https://wiki.openstreetmap.org/wiki/Key:entrance,2025-08-30,19,1422,255,51,158.12
entrance,fr,https://wiki.openstreetmap.org/wiki/FR:Key:entrance,2023-07-25,16,834,166,37,158.12
created_by,en,https://wiki.openstreetmap.org/wiki/Key:created_by,2025-08-06,18,1225,355,16,100
roof:levels,en,https://wiki.openstreetmap.org/wiki/Key:roof:levels,2025-05-07,12,654,140,18,6.72
roof:levels,fr,https://wiki.openstreetmap.org/wiki/FR:Key:roof:levels,2025-04-05,11,642,133,18,6.72
bus,en,https://wiki.openstreetmap.org/wiki/Key:bus,2024-09-29,16,885,149,12,238.72
bus,fr,https://wiki.openstreetmap.org/wiki/FR:Key:bus,2021-07-21,9,219,73,11,238.72
addr:floor,en,https://wiki.openstreetmap.org/wiki/Key:addr:floor,2024-09-02,12,458,82,11,78.44
addr:floor,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:floor,2025-08-23,15,1653,150,77,78.44
sidewalk,en,https://wiki.openstreetmap.org/wiki/Key:sidewalk,2025-08-26,23,2248,393,39,32.48
sidewalk,fr,https://wiki.openstreetmap.org/wiki/FR:Key:sidewalk,2025-05-01,16,1177,215,16,32.48
attribution,en,https://wiki.openstreetmap.org/wiki/Key:attribution,2024-09-14,14,372,98,17,100
nysgissam:nysaddresspointid,en,https://wiki.openstreetmap.org/wiki/Key:nysgissam:nysaddresspointid,2022-09-14,39,3047,115,5,100
operator:wikidata,en,https://wiki.openstreetmap.org/wiki/Key:operator:wikidata,2024-08-10,14,347,97,11,109.59
operator:wikidata,fr,https://wiki.openstreetmap.org/wiki/FR:Key:operator:wikidata,2023-02-13,11,309,87,11,109.59
direction,en,https://wiki.openstreetmap.org/wiki/Key:direction,2025-08-30,17,1515,169,34,114.26
direction,fr,https://wiki.openstreetmap.org/wiki/FR:Key:direction,2024-02-23,23,1114,132,26,114.26
note,en,https://wiki.openstreetmap.org/wiki/Key:note,2025-05-20,11,416,85,12,338.94
note,fr,https://wiki.openstreetmap.org/wiki/FR:Key:note,2020-10-01,10,347,82,13,338.94
addr:conscriptionnumber,en,https://wiki.openstreetmap.org/wiki/Key:addr:conscriptionnumber,2022-03-14,13,607,95,15,100
tiger:zip_left,en,https://wiki.openstreetmap.org/wiki/Key:tiger:zip_left,2021-12-03,26,3319,53,1,100
opening_hours,en,https://wiki.openstreetmap.org/wiki/Key:opening_hours,2025-08-16,49,5565,353,25,13.51
opening_hours,fr,https://wiki.openstreetmap.org/wiki/FR:Key:opening_hours,2025-08-18,35,3748,225,17,13.51
website,en,https://wiki.openstreetmap.org/wiki/Key:website,2025-01-26,22,1098,188,31,154.75
website,fr,https://wiki.openstreetmap.org/wiki/FR:Key:website,2023-01-04,14,672,133,25,154.75
parking,en,https://wiki.openstreetmap.org/wiki/Key:parking,2025-07-06,14,922,190,32,2.25
parking,fr,https://wiki.openstreetmap.org/wiki/FR:Key:parking,2025-07-06,11,660,157,37,2.25
ref:bygningsnr,en,https://wiki.openstreetmap.org/wiki/Key:ref:bygningsnr,2023-06-27,10,179,69,10,100
addr:unit,en,https://wiki.openstreetmap.org/wiki/Key:addr:unit,2025-08-13,9,174,71,12,11.48
addr:unit,fr,https://wiki.openstreetmap.org/wiki/FR:Key:addr:unit,2025-08-23,15,1653,150,77,11.48
wikidata,en,https://wiki.openstreetmap.org/wiki/Key:wikidata,2025-05-31,24,1616,239,49,345.95
wikidata,fr,https://wiki.openstreetmap.org/wiki/FR:Key:wikidata,2020-10-01,19,997,139,20,345.95
tiger:zip_right,en,https://wiki.openstreetmap.org/wiki/Key:tiger:zip_right,2021-12-03,26,3319,53,1,100
ref:ruian:building,en,https://wiki.openstreetmap.org/wiki/Key:ref:ruian:building,2022-09-01,9,203,71,11,100
tourism,en,https://wiki.openstreetmap.org/wiki/Key:tourism,2025-02-28,11,1032,227,116,401.64
tourism,fr,https://wiki.openstreetmap.org/wiki/FR:Key:tourism,2019-09-14,13,581,208,103,401.64

1 key language url last_modified sections word_count link_count media_count staleness_score
9 addr:housenumber fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:housenumber 2025-08-23 15 1653 150 77 14.01
10 addr:street en https://wiki.openstreetmap.org/wiki/Key:addr:street 2024-10-29 12 602 101 16 66.04
11 addr:street fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:street 2025-08-23 15 1653 150 77 66.04
addr:city en https://wiki.openstreetmap.org/wiki/Key:addr:city 2025-07-29 15 802 105 17 9.93
addr:city fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:city 2025-08-23 15 1653 150 77 9.93
name en https://wiki.openstreetmap.org/wiki/Key:name 2025-07-25 17 2196 281 82 42.39
name fr https://wiki.openstreetmap.org/wiki/FR:Key:name 2025-01-16 21 1720 187 60 42.39
addr:postcode en https://wiki.openstreetmap.org/wiki/Key:addr:postcode 2024-10-29 14 382 83 11 67.11
addr:postcode fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:postcode 2025-08-23 15 1653 150 77 67.11
natural en https://wiki.openstreetmap.org/wiki/Key:natural 2025-07-17 17 2070 535 189 22.06
natural fr https://wiki.openstreetmap.org/wiki/FR:Key:natural 2025-04-21 13 1499 455 174 22.06
surface en https://wiki.openstreetmap.org/wiki/Key:surface 2025-08-28 24 3475 591 238 264.64
surface fr https://wiki.openstreetmap.org/wiki/FR:Key:surface 2022-02-22 13 2587 461 232 264.64
addr:country en https://wiki.openstreetmap.org/wiki/Key:addr:country 2024-12-01 9 184 65 11 22.96
addr:country fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:country 2025-03-25 8 187 65 11 22.96
landuse en https://wiki.openstreetmap.org/wiki/Key:landuse 2025-03-01 17 2071 446 168 39.41
landuse fr https://wiki.openstreetmap.org/wiki/FR:Key:landuse 2024-08-20 19 2053 418 182 39.41
power en https://wiki.openstreetmap.org/wiki/Key:power 2025-02-28 20 641 127 21 124.89
power fr https://wiki.openstreetmap.org/wiki/FR:Key:power 2023-06-27 14 390 105 25 124.89
waterway en https://wiki.openstreetmap.org/wiki/Key:waterway 2025-03-10 21 1830 365 118 77.94
waterway fr https://wiki.openstreetmap.org/wiki/FR:Key:waterway 2024-03-08 18 1291 272 113 77.94
building:levels en https://wiki.openstreetmap.org/wiki/Key:building:levels 2025-08-13 16 1351 204 25 76.11
building:levels fr https://wiki.openstreetmap.org/wiki/FR:Key:building:levels 2024-08-01 15 1457 202 26 76.11
amenity en https://wiki.openstreetmap.org/wiki/Key:amenity 2025-08-24 29 3066 915 504 160.78
amenity fr https://wiki.openstreetmap.org/wiki/FR:Key:amenity 2023-07-19 22 2146 800 487 160.78
barrier en https://wiki.openstreetmap.org/wiki/Key:barrier 2025-04-15 17 2137 443 173 207.98
barrier fr https://wiki.openstreetmap.org/wiki/FR:Key:barrier 2022-08-16 15 542 103 18 207.98
source:date en https://wiki.openstreetmap.org/wiki/Key:source:date 2023-04-01 11 395 75 10 22.47
source:date fr https://wiki.openstreetmap.org/wiki/FR:Key:source:date 2023-07-21 10 419 75 11 22.47
service en https://wiki.openstreetmap.org/wiki/Key:service 2025-03-16 22 1436 218 17 83.79
service fr https://wiki.openstreetmap.org/wiki/FR:Key:service 2024-03-04 11 443 100 10 83.79
addr:state en https://wiki.openstreetmap.org/wiki/Key:addr:state 2023-06-23 12 289 74 11 100
access en https://wiki.openstreetmap.org/wiki/Key:access 2025-08-06 31 5803 708 98 66.75
access fr https://wiki.openstreetmap.org/wiki/FR:Key:access 2024-11-27 33 3200 506 83 66.75
oneway en https://wiki.openstreetmap.org/wiki/Key:oneway 2025-07-17 28 2318 290 30 19.4
oneway fr https://wiki.openstreetmap.org/wiki/FR:Key:oneway 2025-06-16 14 645 108 14 19.4
height en https://wiki.openstreetmap.org/wiki/Key:height 2025-07-21 24 1184 184 20 8.45
height fr https://wiki.openstreetmap.org/wiki/FR:Key:height 2025-06-14 21 1285 190 21 8.45
ref en https://wiki.openstreetmap.org/wiki/Key:ref 2025-07-25 26 4404 782 115 11.79
ref fr https://wiki.openstreetmap.org/wiki/FR:Key:ref 2025-07-30 20 3393 460 12 11.79
maxspeed en https://wiki.openstreetmap.org/wiki/Key:maxspeed 2025-08-20 30 4275 404 38 39.24
maxspeed fr https://wiki.openstreetmap.org/wiki/FR:Key:maxspeed 2025-05-10 25 1401 156 23 39.24
lanes en https://wiki.openstreetmap.org/wiki/Key:lanes 2025-08-21 26 2869 355 48 117.16
lanes fr https://wiki.openstreetmap.org/wiki/FR:Key:lanes 2024-03-07 19 1492 167 19 117.16
start_date en https://wiki.openstreetmap.org/wiki/Key:start_date 2025-08-01 22 1098 168 29 214.58
start_date fr https://wiki.openstreetmap.org/wiki/FR:Key:start_date 2022-08-29 19 1097 133 22 214.58
addr:district en https://wiki.openstreetmap.org/wiki/Key:addr:district 2023-11-06 11 244 76 11 139.96
addr:district fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:district 2025-08-23 15 1653 150 77 139.96
layer en https://wiki.openstreetmap.org/wiki/Key:layer 2025-01-02 16 1967 181 17 65.95
layer fr https://wiki.openstreetmap.org/wiki/FR:Key:layer 2024-02-16 15 2231 162 17 65.95
type en https://wiki.openstreetmap.org/wiki/Key:type 2025-05-13 20 911 200 72 334.06
type fr https://wiki.openstreetmap.org/wiki/FR:Key:type 2020-11-13 10 444 78 10 334.06
operator en https://wiki.openstreetmap.org/wiki/Key:operator 2025-08-26 24 1908 241 37 223.28
operator fr https://wiki.openstreetmap.org/wiki/FR:Key:operator 2022-09-30 15 418 89 11 223.28
lit en https://wiki.openstreetmap.org/wiki/Key:lit 2024-07-20 17 931 174 52 38.88
lit fr https://wiki.openstreetmap.org/wiki/FR:Key:lit 2025-01-19 17 628 123 14 38.88
wall en https://wiki.openstreetmap.org/wiki/Key:wall 2024-05-02 14 715 206 55 100
tiger:cfcc en https://wiki.openstreetmap.org/wiki/Key:tiger:cfcc 2022-12-09 10 127 24 7 100
crossing en https://wiki.openstreetmap.org/wiki/Key:crossing 2024-02-18 25 2678 363 34 76.98
crossing fr https://wiki.openstreetmap.org/wiki/FR:Key:crossing 2025-01-20 15 1390 254 28 76.98
tiger:county en https://wiki.openstreetmap.org/wiki/Key:tiger:county 2022-12-09 10 127 24 7 100
source:addr en https://wiki.openstreetmap.org/wiki/Key:source:addr 2023-07-05 9 200 70 10 100
footway en https://wiki.openstreetmap.org/wiki/Key:footway 2025-08-20 23 2002 369 39 99.66
footway fr https://wiki.openstreetmap.org/wiki/FR:Key:footway 2024-06-04 14 685 147 28 99.66
ref:bag en https://wiki.openstreetmap.org/wiki/Key:ref:bag 2024-10-09 10 254 69 11 100
addr:place en https://wiki.openstreetmap.org/wiki/Key:addr:place 2025-03-28 16 1204 154 13 136.57
addr:place fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:place 2023-06-17 11 276 75 12 136.57
tiger:reviewed en https://wiki.openstreetmap.org/wiki/Key:tiger:reviewed 2025-08-01 16 734 105 11 100
leisure en https://wiki.openstreetmap.org/wiki/Key:leisure 2025-02-28 12 1084 374 180 232.43
leisure fr https://wiki.openstreetmap.org/wiki/FR:Key:leisure 2021-12-29 11 951 360 186 232.43
addr:suburb en https://wiki.openstreetmap.org/wiki/Key:addr:suburb 2024-02-24 14 439 89 11 1.49
addr:suburb fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:suburb 2024-02-18 13 418 87 11 1.49
ele en https://wiki.openstreetmap.org/wiki/Key:ele 2025-07-18 18 1846 165 24 104.45
ele fr https://wiki.openstreetmap.org/wiki/FR:Key:ele 2024-03-02 15 1277 128 13 104.45
tracktype en https://wiki.openstreetmap.org/wiki/Key:tracktype 2024-12-02 16 652 146 35 32.71
tracktype fr https://wiki.openstreetmap.org/wiki/FR:Key:tracktype 2025-05-03 11 463 105 29 32.71
addr:neighbourhood en https://wiki.openstreetmap.org/wiki/Key:addr:neighbourhood 2025-04-29 24 2020 235 83 100
addr:hamlet en https://wiki.openstreetmap.org/wiki/Key:addr:hamlet 2024-12-05 9 142 64 11 100
addr:province en https://wiki.openstreetmap.org/wiki/Key:addr:province 2022-05-04 9 156 64 11 100
leaf_type en https://wiki.openstreetmap.org/wiki/Key:leaf_type 2025-01-22 15 739 201 57 114.46
leaf_type fr https://wiki.openstreetmap.org/wiki/FR:Key:leaf_type 2023-07-02 14 734 220 64 114.46
addr:full en https://wiki.openstreetmap.org/wiki/Key:addr:full 2025-04-29 24 2020 235 83 100
addr:TW:dataset en https://wiki.openstreetmap.org/wiki/Key:addr:TW:dataset 2023-06-23 9 128 63 9 100
place en https://wiki.openstreetmap.org/wiki/Key:place 2025-02-28 23 1342 150 12 128.24
place fr https://wiki.openstreetmap.org/wiki/FR:Key:place 2023-06-29 18 1650 413 201 128.24
man_made en https://wiki.openstreetmap.org/wiki/Key:man_made 2025-02-28 14 1789 631 323 16.11
man_made fr https://wiki.openstreetmap.org/wiki/FR:Key:man_made 2025-05-13 10 1873 612 322 16.11
bicycle en https://wiki.openstreetmap.org/wiki/Key:bicycle 2025-08-30 14 903 247 36 338.06
bicycle fr https://wiki.openstreetmap.org/wiki/FR:Key:bicycle 2021-02-17 9 172 70 11 338.06
roof:shape en https://wiki.openstreetmap.org/wiki/Key:roof:shape 2025-08-20 24 1554 260 44 2.0
roof:shape fr https://wiki.openstreetmap.org/wiki/FR:Key:roof:shape 2025-08-20 18 1685 230 43 2.0
tiger:name_base en https://wiki.openstreetmap.org/wiki/Key:tiger:name_base 2021-12-03 26 3319 53 1 100
foot en https://wiki.openstreetmap.org/wiki/Key:foot 2025-05-11 12 305 93 16 88.8
foot fr https://wiki.openstreetmap.org/wiki/FR:Key:foot 2024-03-02 8 143 67 11 88.8
railway en https://wiki.openstreetmap.org/wiki/Key:railway 2025-02-28 16 1481 331 154 72.73
railway fr https://wiki.openstreetmap.org/wiki/FR:Key:railway 2024-03-08 15 1308 310 156 72.73
source:geometry:date en https://wiki.openstreetmap.org/wiki/Key:source:geometry:date 2024-04-07 10 389 88 10 100
crossing:markings en https://wiki.openstreetmap.org/wiki/Key:crossing:markings 2025-06-21 22 1471 301 64 43.84
crossing:markings fr https://wiki.openstreetmap.org/wiki/FR:Key:crossing:markings 2024-12-08 16 964 207 46 43.84
tiger:name_type en https://wiki.openstreetmap.org/wiki/Key:tiger:name_type 2021-12-03 26 3319 53 1 100
bridge en https://wiki.openstreetmap.org/wiki/Key:bridge 2025-03-16 30 3123 342 68 86.93
bridge fr https://wiki.openstreetmap.org/wiki/FR:Key:bridge 2024-03-07 19 1366 229 56 86.93
name:en en https://wiki.openstreetmap.org/wiki/Key:name:en 2025-03-15 12 325 100 16 100
intermittent en https://wiki.openstreetmap.org/wiki/Key:intermittent 2025-05-07 17 913 168 27 90.94
intermittent fr https://wiki.openstreetmap.org/wiki/FR:Key:intermittent 2024-02-18 16 644 125 18 90.94
shop en https://wiki.openstreetmap.org/wiki/Key:shop 2025-03-22 31 3638 816 392 124.2
shop fr https://wiki.openstreetmap.org/wiki/FR:Key:shop 2023-07-25 33 3285 754 382 124.2
source:geometry en https://wiki.openstreetmap.org/wiki/Key:source:geometry 2024-04-07 10 389 88 10 100
public_transport en https://wiki.openstreetmap.org/wiki/Key:public_transport 2025-02-28 16 383 105 20 28.5
public_transport fr https://wiki.openstreetmap.org/wiki/FR:Key:public_transport 2025-03-22 24 3688 530 103 28.5
smoothness en https://wiki.openstreetmap.org/wiki/Key:smoothness 2025-08-05 16 1581 167 38 85.94
smoothness fr https://wiki.openstreetmap.org/wiki/FR:Key:smoothness 2024-06-11 15 1260 155 39 85.94
leaf_cycle en https://wiki.openstreetmap.org/wiki/Key:leaf_cycle 2024-09-28 14 499 144 21 10.48
leaf_cycle fr https://wiki.openstreetmap.org/wiki/FR:Key:leaf_cycle 2024-11-14 13 619 166 29 10.48
tunnel en https://wiki.openstreetmap.org/wiki/Key:tunnel 2025-06-16 15 1057 149 19 29.57
tunnel fr https://wiki.openstreetmap.org/wiki/FR:Key:tunnel 2025-01-24 16 921 140 16 29.57
generator:source en https://wiki.openstreetmap.org/wiki/Key:generator:source 2025-04-21 11 533 123 29 0.24
generator:source fr https://wiki.openstreetmap.org/wiki/FR:Key:generator:source 2025-04-21 11 534 139 29 0.24
generator:method en https://wiki.openstreetmap.org/wiki/Key:generator:method 2023-11-26 11 482 151 39 33.48
generator:method fr https://wiki.openstreetmap.org/wiki/FR:Key:generator:method 2023-06-19 9 396 101 13 33.48
material en https://wiki.openstreetmap.org/wiki/Key:material 2025-05-01 12 883 332 114 132.61
material fr https://wiki.openstreetmap.org/wiki/FR:Key:material 2023-07-20 9 647 280 115 132.61
generator:type en https://wiki.openstreetmap.org/wiki/Key:generator:type 2023-11-21 10 1338 330 29 100
tactile_paving en https://wiki.openstreetmap.org/wiki/Key:tactile_paving 2025-08-10 22 2054 298 44 156.14
tactile_paving fr https://wiki.openstreetmap.org/wiki/FR:Key:tactile_paving 2023-07-23 19 1277 164 47 156.14
water en https://wiki.openstreetmap.org/wiki/Key:water 2024-10-13 16 1261 261 38 15.41
water fr https://wiki.openstreetmap.org/wiki/FR:Key:water 2024-12-18 17 1516 313 61 15.41
generator:output:electricity en https://wiki.openstreetmap.org/wiki/Key:generator:output:electricity 2024-01-01 10 296 40 9 124.37
generator:output:electricity fr https://wiki.openstreetmap.org/wiki/FR:Key:generator:output:electricity 2022-04-25 9 371 83 10 124.37
addr:city:simc en https://wiki.openstreetmap.org/wiki/Key:addr:city:simc 2022-04-15 9 200 66 10 100
entrance en https://wiki.openstreetmap.org/wiki/Key:entrance 2025-08-30 19 1422 255 51 158.12
entrance fr https://wiki.openstreetmap.org/wiki/FR:Key:entrance 2023-07-25 16 834 166 37 158.12
created_by en https://wiki.openstreetmap.org/wiki/Key:created_by 2025-08-06 18 1225 355 16 100
roof:levels en https://wiki.openstreetmap.org/wiki/Key:roof:levels 2025-05-07 12 654 140 18 6.72
roof:levels fr https://wiki.openstreetmap.org/wiki/FR:Key:roof:levels 2025-04-05 11 642 133 18 6.72
bus en https://wiki.openstreetmap.org/wiki/Key:bus 2024-09-29 16 885 149 12 238.72
bus fr https://wiki.openstreetmap.org/wiki/FR:Key:bus 2021-07-21 9 219 73 11 238.72
addr:floor en https://wiki.openstreetmap.org/wiki/Key:addr:floor 2024-09-02 12 458 82 11 78.44
addr:floor fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:floor 2025-08-23 15 1653 150 77 78.44
sidewalk en https://wiki.openstreetmap.org/wiki/Key:sidewalk 2025-08-26 23 2248 393 39 32.48
sidewalk fr https://wiki.openstreetmap.org/wiki/FR:Key:sidewalk 2025-05-01 16 1177 215 16 32.48
attribution en https://wiki.openstreetmap.org/wiki/Key:attribution 2024-09-14 14 372 98 17 100
nysgissam:nysaddresspointid en https://wiki.openstreetmap.org/wiki/Key:nysgissam:nysaddresspointid 2022-09-14 39 3047 115 5 100
operator:wikidata en https://wiki.openstreetmap.org/wiki/Key:operator:wikidata 2024-08-10 14 347 97 11 109.59
operator:wikidata fr https://wiki.openstreetmap.org/wiki/FR:Key:operator:wikidata 2023-02-13 11 309 87 11 109.59
direction en https://wiki.openstreetmap.org/wiki/Key:direction 2025-08-30 17 1515 169 34 114.26
direction fr https://wiki.openstreetmap.org/wiki/FR:Key:direction 2024-02-23 23 1114 132 26 114.26
note en https://wiki.openstreetmap.org/wiki/Key:note 2025-05-20 11 416 85 12 338.94
note fr https://wiki.openstreetmap.org/wiki/FR:Key:note 2020-10-01 10 347 82 13 338.94
addr:conscriptionnumber en https://wiki.openstreetmap.org/wiki/Key:addr:conscriptionnumber 2022-03-14 13 607 95 15 100
tiger:zip_left en https://wiki.openstreetmap.org/wiki/Key:tiger:zip_left 2021-12-03 26 3319 53 1 100
opening_hours en https://wiki.openstreetmap.org/wiki/Key:opening_hours 2025-08-16 49 5565 353 25 13.51
opening_hours fr https://wiki.openstreetmap.org/wiki/FR:Key:opening_hours 2025-08-18 35 3748 225 17 13.51
website en https://wiki.openstreetmap.org/wiki/Key:website 2025-01-26 22 1098 188 31 154.75
website fr https://wiki.openstreetmap.org/wiki/FR:Key:website 2023-01-04 14 672 133 25 154.75
parking en https://wiki.openstreetmap.org/wiki/Key:parking 2025-07-06 14 922 190 32 2.25
parking fr https://wiki.openstreetmap.org/wiki/FR:Key:parking 2025-07-06 11 660 157 37 2.25
ref:bygningsnr en https://wiki.openstreetmap.org/wiki/Key:ref:bygningsnr 2023-06-27 10 179 69 10 100
addr:unit en https://wiki.openstreetmap.org/wiki/Key:addr:unit 2025-08-13 9 174 71 12 11.48
addr:unit fr https://wiki.openstreetmap.org/wiki/FR:Key:addr:unit 2025-08-23 15 1653 150 77 11.48
wikidata en https://wiki.openstreetmap.org/wiki/Key:wikidata 2025-05-31 24 1616 239 49 345.95
wikidata fr https://wiki.openstreetmap.org/wiki/FR:Key:wikidata 2020-10-01 19 997 139 20 345.95
tiger:zip_right en https://wiki.openstreetmap.org/wiki/Key:tiger:zip_right 2021-12-03 26 3319 53 1 100
ref:ruian:building en https://wiki.openstreetmap.org/wiki/Key:ref:ruian:building 2022-09-01 9 203 71 11 100
tourism en https://wiki.openstreetmap.org/wiki/Key:tourism 2025-02-28 11 1032 227 116 401.64
tourism fr https://wiki.openstreetmap.org/wiki/FR:Key:tourism 2019-09-14 13 581 208 103 401.64