From 4235db02f2d0591810107b9463a5430509a19409 Mon Sep 17 00:00:00 2001 From: tcr-n Date: Wed, 10 Dec 2025 00:34:23 +0100 Subject: [PATCH 1/7] correction infos trafic --- logo/fr-astuce/trafic.json | 202 ++++++++++++++++++------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/logo/fr-astuce/trafic.json b/logo/fr-astuce/trafic.json index 09b93cc..0597202 100644 --- a/logo/fr-astuce/trafic.json +++ b/logo/fr-astuce/trafic.json @@ -8,7 +8,7 @@ "transportLogo": "assets/icons/transportMode/metro_white.png" }, { - "lineId": "TCAR:90", + "lineId": "90", "lineName": "Métro", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/metro/M.png" } @@ -18,7 +18,7 @@ "transportLogo": "assets/icons/transportMode/ferry_white.png" }, { - "lineId": "TCAR:99", + "lineId": "99", "lineName": "Navette fluviale Calypso", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/ferry/Calypso.png" } @@ -28,27 +28,27 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TCAR:91", + "lineId": "91", "lineName": "TEOR T1", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T1.png" }, { - "lineId": "TCAR:92", + "lineId": "92", "lineName": "TEOR T2", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T2.png" }, { - "lineId": "TCAR:93", + "lineId": "93", "lineName": "TEOR T3", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T3.png" }, { - "lineId": "TCAR:94", + "lineId": "94", "lineName": "TEOR T4", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T4.png" }, { - "lineId": "TCAR:95", + "lineId": "95", "lineName": "TEOR T5", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T5.png" } @@ -58,47 +58,47 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TCAR:01", + "lineId": "01", "lineName": "FAST 1", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F1.png" }, { - "lineId": "TCAR:02", + "lineId": "02", "lineName": "FAST 2", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F2.png" }, { - "lineId": "TCAR:03", + "lineId": "03", "lineName": "FAST 3", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F3.png" }, { - "lineId": "TCAR:04", + "lineId": "04", "lineName": "FAST 4", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F4.png" }, { - "lineId": "TCAR:05", + "lineId": "05", "lineName": "FAST 5", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F5.png" }, { - "lineId": "TCAR:06", + "lineId": "06", "lineName": "FAST 6", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F6.png" }, { - "lineId": "TCAR:07", + "lineId": "07", "lineName": "FAST 7", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F7.png" }, { - "lineId": "TCAR:08", + "lineId": "08", "lineName": "FAST 8", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F8.png" }, { - "lineId": "TAE:118", + "lineId": "118", "lineName": "FAST 9", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F9.png" } @@ -108,7 +108,7 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TCAR:98", + "lineId": "98", "lineName": "Noctambus", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/Noctambus.png" } @@ -118,107 +118,107 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TCAR:10", + "lineId": "10", "lineName": "Bus 10", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/10.png" }, { - "lineId": "TCAR:11", + "lineId": "11", "lineName": "Bus 11", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/11.png" }, { - "lineId": "TCAR:13", + "lineId": "13", "lineName": "Bus 13", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/13.png" }, { - "lineId": "TCAR:14", + "lineId": "14", "lineName": "Bus 14", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/14.png" }, { - "lineId": "TCAR:15", + "lineId": "15", "lineName": "Bus 15", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/15.png" }, { - "lineId": "TCAR:20", + "lineId": "20", "lineName": "Bus 20", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/20.png" }, { - "lineId": "TCAR:22", + "lineId": "22", "lineName": "Bus 22", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/22.png" }, { - "lineId": "TNI:26", + "lineId": "26", "lineName": "Bus 26", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/26.png" }, { - "lineId": "TCAR:27", + "lineId": "27", "lineName": "Bus 27", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/27.png" }, { - "lineId": "TCAR:28", + "lineId": "28", "lineName": "Bus 28", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/28.png" }, { - "lineId": "TCAR:33", + "lineId": "33", "lineName": "Bus 33", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/33.png" }, { - "lineId": "TCAR:35", + "lineId": "35", "lineName": "Bus 35", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/35.png" }, { - "lineId": "TCAR:36", + "lineId": "36", "lineName": "Bus 36", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/36.png" }, { - "lineId": "TCAR:37", + "lineId": "37", "lineName": "Bus 37", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/37.png" }, { - "lineId": "TCAR:38", + "lineId": "38", "lineName": "Bus 38", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/38.png" }, { - "lineId": "TCAR:41", + "lineId": "41", "lineName": "Bus 41", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/41.png" }, { - "lineId": "TCAR:42", + "lineId": "42", "lineName": "Bus 42", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/42.png" }, { - "lineId": "TCAR:43", + "lineId": "43", "lineName": "Bus 43", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/43.png" }, { - "lineId": "TCAR:44", + "lineId": "44", "lineName": "Bus 44", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/44.png" }, { - "lineId": "TCAR:529", + "lineId": "529", "lineName": "Bus 529", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/529.png" }, { - "lineId": "TNI:530", + "lineId": "530", "lineName": "Bus 530", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/530.png" } @@ -228,42 +228,42 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TAE:111", + "lineId": "111", "lineName": "Bus A", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/A.png" }, { - "lineId": "TAE:112", + "lineId": "112", "lineName": "Bus B", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/B.png" }, { - "lineId": "TAE:113", + "lineId": "113", "lineName": "Bus C", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/C.png" }, { - "lineId": "TAE:116", + "lineId": "116", "lineName": "Bus D1", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D1.png" }, { - "lineId": "TAE:117", + "lineId": "117", "lineName": "Bus D2", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D2.png" }, { - "lineId": "TAE:115", + "lineId": "115", "lineName": "Bus F", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F.png" }, { - "lineId": "TAE:119", + "lineId": "119", "lineName": "Bus G", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/G.png" }, { - "lineId": "TAE:120", + "lineId": "120", "lineName": "Bus I", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/I.png" } @@ -273,32 +273,32 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TAE:101", + "lineId": "101", "lineName": "Scolaire 101", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/101.png" }, { - "lineId": "TAE:102", + "lineId": "102", "lineName": "Scolaire 102", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/102.png" }, { - "lineId": "TAE:103", + "lineId": "103", "lineName": "Scolaire 103", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/103.png" }, { - "lineId": "TAE:104", + "lineId": "104", "lineName": "Scolaire 104", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/104.png" }, { - "lineId": "TAE:106", + "lineId": "106", "lineName": "Scolaire 106", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/106.png" }, { - "lineId": "TAE:311", + "lineId": "311", "lineName": "Scolaire 311", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" } @@ -308,107 +308,107 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TCAR:201", + "lineId": "201", "lineName": "Scolaire 201", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/201.png" }, { - "lineId": "TCAR:202", + "lineId": "202", "lineName": "Scolaire 202", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/202.png" }, { - "lineId": "TCAR:203", + "lineId": "203", "lineName": "Scolaire 203", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/203.png" }, { - "lineId": "TCAR:204", + "lineId": "204", "lineName": "Scolaire 204", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/204.png" }, { - "lineId": "TCAR:205", + "lineId": "205", "lineName": "Scolaire 205", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/205.png" }, { - "lineId": "TCAR:206", + "lineId": "206", "lineName": "Scolaire 206", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/206.png" }, { - "lineId": "TCAR:207", + "lineId": "207", "lineName": "Scolaire 207", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/207.png" }, { - "lineId": "TCAR:208", + "lineId": "208", "lineName": "Scolaire 208", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/208.png" }, { - "lineId": "TCAR:210", + "lineId": "210", "lineName": "Scolaire 210", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/210.png" }, { - "lineId": "TCAR:211", + "lineId": "211", "lineName": "Scolaire 211", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/211.png" }, { - "lineId": "TCAR:212", + "lineId": "212", "lineName": "Scolaire 212", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/212.png" }, { - "lineId": "TCAR:213", + "lineId": "213", "lineName": "Scolaire 213", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/213.png" }, { - "lineId": "TCAR:214", + "lineId": "214", "lineName": "Scolaire 214", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/214.png" }, { - "lineId": "TCAR:220", + "lineId": "220", "lineName": "Scolaire 220", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/220.png" }, { - "lineId": "TCAR:221", + "lineId": "221", "lineName": "Scolaire 221", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/221.png" }, { - "lineId": "TCAR:222", + "lineId": "222", "lineName": "Scolaire 222", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/222.png" }, { - "lineId": "TCAR:224", + "lineId": "224", "lineName": "Scolaire 224", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/224.png" }, { - "lineId": "TCAR:225", + "lineId": "225", "lineName": "Scolaire 225", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/225.png" }, { - "lineId": "TCAR:227", + "lineId": "227", "lineName": "Scolaire 227", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/227.png" }, { - "lineId": "TCAR:228", + "lineId": "228", "lineName": "Scolaire 228", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/228.png" }, { - "lineId": "TCAR:229", + "lineId": "229", "lineName": "Scolaire 229", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/229.png" } @@ -418,142 +418,142 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "lineId": "TCAR:300", + "lineId": "300", "lineName": "Scolaire 300", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/300.png" }, { - "lineId": "TCAR:301", + "lineId": "301", "lineName": "Scolaire 301", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/301.png" }, { - "lineId": "TCAR:302", + "lineId": "302", "lineName": "Scolaire 302", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/302.png" }, { - "lineId": "TCAR:303", + "lineId": "303", "lineName": "Scolaire 303", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/303.png" }, { - "lineId": "TCAR:305", + "lineId": "305", "lineName": "Scolaire 305", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/305.png" }, { - "lineId": "TCAR:310", + "lineId": "310", "lineName": "Scolaire 310", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/310.png" }, { - "lineId": "TCAR:311", + "lineId": "311", "lineName": "Scolaire 311", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" }, { - "lineId": "TCAR:313", + "lineId": "313", "lineName": "Scolaire 313", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/313.png" }, { - "lineId": "TCAR:314", + "lineId": "314", "lineName": "Scolaire 314", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/314.png" }, { - "lineId": "TCAR:315", + "lineId": "315", "lineName": "Scolaire 315", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/315.png" }, { - "lineId": "TCAR:322", + "lineId": "322", "lineName": "Scolaire 322", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/322.png" }, { - "lineId": "TCAR:330", + "lineId": "330", "lineName": "Scolaire 330", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/330.png" }, { - "lineId": "TCAR:331", + "lineId": "331", "lineName": "Scolaire 331", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/331.png" }, { - "lineId": "TCAR:332", + "lineId": "332", "lineName": "Scolaire 332", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/332.png" }, { - "lineId": "TCAR:333", + "lineId": "333", "lineName": "Scolaire 333", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/333.png" }, { - "lineId": "TCAR:334", + "lineId": "334", "lineName": "Scolaire 334", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/334.png" }, { - "lineId": "TCAR:335", + "lineId": "335", "lineName": "Scolaire 335", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/335.png" }, { - "lineId": "TCAR:336", + "lineId": "336", "lineName": "Scolaire 336", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/336.png" }, { - "lineId": "TCAR:340", + "lineId": "340", "lineName": "Scolaire 340", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/340.png" }, { - "lineId": "TCAR:341", + "lineId": "341", "lineName": "Scolaire 341", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/341.png" }, { - "lineId": "TCAR:342", + "lineId": "342", "lineName": "Scolaire 342", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/342.png" }, { - "lineId": "TCAR:343", + "lineId": "343", "lineName": "Scolaire 343", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/343.png" }, { - "lineId": "TCAR:350", + "lineId": "350", "lineName": "Scolaire 350", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/350.png" }, { - "lineId": "TCAR:351", + "lineId": "351", "lineName": "Scolaire 351", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/351.png" }, { - "lineId": "TCAR:360", + "lineId": "360", "lineName": "Scolaire 360", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/360.png" }, { - "lineId": "TCAR:361", + "lineId": "361", "lineName": "Scolaire 361", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/361.png" }, { - "lineId": "TCAR:363", + "lineId": "363", "lineName": "Scolaire 363", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/363.png" }, { - "lineId": "TCAR:364", + "lineId": "364", "lineName": "Scolaire 364", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/364.png" } From 5b1086662540f871eee804f7dfb705a1cfceadb3 Mon Sep 17 00:00:00 2001 From: tcr-n Date: Wed, 10 Dec 2025 12:27:30 +0100 Subject: [PATCH 2/7] Adaptation infos trafic --- logo/fr-astuce/trafic.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logo/fr-astuce/trafic.json b/logo/fr-astuce/trafic.json index 0597202..11fb15b 100644 --- a/logo/fr-astuce/trafic.json +++ b/logo/fr-astuce/trafic.json @@ -1,5 +1,5 @@ { - "companyId": "fr-astuce", + "companyId": ["fr-astuce", "fr-astuce-elbeuf", "fr-astuce-interurbain"], "companyLogo": "https://hexatransit.fr/assets/logo/fr-astuce/astuce.png", "gtfsRTUrl": "https://gtfs.flocaseih.me/service_alerts.pb", "lines": [ From 945e0270feaa47b1b4a5a12aa294af8807b3a933 Mon Sep 17 00:00:00 2001 From: Jouca Date: Wed, 10 Dec 2025 13:00:50 +0100 Subject: [PATCH 3/7] update workflow --- .github/models/trafic.schema.json | 20 +++----- .github/scripts/check_gtfs_route_trafic.py | 54 ++++++++++++++++------ 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/.github/models/trafic.schema.json b/.github/models/trafic.schema.json index da97424..5b7cb91 100644 --- a/.github/models/trafic.schema.json +++ b/.github/models/trafic.schema.json @@ -7,18 +7,8 @@ "additionalProperties": false, "properties": { "companyId": { - "oneOf": [ - { - "type": "string", - "description": "Unique identifier for the company (e.g. 'fr-idf')." - }, - { - "type": "array", - "items": { "type": "string" }, - "minItems": 1, - "description": "Array of unique identifiers for the company." - } - ] + "type": "string", + "description": "Unique identifier for the company (e.g. 'fr-idf')." }, "companyLogo": { "type": "string", @@ -74,7 +64,11 @@ ] }, "lineLogoDark": { "type": ["string","null"], "format": "uri", "description": "Optional dark-mode logo URL.", "default": null }, - "isDisabled": { "type": "boolean", "description": "Optional flag to mark a line as disabled." } + "isDisabled": { "type": "boolean", "description": "Optional flag to mark a line as disabled." }, + "companyId": { + "type": "string", + "description": "Optional: specify which company this line belongs to. Required when root companyId is an array. Must be a string (not an array)." + } }, "additionalProperties": false } diff --git a/.github/scripts/check_gtfs_route_trafic.py b/.github/scripts/check_gtfs_route_trafic.py index 467bba5..8b082ce 100644 --- a/.github/scripts/check_gtfs_route_trafic.py +++ b/.github/scripts/check_gtfs_route_trafic.py @@ -30,31 +30,55 @@ def gather_trafic_json(root_dir): continue def process_company(company): - aid = company.get('companyId') - if not aid: + root_aid = company.get('companyId') + if not root_aid: return - # Collect line IDs for this company - line_ids = set() + # Check if root companyId is a list (multiple companies case) + root_is_list = isinstance(root_aid, list) + + # Normalize root companyId for single company case + if isinstance(root_aid, str): + root_company_id = root_aid.strip() if root_aid.strip() else None + else: + root_company_id = None + + # Process each line for group in company.get('lines', []) or []: for item in group: if not isinstance(item, dict): continue + + # Get lineId lid = item.get('lineId') if lid is None: continue lid_s = str(lid).strip() - if lid_s: - line_ids.add(lid_s) - - # Handle companyId as either a string or a list of strings - if isinstance(aid, str): - if aid.strip() and line_ids: - agencies[aid.strip()].update(line_ids) - elif isinstance(aid, list): - for cid in aid: - if isinstance(cid, str) and cid.strip() and line_ids: - agencies[cid.strip()].update(line_ids) + if not lid_s: + continue + + # Determine which companyId to use + line_aid = item.get('companyId') + + if root_is_list: + # Root is a list: line MUST have its own companyId (string only) + if line_aid is None: + print(f'Warning: Line {lid_s} has no companyId but root companyId is a list. Skipping.') + continue + if not isinstance(line_aid, str): + print(f'Warning: Line {lid_s} has invalid companyId (must be string when root is list). Skipping.') + continue + cid = line_aid.strip() + if cid: + agencies[cid].add(lid_s) + else: + # Root is a string: use line's companyId if present, otherwise use root + if line_aid is not None and isinstance(line_aid, str): + cid = line_aid.strip() + if cid: + agencies[cid].add(lid_s) + elif root_company_id: + agencies[root_company_id].add(lid_s) if isinstance(data, list): for company in data: From 9ca09abd46a9fa9a0d260ddb3f8cd985856f1f8e Mon Sep 17 00:00:00 2001 From: tcr-n Date: Wed, 10 Dec 2025 22:56:09 +0100 Subject: [PATCH 4/7] Adaptation Astuce --- logo/fr-astuce/trafic.json | 107 ++++++- logo/fr-astuce/trafic.json.bak | 562 +++++++++++++++++++++++++++++++++ 2 files changed, 668 insertions(+), 1 deletion(-) create mode 100644 logo/fr-astuce/trafic.json.bak diff --git a/logo/fr-astuce/trafic.json b/logo/fr-astuce/trafic.json index 11fb15b..43fa80b 100644 --- a/logo/fr-astuce/trafic.json +++ b/logo/fr-astuce/trafic.json @@ -1,5 +1,9 @@ { - "companyId": ["fr-astuce", "fr-astuce-elbeuf", "fr-astuce-interurbain"], + "companyId": [ + "fr-astuce", + "fr-astuce-elbeuf", + "fr-astuce-interurbain" + ], "companyLogo": "https://hexatransit.fr/assets/logo/fr-astuce/astuce.png", "gtfsRTUrl": "https://gtfs.flocaseih.me/service_alerts.pb", "lines": [ @@ -8,6 +12,7 @@ "transportLogo": "assets/icons/transportMode/metro_white.png" }, { + "companyId": "fr-astuce", "lineId": "90", "lineName": "Métro", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/metro/M.png" @@ -18,6 +23,7 @@ "transportLogo": "assets/icons/transportMode/ferry_white.png" }, { + "companyId": "fr-astuce", "lineId": "99", "lineName": "Navette fluviale Calypso", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/ferry/Calypso.png" @@ -28,26 +34,31 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "91", "lineName": "TEOR T1", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T1.png" }, { + "companyId": "fr-astuce", "lineId": "92", "lineName": "TEOR T2", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T2.png" }, { + "companyId": "fr-astuce", "lineId": "93", "lineName": "TEOR T3", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T3.png" }, { + "companyId": "fr-astuce", "lineId": "94", "lineName": "TEOR T4", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T4.png" }, { + "companyId": "fr-astuce", "lineId": "95", "lineName": "TEOR T5", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T5.png" @@ -58,46 +69,55 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "01", "lineName": "FAST 1", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F1.png" }, { + "companyId": "fr-astuce", "lineId": "02", "lineName": "FAST 2", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F2.png" }, { + "companyId": "fr-astuce", "lineId": "03", "lineName": "FAST 3", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F3.png" }, { + "companyId": "fr-astuce", "lineId": "04", "lineName": "FAST 4", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F4.png" }, { + "companyId": "fr-astuce", "lineId": "05", "lineName": "FAST 5", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F5.png" }, { + "companyId": "fr-astuce", "lineId": "06", "lineName": "FAST 6", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F6.png" }, { + "companyId": "fr-astuce", "lineId": "07", "lineName": "FAST 7", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F7.png" }, { + "companyId": "fr-astuce", "lineId": "08", "lineName": "FAST 8", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F8.png" }, { + "companyId": "fr-astuce", "lineId": "118", "lineName": "FAST 9", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F9.png" @@ -108,6 +128,7 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "98", "lineName": "Noctambus", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/Noctambus.png" @@ -118,106 +139,127 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "10", "lineName": "Bus 10", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/10.png" }, { + "companyId": "fr-astuce", "lineId": "11", "lineName": "Bus 11", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/11.png" }, { + "companyId": "fr-astuce", "lineId": "13", "lineName": "Bus 13", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/13.png" }, { + "companyId": "fr-astuce", "lineId": "14", "lineName": "Bus 14", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/14.png" }, { + "companyId": "fr-astuce", "lineId": "15", "lineName": "Bus 15", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/15.png" }, { + "companyId": "fr-astuce", "lineId": "20", "lineName": "Bus 20", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/20.png" }, { + "companyId": "fr-astuce", "lineId": "22", "lineName": "Bus 22", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/22.png" }, { + "companyId": "fr-astuce", "lineId": "26", "lineName": "Bus 26", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/26.png" }, { + "companyId": "fr-astuce", "lineId": "27", "lineName": "Bus 27", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/27.png" }, { + "companyId": "fr-astuce", "lineId": "28", "lineName": "Bus 28", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/28.png" }, { + "companyId": "fr-astuce", "lineId": "33", "lineName": "Bus 33", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/33.png" }, { + "companyId": "fr-astuce", "lineId": "35", "lineName": "Bus 35", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/35.png" }, { + "companyId": "fr-astuce", "lineId": "36", "lineName": "Bus 36", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/36.png" }, { + "companyId": "fr-astuce", "lineId": "37", "lineName": "Bus 37", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/37.png" }, { + "companyId": "fr-astuce", "lineId": "38", "lineName": "Bus 38", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/38.png" }, { + "companyId": "fr-astuce", "lineId": "41", "lineName": "Bus 41", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/41.png" }, { + "companyId": "fr-astuce", "lineId": "42", "lineName": "Bus 42", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/42.png" }, { + "companyId": "fr-astuce", "lineId": "43", "lineName": "Bus 43", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/43.png" }, { + "companyId": "fr-astuce", "lineId": "44", "lineName": "Bus 44", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/44.png" }, { + "companyId": "fr-astuce", "lineId": "529", "lineName": "Bus 529", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/529.png" }, { + "companyId": "fr-astuce", "lineId": "530", "lineName": "Bus 530", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/530.png" @@ -228,41 +270,49 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "111", "lineName": "Bus A", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/A.png" }, { + "companyId": "fr-astuce", "lineId": "112", "lineName": "Bus B", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/B.png" }, { + "companyId": "fr-astuce", "lineId": "113", "lineName": "Bus C", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/C.png" }, { + "companyId": "fr-astuce", "lineId": "116", "lineName": "Bus D1", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D1.png" }, { + "companyId": "fr-astuce", "lineId": "117", "lineName": "Bus D2", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D2.png" }, { + "companyId": "fr-astuce", "lineId": "115", "lineName": "Bus F", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F.png" }, { + "companyId": "fr-astuce", "lineId": "119", "lineName": "Bus G", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/G.png" }, { + "companyId": "fr-astuce", "lineId": "120", "lineName": "Bus I", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/I.png" @@ -273,31 +323,37 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "101", "lineName": "Scolaire 101", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/101.png" }, { + "companyId": "fr-astuce", "lineId": "102", "lineName": "Scolaire 102", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/102.png" }, { + "companyId": "fr-astuce", "lineId": "103", "lineName": "Scolaire 103", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/103.png" }, { + "companyId": "fr-astuce", "lineId": "104", "lineName": "Scolaire 104", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/104.png" }, { + "companyId": "fr-astuce", "lineId": "106", "lineName": "Scolaire 106", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/106.png" }, { + "companyId": "fr-astuce", "lineId": "311", "lineName": "Scolaire 311", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" @@ -308,106 +364,127 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "201", "lineName": "Scolaire 201", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/201.png" }, { + "companyId": "fr-astuce", "lineId": "202", "lineName": "Scolaire 202", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/202.png" }, { + "companyId": "fr-astuce", "lineId": "203", "lineName": "Scolaire 203", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/203.png" }, { + "companyId": "fr-astuce", "lineId": "204", "lineName": "Scolaire 204", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/204.png" }, { + "companyId": "fr-astuce", "lineId": "205", "lineName": "Scolaire 205", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/205.png" }, { + "companyId": "fr-astuce", "lineId": "206", "lineName": "Scolaire 206", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/206.png" }, { + "companyId": "fr-astuce", "lineId": "207", "lineName": "Scolaire 207", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/207.png" }, { + "companyId": "fr-astuce", "lineId": "208", "lineName": "Scolaire 208", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/208.png" }, { + "companyId": "fr-astuce", "lineId": "210", "lineName": "Scolaire 210", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/210.png" }, { + "companyId": "fr-astuce", "lineId": "211", "lineName": "Scolaire 211", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/211.png" }, { + "companyId": "fr-astuce", "lineId": "212", "lineName": "Scolaire 212", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/212.png" }, { + "companyId": "fr-astuce", "lineId": "213", "lineName": "Scolaire 213", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/213.png" }, { + "companyId": "fr-astuce", "lineId": "214", "lineName": "Scolaire 214", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/214.png" }, { + "companyId": "fr-astuce", "lineId": "220", "lineName": "Scolaire 220", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/220.png" }, { + "companyId": "fr-astuce", "lineId": "221", "lineName": "Scolaire 221", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/221.png" }, { + "companyId": "fr-astuce", "lineId": "222", "lineName": "Scolaire 222", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/222.png" }, { + "companyId": "fr-astuce", "lineId": "224", "lineName": "Scolaire 224", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/224.png" }, { + "companyId": "fr-astuce", "lineId": "225", "lineName": "Scolaire 225", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/225.png" }, { + "companyId": "fr-astuce", "lineId": "227", "lineName": "Scolaire 227", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/227.png" }, { + "companyId": "fr-astuce", "lineId": "228", "lineName": "Scolaire 228", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/228.png" }, { + "companyId": "fr-astuce", "lineId": "229", "lineName": "Scolaire 229", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/229.png" @@ -418,141 +495,169 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { + "companyId": "fr-astuce", "lineId": "300", "lineName": "Scolaire 300", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/300.png" }, { + "companyId": "fr-astuce", "lineId": "301", "lineName": "Scolaire 301", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/301.png" }, { + "companyId": "fr-astuce", "lineId": "302", "lineName": "Scolaire 302", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/302.png" }, { + "companyId": "fr-astuce", "lineId": "303", "lineName": "Scolaire 303", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/303.png" }, { + "companyId": "fr-astuce", "lineId": "305", "lineName": "Scolaire 305", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/305.png" }, { + "companyId": "fr-astuce", "lineId": "310", "lineName": "Scolaire 310", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/310.png" }, { + "companyId": "fr-astuce", "lineId": "311", "lineName": "Scolaire 311", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" }, { + "companyId": "fr-astuce", "lineId": "313", "lineName": "Scolaire 313", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/313.png" }, { + "companyId": "fr-astuce", "lineId": "314", "lineName": "Scolaire 314", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/314.png" }, { + "companyId": "fr-astuce", "lineId": "315", "lineName": "Scolaire 315", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/315.png" }, { + "companyId": "fr-astuce", "lineId": "322", "lineName": "Scolaire 322", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/322.png" }, { + "companyId": "fr-astuce", "lineId": "330", "lineName": "Scolaire 330", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/330.png" }, { + "companyId": "fr-astuce", "lineId": "331", "lineName": "Scolaire 331", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/331.png" }, { + "companyId": "fr-astuce", "lineId": "332", "lineName": "Scolaire 332", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/332.png" }, { + "companyId": "fr-astuce", "lineId": "333", "lineName": "Scolaire 333", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/333.png" }, { + "companyId": "fr-astuce", "lineId": "334", "lineName": "Scolaire 334", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/334.png" }, { + "companyId": "fr-astuce", "lineId": "335", "lineName": "Scolaire 335", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/335.png" }, { + "companyId": "fr-astuce", "lineId": "336", "lineName": "Scolaire 336", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/336.png" }, { + "companyId": "fr-astuce", "lineId": "340", "lineName": "Scolaire 340", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/340.png" }, { + "companyId": "fr-astuce", "lineId": "341", "lineName": "Scolaire 341", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/341.png" }, { + "companyId": "fr-astuce", "lineId": "342", "lineName": "Scolaire 342", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/342.png" }, { + "companyId": "fr-astuce", "lineId": "343", "lineName": "Scolaire 343", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/343.png" }, { + "companyId": "fr-astuce", "lineId": "350", "lineName": "Scolaire 350", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/350.png" }, { + "companyId": "fr-astuce", "lineId": "351", "lineName": "Scolaire 351", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/351.png" }, { + "companyId": "fr-astuce", "lineId": "360", "lineName": "Scolaire 360", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/360.png" }, { + "companyId": "fr-astuce", "lineId": "361", "lineName": "Scolaire 361", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/361.png" }, { + "companyId": "fr-astuce", "lineId": "363", "lineName": "Scolaire 363", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/363.png" }, { + "companyId": "fr-astuce", "lineId": "364", "lineName": "Scolaire 364", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/364.png" diff --git a/logo/fr-astuce/trafic.json.bak b/logo/fr-astuce/trafic.json.bak new file mode 100644 index 0000000..11fb15b --- /dev/null +++ b/logo/fr-astuce/trafic.json.bak @@ -0,0 +1,562 @@ +{ + "companyId": ["fr-astuce", "fr-astuce-elbeuf", "fr-astuce-interurbain"], + "companyLogo": "https://hexatransit.fr/assets/logo/fr-astuce/astuce.png", + "gtfsRTUrl": "https://gtfs.flocaseih.me/service_alerts.pb", + "lines": [ + [ + { + "transportLogo": "assets/icons/transportMode/metro_white.png" + }, + { + "lineId": "90", + "lineName": "Métro", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/metro/M.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/ferry_white.png" + }, + { + "lineId": "99", + "lineName": "Navette fluviale Calypso", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/ferry/Calypso.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "91", + "lineName": "TEOR T1", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T1.png" + }, + { + "lineId": "92", + "lineName": "TEOR T2", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T2.png" + }, + { + "lineId": "93", + "lineName": "TEOR T3", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T3.png" + }, + { + "lineId": "94", + "lineName": "TEOR T4", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T4.png" + }, + { + "lineId": "95", + "lineName": "TEOR T5", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T5.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "01", + "lineName": "FAST 1", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F1.png" + }, + { + "lineId": "02", + "lineName": "FAST 2", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F2.png" + }, + { + "lineId": "03", + "lineName": "FAST 3", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F3.png" + }, + { + "lineId": "04", + "lineName": "FAST 4", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F4.png" + }, + { + "lineId": "05", + "lineName": "FAST 5", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F5.png" + }, + { + "lineId": "06", + "lineName": "FAST 6", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F6.png" + }, + { + "lineId": "07", + "lineName": "FAST 7", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F7.png" + }, + { + "lineId": "08", + "lineName": "FAST 8", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F8.png" + }, + { + "lineId": "118", + "lineName": "FAST 9", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F9.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "98", + "lineName": "Noctambus", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/Noctambus.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "10", + "lineName": "Bus 10", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/10.png" + }, + { + "lineId": "11", + "lineName": "Bus 11", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/11.png" + }, + { + "lineId": "13", + "lineName": "Bus 13", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/13.png" + }, + { + "lineId": "14", + "lineName": "Bus 14", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/14.png" + }, + { + "lineId": "15", + "lineName": "Bus 15", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/15.png" + }, + { + "lineId": "20", + "lineName": "Bus 20", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/20.png" + }, + { + "lineId": "22", + "lineName": "Bus 22", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/22.png" + }, + { + "lineId": "26", + "lineName": "Bus 26", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/26.png" + }, + { + "lineId": "27", + "lineName": "Bus 27", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/27.png" + }, + { + "lineId": "28", + "lineName": "Bus 28", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/28.png" + }, + { + "lineId": "33", + "lineName": "Bus 33", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/33.png" + }, + { + "lineId": "35", + "lineName": "Bus 35", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/35.png" + }, + { + "lineId": "36", + "lineName": "Bus 36", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/36.png" + }, + { + "lineId": "37", + "lineName": "Bus 37", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/37.png" + }, + { + "lineId": "38", + "lineName": "Bus 38", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/38.png" + }, + { + "lineId": "41", + "lineName": "Bus 41", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/41.png" + }, + { + "lineId": "42", + "lineName": "Bus 42", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/42.png" + }, + { + "lineId": "43", + "lineName": "Bus 43", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/43.png" + }, + { + "lineId": "44", + "lineName": "Bus 44", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/44.png" + }, + { + "lineId": "529", + "lineName": "Bus 529", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/529.png" + }, + { + "lineId": "530", + "lineName": "Bus 530", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/530.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "111", + "lineName": "Bus A", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/A.png" + }, + { + "lineId": "112", + "lineName": "Bus B", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/B.png" + }, + { + "lineId": "113", + "lineName": "Bus C", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/C.png" + }, + { + "lineId": "116", + "lineName": "Bus D1", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D1.png" + }, + { + "lineId": "117", + "lineName": "Bus D2", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D2.png" + }, + { + "lineId": "115", + "lineName": "Bus F", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F.png" + }, + { + "lineId": "119", + "lineName": "Bus G", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/G.png" + }, + { + "lineId": "120", + "lineName": "Bus I", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/I.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "101", + "lineName": "Scolaire 101", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/101.png" + }, + { + "lineId": "102", + "lineName": "Scolaire 102", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/102.png" + }, + { + "lineId": "103", + "lineName": "Scolaire 103", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/103.png" + }, + { + "lineId": "104", + "lineName": "Scolaire 104", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/104.png" + }, + { + "lineId": "106", + "lineName": "Scolaire 106", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/106.png" + }, + { + "lineId": "311", + "lineName": "Scolaire 311", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "201", + "lineName": "Scolaire 201", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/201.png" + }, + { + "lineId": "202", + "lineName": "Scolaire 202", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/202.png" + }, + { + "lineId": "203", + "lineName": "Scolaire 203", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/203.png" + }, + { + "lineId": "204", + "lineName": "Scolaire 204", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/204.png" + }, + { + "lineId": "205", + "lineName": "Scolaire 205", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/205.png" + }, + { + "lineId": "206", + "lineName": "Scolaire 206", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/206.png" + }, + { + "lineId": "207", + "lineName": "Scolaire 207", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/207.png" + }, + { + "lineId": "208", + "lineName": "Scolaire 208", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/208.png" + }, + { + "lineId": "210", + "lineName": "Scolaire 210", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/210.png" + }, + { + "lineId": "211", + "lineName": "Scolaire 211", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/211.png" + }, + { + "lineId": "212", + "lineName": "Scolaire 212", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/212.png" + }, + { + "lineId": "213", + "lineName": "Scolaire 213", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/213.png" + }, + { + "lineId": "214", + "lineName": "Scolaire 214", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/214.png" + }, + { + "lineId": "220", + "lineName": "Scolaire 220", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/220.png" + }, + { + "lineId": "221", + "lineName": "Scolaire 221", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/221.png" + }, + { + "lineId": "222", + "lineName": "Scolaire 222", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/222.png" + }, + { + "lineId": "224", + "lineName": "Scolaire 224", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/224.png" + }, + { + "lineId": "225", + "lineName": "Scolaire 225", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/225.png" + }, + { + "lineId": "227", + "lineName": "Scolaire 227", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/227.png" + }, + { + "lineId": "228", + "lineName": "Scolaire 228", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/228.png" + }, + { + "lineId": "229", + "lineName": "Scolaire 229", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/229.png" + } + ], + [ + { + "transportLogo": "assets/icons/transportMode/bus_white.png" + }, + { + "lineId": "300", + "lineName": "Scolaire 300", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/300.png" + }, + { + "lineId": "301", + "lineName": "Scolaire 301", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/301.png" + }, + { + "lineId": "302", + "lineName": "Scolaire 302", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/302.png" + }, + { + "lineId": "303", + "lineName": "Scolaire 303", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/303.png" + }, + { + "lineId": "305", + "lineName": "Scolaire 305", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/305.png" + }, + { + "lineId": "310", + "lineName": "Scolaire 310", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/310.png" + }, + { + "lineId": "311", + "lineName": "Scolaire 311", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" + }, + { + "lineId": "313", + "lineName": "Scolaire 313", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/313.png" + }, + { + "lineId": "314", + "lineName": "Scolaire 314", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/314.png" + }, + { + "lineId": "315", + "lineName": "Scolaire 315", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/315.png" + }, + { + "lineId": "322", + "lineName": "Scolaire 322", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/322.png" + }, + { + "lineId": "330", + "lineName": "Scolaire 330", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/330.png" + }, + { + "lineId": "331", + "lineName": "Scolaire 331", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/331.png" + }, + { + "lineId": "332", + "lineName": "Scolaire 332", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/332.png" + }, + { + "lineId": "333", + "lineName": "Scolaire 333", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/333.png" + }, + { + "lineId": "334", + "lineName": "Scolaire 334", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/334.png" + }, + { + "lineId": "335", + "lineName": "Scolaire 335", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/335.png" + }, + { + "lineId": "336", + "lineName": "Scolaire 336", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/336.png" + }, + { + "lineId": "340", + "lineName": "Scolaire 340", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/340.png" + }, + { + "lineId": "341", + "lineName": "Scolaire 341", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/341.png" + }, + { + "lineId": "342", + "lineName": "Scolaire 342", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/342.png" + }, + { + "lineId": "343", + "lineName": "Scolaire 343", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/343.png" + }, + { + "lineId": "350", + "lineName": "Scolaire 350", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/350.png" + }, + { + "lineId": "351", + "lineName": "Scolaire 351", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/351.png" + }, + { + "lineId": "360", + "lineName": "Scolaire 360", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/360.png" + }, + { + "lineId": "361", + "lineName": "Scolaire 361", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/361.png" + }, + { + "lineId": "363", + "lineName": "Scolaire 363", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/363.png" + }, + { + "lineId": "364", + "lineName": "Scolaire 364", + "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/364.png" + } + ] + ] +} \ No newline at end of file From dec69d4e4dfe3cf153d05a7e77b190a000d06954 Mon Sep 17 00:00:00 2001 From: tcr-n Date: Wed, 10 Dec 2025 22:59:13 +0100 Subject: [PATCH 5/7] =?UTF-8?q?fichier=20ind=C3=A9sirable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logo/fr-astuce/trafic.json.bak | 562 --------------------------------- 1 file changed, 562 deletions(-) delete mode 100644 logo/fr-astuce/trafic.json.bak diff --git a/logo/fr-astuce/trafic.json.bak b/logo/fr-astuce/trafic.json.bak deleted file mode 100644 index 11fb15b..0000000 --- a/logo/fr-astuce/trafic.json.bak +++ /dev/null @@ -1,562 +0,0 @@ -{ - "companyId": ["fr-astuce", "fr-astuce-elbeuf", "fr-astuce-interurbain"], - "companyLogo": "https://hexatransit.fr/assets/logo/fr-astuce/astuce.png", - "gtfsRTUrl": "https://gtfs.flocaseih.me/service_alerts.pb", - "lines": [ - [ - { - "transportLogo": "assets/icons/transportMode/metro_white.png" - }, - { - "lineId": "90", - "lineName": "Métro", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/metro/M.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/ferry_white.png" - }, - { - "lineId": "99", - "lineName": "Navette fluviale Calypso", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/ferry/Calypso.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "91", - "lineName": "TEOR T1", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T1.png" - }, - { - "lineId": "92", - "lineName": "TEOR T2", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T2.png" - }, - { - "lineId": "93", - "lineName": "TEOR T3", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T3.png" - }, - { - "lineId": "94", - "lineName": "TEOR T4", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T4.png" - }, - { - "lineId": "95", - "lineName": "TEOR T5", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/T5.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "01", - "lineName": "FAST 1", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F1.png" - }, - { - "lineId": "02", - "lineName": "FAST 2", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F2.png" - }, - { - "lineId": "03", - "lineName": "FAST 3", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F3.png" - }, - { - "lineId": "04", - "lineName": "FAST 4", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F4.png" - }, - { - "lineId": "05", - "lineName": "FAST 5", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F5.png" - }, - { - "lineId": "06", - "lineName": "FAST 6", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F6.png" - }, - { - "lineId": "07", - "lineName": "FAST 7", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F7.png" - }, - { - "lineId": "08", - "lineName": "FAST 8", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F8.png" - }, - { - "lineId": "118", - "lineName": "FAST 9", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F9.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "98", - "lineName": "Noctambus", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/Noctambus.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "10", - "lineName": "Bus 10", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/10.png" - }, - { - "lineId": "11", - "lineName": "Bus 11", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/11.png" - }, - { - "lineId": "13", - "lineName": "Bus 13", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/13.png" - }, - { - "lineId": "14", - "lineName": "Bus 14", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/14.png" - }, - { - "lineId": "15", - "lineName": "Bus 15", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/15.png" - }, - { - "lineId": "20", - "lineName": "Bus 20", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/20.png" - }, - { - "lineId": "22", - "lineName": "Bus 22", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/22.png" - }, - { - "lineId": "26", - "lineName": "Bus 26", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/26.png" - }, - { - "lineId": "27", - "lineName": "Bus 27", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/27.png" - }, - { - "lineId": "28", - "lineName": "Bus 28", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/28.png" - }, - { - "lineId": "33", - "lineName": "Bus 33", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/33.png" - }, - { - "lineId": "35", - "lineName": "Bus 35", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/35.png" - }, - { - "lineId": "36", - "lineName": "Bus 36", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/36.png" - }, - { - "lineId": "37", - "lineName": "Bus 37", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/37.png" - }, - { - "lineId": "38", - "lineName": "Bus 38", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/38.png" - }, - { - "lineId": "41", - "lineName": "Bus 41", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/41.png" - }, - { - "lineId": "42", - "lineName": "Bus 42", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/42.png" - }, - { - "lineId": "43", - "lineName": "Bus 43", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/43.png" - }, - { - "lineId": "44", - "lineName": "Bus 44", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/44.png" - }, - { - "lineId": "529", - "lineName": "Bus 529", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/529.png" - }, - { - "lineId": "530", - "lineName": "Bus 530", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/530.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "111", - "lineName": "Bus A", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/A.png" - }, - { - "lineId": "112", - "lineName": "Bus B", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/B.png" - }, - { - "lineId": "113", - "lineName": "Bus C", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/C.png" - }, - { - "lineId": "116", - "lineName": "Bus D1", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D1.png" - }, - { - "lineId": "117", - "lineName": "Bus D2", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D2.png" - }, - { - "lineId": "115", - "lineName": "Bus F", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F.png" - }, - { - "lineId": "119", - "lineName": "Bus G", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/G.png" - }, - { - "lineId": "120", - "lineName": "Bus I", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/I.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "101", - "lineName": "Scolaire 101", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/101.png" - }, - { - "lineId": "102", - "lineName": "Scolaire 102", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/102.png" - }, - { - "lineId": "103", - "lineName": "Scolaire 103", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/103.png" - }, - { - "lineId": "104", - "lineName": "Scolaire 104", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/104.png" - }, - { - "lineId": "106", - "lineName": "Scolaire 106", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/106.png" - }, - { - "lineId": "311", - "lineName": "Scolaire 311", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "201", - "lineName": "Scolaire 201", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/201.png" - }, - { - "lineId": "202", - "lineName": "Scolaire 202", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/202.png" - }, - { - "lineId": "203", - "lineName": "Scolaire 203", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/203.png" - }, - { - "lineId": "204", - "lineName": "Scolaire 204", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/204.png" - }, - { - "lineId": "205", - "lineName": "Scolaire 205", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/205.png" - }, - { - "lineId": "206", - "lineName": "Scolaire 206", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/206.png" - }, - { - "lineId": "207", - "lineName": "Scolaire 207", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/207.png" - }, - { - "lineId": "208", - "lineName": "Scolaire 208", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/208.png" - }, - { - "lineId": "210", - "lineName": "Scolaire 210", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/210.png" - }, - { - "lineId": "211", - "lineName": "Scolaire 211", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/211.png" - }, - { - "lineId": "212", - "lineName": "Scolaire 212", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/212.png" - }, - { - "lineId": "213", - "lineName": "Scolaire 213", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/213.png" - }, - { - "lineId": "214", - "lineName": "Scolaire 214", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/214.png" - }, - { - "lineId": "220", - "lineName": "Scolaire 220", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/220.png" - }, - { - "lineId": "221", - "lineName": "Scolaire 221", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/221.png" - }, - { - "lineId": "222", - "lineName": "Scolaire 222", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/222.png" - }, - { - "lineId": "224", - "lineName": "Scolaire 224", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/224.png" - }, - { - "lineId": "225", - "lineName": "Scolaire 225", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/225.png" - }, - { - "lineId": "227", - "lineName": "Scolaire 227", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/227.png" - }, - { - "lineId": "228", - "lineName": "Scolaire 228", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/228.png" - }, - { - "lineId": "229", - "lineName": "Scolaire 229", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/229.png" - } - ], - [ - { - "transportLogo": "assets/icons/transportMode/bus_white.png" - }, - { - "lineId": "300", - "lineName": "Scolaire 300", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/300.png" - }, - { - "lineId": "301", - "lineName": "Scolaire 301", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/301.png" - }, - { - "lineId": "302", - "lineName": "Scolaire 302", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/302.png" - }, - { - "lineId": "303", - "lineName": "Scolaire 303", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/303.png" - }, - { - "lineId": "305", - "lineName": "Scolaire 305", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/305.png" - }, - { - "lineId": "310", - "lineName": "Scolaire 310", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/310.png" - }, - { - "lineId": "311", - "lineName": "Scolaire 311", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" - }, - { - "lineId": "313", - "lineName": "Scolaire 313", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/313.png" - }, - { - "lineId": "314", - "lineName": "Scolaire 314", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/314.png" - }, - { - "lineId": "315", - "lineName": "Scolaire 315", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/315.png" - }, - { - "lineId": "322", - "lineName": "Scolaire 322", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/322.png" - }, - { - "lineId": "330", - "lineName": "Scolaire 330", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/330.png" - }, - { - "lineId": "331", - "lineName": "Scolaire 331", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/331.png" - }, - { - "lineId": "332", - "lineName": "Scolaire 332", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/332.png" - }, - { - "lineId": "333", - "lineName": "Scolaire 333", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/333.png" - }, - { - "lineId": "334", - "lineName": "Scolaire 334", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/334.png" - }, - { - "lineId": "335", - "lineName": "Scolaire 335", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/335.png" - }, - { - "lineId": "336", - "lineName": "Scolaire 336", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/336.png" - }, - { - "lineId": "340", - "lineName": "Scolaire 340", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/340.png" - }, - { - "lineId": "341", - "lineName": "Scolaire 341", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/341.png" - }, - { - "lineId": "342", - "lineName": "Scolaire 342", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/342.png" - }, - { - "lineId": "343", - "lineName": "Scolaire 343", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/343.png" - }, - { - "lineId": "350", - "lineName": "Scolaire 350", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/350.png" - }, - { - "lineId": "351", - "lineName": "Scolaire 351", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/351.png" - }, - { - "lineId": "360", - "lineName": "Scolaire 360", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/360.png" - }, - { - "lineId": "361", - "lineName": "Scolaire 361", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/361.png" - }, - { - "lineId": "363", - "lineName": "Scolaire 363", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/363.png" - }, - { - "lineId": "364", - "lineName": "Scolaire 364", - "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/364.png" - } - ] - ] -} \ No newline at end of file From 482be980c85497a3b3a792d1f699758211de676d Mon Sep 17 00:00:00 2001 From: tcr-n Date: Wed, 10 Dec 2025 23:15:48 +0100 Subject: [PATCH 6/7] correction --- logo/fr-astuce/trafic.json | 39 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/logo/fr-astuce/trafic.json b/logo/fr-astuce/trafic.json index 43fa80b..6304330 100644 --- a/logo/fr-astuce/trafic.json +++ b/logo/fr-astuce/trafic.json @@ -1,9 +1,4 @@ { - "companyId": [ - "fr-astuce", - "fr-astuce-elbeuf", - "fr-astuce-interurbain" - ], "companyLogo": "https://hexatransit.fr/assets/logo/fr-astuce/astuce.png", "gtfsRTUrl": "https://gtfs.flocaseih.me/service_alerts.pb", "lines": [ @@ -117,7 +112,7 @@ "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F8.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "118", "lineName": "FAST 9", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F9.png" @@ -181,7 +176,7 @@ "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/22.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-interurbain", "lineId": "26", "lineName": "Bus 26", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/26.png" @@ -259,7 +254,7 @@ "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/529.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-interurbain", "lineId": "530", "lineName": "Bus 530", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/530.png" @@ -270,49 +265,49 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "111", "lineName": "Bus A", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/A.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "112", "lineName": "Bus B", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/B.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "113", "lineName": "Bus C", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/C.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "116", "lineName": "Bus D1", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D1.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "117", "lineName": "Bus D2", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/D2.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "115", "lineName": "Bus F", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/F.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "119", "lineName": "Bus G", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/G.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "120", "lineName": "Bus I", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/I.png" @@ -323,37 +318,37 @@ "transportLogo": "assets/icons/transportMode/bus_white.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "101", "lineName": "Scolaire 101", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/101.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "102", "lineName": "Scolaire 102", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/102.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "103", "lineName": "Scolaire 103", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/103.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "104", "lineName": "Scolaire 104", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/104.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "106", "lineName": "Scolaire 106", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/106.png" }, { - "companyId": "fr-astuce", + "companyId": "fr-astuce-elbeuf", "lineId": "311", "lineName": "Scolaire 311", "lineLogo": "https://hexatransit.fr/assets/logo/fr-astuce/bus/311.png" From 419e2bcc107736128d8417b6174e514d72db857d Mon Sep 17 00:00:00 2001 From: Jouca Date: Wed, 10 Dec 2025 23:25:43 +0100 Subject: [PATCH 7/7] update workflow --- .github/models/trafic.schema.json | 6 ++-- .github/scripts/check_gtfs_route_trafic.py | 40 ++++++++-------------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/.github/models/trafic.schema.json b/.github/models/trafic.schema.json index 5b7cb91..9930e54 100644 --- a/.github/models/trafic.schema.json +++ b/.github/models/trafic.schema.json @@ -3,12 +3,12 @@ "title": "Trafic configuration schema", "description": "Schema describing the structure of a trafic.json file used by the project.", "type": "object", - "required": ["companyId", "companyLogo", "lines"], + "required": ["companyLogo", "lines"], "additionalProperties": false, "properties": { "companyId": { "type": "string", - "description": "Unique identifier for the company (e.g. 'fr-idf')." + "description": "Unique identifier for the company (e.g. 'fr-idf'). Required for single company configurations. Omit when multiple companies share the same configuration (each line must then have its own companyId)." }, "companyLogo": { "type": "string", @@ -67,7 +67,7 @@ "isDisabled": { "type": "boolean", "description": "Optional flag to mark a line as disabled." }, "companyId": { "type": "string", - "description": "Optional: specify which company this line belongs to. Required when root companyId is an array. Must be a string (not an array)." + "description": "Optional: specify which company this line belongs to. If root companyId is omitted (multiple companies case), this field becomes required for each line. Must be a string." } }, "additionalProperties": false diff --git a/.github/scripts/check_gtfs_route_trafic.py b/.github/scripts/check_gtfs_route_trafic.py index 8b082ce..82428b5 100644 --- a/.github/scripts/check_gtfs_route_trafic.py +++ b/.github/scripts/check_gtfs_route_trafic.py @@ -31,17 +31,10 @@ def gather_trafic_json(root_dir): def process_company(company): root_aid = company.get('companyId') - if not root_aid: - return - # Check if root companyId is a list (multiple companies case) - root_is_list = isinstance(root_aid, list) - - # Normalize root companyId for single company case - if isinstance(root_aid, str): - root_company_id = root_aid.strip() if root_aid.strip() else None - else: - root_company_id = None + # Determine if we have a root companyId (single company case) + has_root_company = root_aid is not None and isinstance(root_aid, str) and root_aid.strip() + root_company_id = root_aid.strip() if has_root_company else None # Process each line for group in company.get('lines', []) or []: @@ -57,28 +50,25 @@ def process_company(company): if not lid_s: continue - # Determine which companyId to use + # Get line-specific companyId line_aid = item.get('companyId') - if root_is_list: - # Root is a list: line MUST have its own companyId (string only) - if line_aid is None: - print(f'Warning: Line {lid_s} has no companyId but root companyId is a list. Skipping.') - continue - if not isinstance(line_aid, str): - print(f'Warning: Line {lid_s} has invalid companyId (must be string when root is list). Skipping.') - continue - cid = line_aid.strip() - if cid: - agencies[cid].add(lid_s) - else: - # Root is a string: use line's companyId if present, otherwise use root + if has_root_company: + # Single company case: use line's companyId if present, otherwise use root if line_aid is not None and isinstance(line_aid, str): cid = line_aid.strip() if cid: agencies[cid].add(lid_s) - elif root_company_id: + else: agencies[root_company_id].add(lid_s) + else: + # Multiple companies case: line MUST have its own companyId + if line_aid is None or not isinstance(line_aid, str): + print(f'Warning: Line {lid_s} has no companyId and no root companyId found. Skipping.') + continue + cid = line_aid.strip() + if cid: + agencies[cid].add(lid_s) if isinstance(data, list): for company in data: