Procházet zdrojové kódy

Merge pull request #37 from DocSystem/dev

Better location parsing on Navigo cards
Luu před 11 měsíci
rodič
revize
c599a1f8bb
100 změnil soubory, kde provedl 427 přidání a 652 odebrání
  1. 48 0
      api/calypso/cards/intercode.c
  2. 4 0
      api/calypso/cards/intercode.h
  3. 132 114
      api/calypso/transit/navigo.c
  4. 0 8
      api/calypso/transit/navigo.h
  5. 9 12
      api/calypso/transit/navigo_lists.h
  6. 1 4
      files/navigo/stations/metro/stations_1.txt
  7. 1 1
      files/navigo/stations/metro/stations_10.txt
  8. 2 2
      files/navigo/stations/metro/stations_11.txt
  9. 4 3
      files/navigo/stations/metro/stations_12.txt
  10. 0 0
      files/navigo/stations/metro/stations_13.txt
  11. 1 1
      files/navigo/stations/metro/stations_14.txt
  12. 2 2
      files/navigo/stations/metro/stations_15.txt
  13. 0 0
      files/navigo/stations/metro/stations_16.txt
  14. 1 1
      files/navigo/stations/metro/stations_17.txt
  15. 2 2
      files/navigo/stations/metro/stations_18.txt
  16. 4 2
      files/navigo/stations/metro/stations_19.txt
  17. 3 2
      files/navigo/stations/metro/stations_2.txt
  18. 2 0
      files/navigo/stations/metro/stations_20.txt
  19. 2 2
      files/navigo/stations/metro/stations_21.txt
  20. 0 0
      files/navigo/stations/metro/stations_22.txt
  21. 5 1
      files/navigo/stations/metro/stations_23.txt
  22. 0 0
      files/navigo/stations/metro/stations_24.txt
  23. 5 4
      files/navigo/stations/metro/stations_25.txt
  24. 14 0
      files/navigo/stations/metro/stations_26.txt
  25. 7 0
      files/navigo/stations/metro/stations_27.txt
  26. 0 0
      files/navigo/stations/metro/stations_28.txt
  27. 4 3
      files/navigo/stations/metro/stations_29.txt
  28. 12 0
      files/navigo/stations/metro/stations_3.txt
  29. 2 0
      files/navigo/stations/metro/stations_30.txt
  30. 1 2
      files/navigo/stations/metro/stations_31.txt
  31. 2 2
      files/navigo/stations/metro/stations_4.txt
  32. 1 0
      files/navigo/stations/metro/stations_5.txt
  33. 2 3
      files/navigo/stations/metro/stations_6.txt
  34. 1 1
      files/navigo/stations/metro/stations_7.txt
  35. 0 0
      files/navigo/stations/metro/stations_8.txt
  36. 1 0
      files/navigo/stations/metro/stations_9.txt
  37. 0 9
      files/navigo/stations/ratp/stations_26.txt
  38. 0 5
      files/navigo/stations/ratp/stations_27.txt
  39. 0 9
      files/navigo/stations/ratp/stations_3.txt
  40. 0 3
      files/navigo/stations/sncf/stations_1.txt
  41. 0 1
      files/navigo/stations/sncf/stations_14.txt
  42. 0 1
      files/navigo/stations/sncf/stations_15.txt
  43. 0 11
      files/navigo/stations/sncf/stations_16.txt
  44. 0 8
      files/navigo/stations/sncf/stations_17.txt
  45. 0 23
      files/navigo/stations/sncf/stations_18.txt
  46. 0 19
      files/navigo/stations/sncf/stations_20.txt
  47. 0 40
      files/navigo/stations/sncf/stations_21.txt
  48. 0 7
      files/navigo/stations/sncf/stations_22.txt
  49. 0 5
      files/navigo/stations/sncf/stations_23.txt
  50. 0 11
      files/navigo/stations/sncf/stations_26.txt
  51. 0 3
      files/navigo/stations/sncf/stations_28.txt
  52. 0 1
      files/navigo/stations/sncf/stations_3.txt
  53. 0 19
      files/navigo/stations/sncf/stations_30.txt
  54. 0 5
      files/navigo/stations/sncf/stations_31.txt
  55. 0 18
      files/navigo/stations/sncf/stations_32.txt
  56. 0 6
      files/navigo/stations/sncf/stations_33.txt
  57. 0 25
      files/navigo/stations/sncf/stations_35.txt
  58. 0 22
      files/navigo/stations/sncf/stations_40.txt
  59. 0 11
      files/navigo/stations/sncf/stations_41.txt
  60. 0 13
      files/navigo/stations/sncf/stations_42.txt
  61. 0 18
      files/navigo/stations/sncf/stations_43.txt
  62. 0 19
      files/navigo/stations/sncf/stations_44.txt
  63. 0 4
      files/navigo/stations/sncf/stations_45.txt
  64. 0 25
      files/navigo/stations/sncf/stations_50.txt
  65. 0 13
      files/navigo/stations/sncf/stations_51.txt
  66. 0 9
      files/navigo/stations/sncf/stations_52.txt
  67. 0 12
      files/navigo/stations/sncf/stations_53.txt
  68. 0 12
      files/navigo/stations/sncf/stations_54.txt
  69. 0 12
      files/navigo/stations/sncf/stations_55.txt
  70. 0 4
      files/navigo/stations/sncf/stations_56.txt
  71. 0 2
      files/navigo/stations/sncf/stations_57.txt
  72. 0 2
      files/navigo/stations/sncf/stations_6.txt
  73. 0 19
      files/navigo/stations/sncf/stations_60.txt
  74. 0 14
      files/navigo/stations/sncf/stations_61.txt
  75. 0 2
      files/navigo/stations/sncf/stations_63.txt
  76. 0 8
      files/navigo/stations/sncf/stations_64.txt
  77. 0 9
      files/navigo/stations/sncf/stations_65.txt
  78. 0 4
      files/navigo/stations/sncf/stations_70.txt
  79. 0 2
      files/navigo/stations/sncf/stations_73.txt
  80. 0 7
      files/navigo/stations/sncf/stations_75.txt
  81. 0 8
      files/navigo/stations/sncf/stations_76.txt
  82. 2 0
      files/navigo/stations/train/stations_1.txt
  83. 1 0
      files/navigo/stations/train/stations_10.txt
  84. 1 0
      files/navigo/stations/train/stations_1017.txt
  85. 1 0
      files/navigo/stations/train/stations_14.txt
  86. 3 0
      files/navigo/stations/train/stations_15.txt
  87. 11 0
      files/navigo/stations/train/stations_16.txt
  88. 11 0
      files/navigo/stations/train/stations_17.txt
  89. 23 0
      files/navigo/stations/train/stations_18.txt
  90. 1 0
      files/navigo/stations/train/stations_19.txt
  91. 22 0
      files/navigo/stations/train/stations_20.txt
  92. 29 0
      files/navigo/stations/train/stations_21.txt
  93. 1 0
      files/navigo/stations/train/stations_22.txt
  94. 4 0
      files/navigo/stations/train/stations_23.txt
  95. 12 0
      files/navigo/stations/train/stations_26.txt
  96. 3 0
      files/navigo/stations/train/stations_28.txt
  97. 1 0
      files/navigo/stations/train/stations_29.txt
  98. 1 0
      files/navigo/stations/train/stations_3.txt
  99. 20 0
      files/navigo/stations/train/stations_30.txt
  100. 5 0
      files/navigo/stations/train/stations_31.txt

+ 48 - 0
api/calypso/cards/intercode.c

@@ -609,6 +609,54 @@ const char* get_intercode_string_transition_type(int transition) {
     }
 }
 
+const char* get_intercode_string_transport_type(int type) {
+    switch(type) {
+    case URBAN_BUS:
+        return "Urban Bus";
+    case INTERURBAN_BUS:
+        return "Interurban Bus";
+    case METRO:
+        return "Metro";
+    case TRAM:
+        return "Tram";
+    case COMMUTER_TRAIN:
+        return "Train";
+    case PARKING:
+        return "Parking";
+    default:
+        return "Unknown";
+    }
+}
+
+const char* get_intercode_string_pay_method(int pay_method) {
+    switch(pay_method) {
+    case 0x30:
+        return "Apple Pay/Google Pay";
+    case 0x80:
+        return "Debit PME";
+    case 0x90:
+        return "Cash";
+    case 0xA0:
+        return "Mobility Check";
+    case 0xB3:
+        return "Payment Card";
+    case 0xA4:
+        return "Check";
+    case 0xA5:
+        return "Vacation Check";
+    case 0xB7:
+        return "Telepayment";
+    case 0xD0:
+        return "Remote Payment";
+    case 0xD7:
+        return "Voucher, Prepayment, Exchange Voucher, Travel Voucher";
+    case 0xD9:
+        return "Discount Voucher";
+    default:
+        return "Unknown";
+    }
+}
+
 const char* get_intercode_string_event_result(int result) {
     switch(result) {
     case 0x0:

+ 4 - 0
api/calypso/cards/intercode.h

@@ -13,6 +13,10 @@ CalypsoApp* get_intercode_structure_counter();
 
 const char* get_intercode_string_transition_type(int transition);
 
+const char* get_intercode_string_transport_type(int type);
+
+const char* get_intercode_string_pay_method(int pay_method);
+
 const char* get_intercode_string_event_result(int result);
 
 const char* get_intercode_string_version(int version);

+ 132 - 114
api/calypso/transit/navigo.c

@@ -2,27 +2,6 @@
 #include "navigo_lists.h"
 #include "../../../metroflip_i.h"
 
-const char* get_navigo_transport_type(int type) {
-    switch(type) {
-    case URBAN_BUS:
-        return "Urban Bus";
-    case INTERURBAN_BUS:
-        return "Interurban Bus";
-    case METRO:
-        return "Metro";
-    case TRAM:
-        return "Tram";
-    case COMMUTER_TRAIN:
-        return "Train";
-    case PARKING:
-        return "Parking";
-    case EXPRESS_COMMUTER_TRAIN:
-        return "TER";
-    default:
-        return "Unknown";
-    }
-}
-
 const char* get_navigo_service_provider(int provider) {
     switch(provider) {
     case NAVIGO_PROVIDER_SNCF:
@@ -50,23 +29,6 @@ const char* get_navigo_service_provider(int provider) {
     }
 }
 
-const char* get_navigo_type(int type) {
-    switch(type) {
-    case NAVIGO_EASY:
-        return "Navigo Easy";
-    case NAVIGO_DECOUVERTE:
-        return "Navigo Decouverte";
-    case NAVIGO_STANDARD:
-        return "Navigo Standard";
-    case NAVIGO_INTEGRAL:
-        return "Navigo Integral";
-    case IMAGINE_R:
-        return "Imagine R";
-    default:
-        return "Navigo";
-    }
-}
-
 const char* get_navigo_tariff(int tariff) {
     switch(tariff) {
     case 0x0000:
@@ -123,39 +85,6 @@ const char* get_navigo_tariff(int tariff) {
     }
 }
 
-bool is_ticket_count_available(int tariff) {
-    return tariff >= 0x5000 && tariff <= 0x501b;
-}
-
-const char* get_pay_method(int pay_method) {
-    switch(pay_method) {
-    case 0x30:
-        return "Apple Pay/Google Pay";
-    case 0x80:
-        return "Debit PME";
-    case 0x90:
-        return "Cash";
-    case 0xA0:
-        return "Mobility Check";
-    case 0xB3:
-        return "Payment Card";
-    case 0xA4:
-        return "Check";
-    case 0xA5:
-        return "Vacation Check";
-    case 0xB7:
-        return "Telepayment";
-    case 0xD0:
-        return "Remote Payment";
-    case 0xD7:
-        return "Voucher, Prepayment, Exchange Voucher, Travel Voucher";
-    case 0xD9:
-        return "Discount Voucher";
-    default:
-        return "Unknown";
-    }
-}
-
 const char* get_zones(int* zones) {
     if(zones[0] && zones[4]) {
         return "All Zones (1-5)";
@@ -218,9 +147,9 @@ char* get_navigo_station(
     int station_group_id,
     int station_id,
     int station_sub_id,
-    int service_provider) {
-    switch(service_provider) {
-    case NAVIGO_PROVIDER_SNCF: {
+    int transport_type) {
+    switch(transport_type) {
+    case COMMUTER_TRAIN: {
         if(station_group_id < 77 && station_id < 19) {
             char* file_path = malloc(256 * sizeof(char));
             if(!file_path) {
@@ -229,7 +158,7 @@ char* get_navigo_station(
             snprintf(
                 file_path,
                 256,
-                APP_ASSETS_PATH("navigo/stations/sncf/stations_%d.txt"),
+                APP_ASSETS_PATH("navigo/stations/train/stations_%d.txt"),
                 station_group_id);
             const char* sncf_stations_path = file_path;
             Storage* storage = furi_record_open(RECORD_STORAGE);
@@ -262,7 +191,7 @@ char* get_navigo_station(
                     free(string_line_copy);
                 }
             } else {
-                FURI_LOG_E("Metroflip:Scene:Calypso", "Failed to open sncf_stations.txt");
+                FURI_LOG_E("Metroflip:Scene:Calypso", "Failed to open train stations file");
             }
 
             furi_string_free(line);
@@ -282,8 +211,73 @@ char* get_navigo_station(
         snprintf(station, 10, "%d-%d-%d", station_group_id, station_id, station_sub_id);
         return station;
     }
-    case NAVIGO_PROVIDER_RATP:
-    case NAVIGO_PROVIDER_ORA: {
+    case TRAM: {
+        char* file_path = malloc(256 * sizeof(char));
+        if(!file_path) {
+            return "Unknown";
+        }
+        snprintf(
+            file_path,
+            256,
+            APP_ASSETS_PATH("navigo/stations/tram/stations_%d.txt"),
+            station_group_id);
+        const char* sncf_stations_path = file_path;
+        Storage* storage = furi_record_open(RECORD_STORAGE);
+
+        Stream* stream = file_stream_alloc(storage);
+        FuriString* line = furi_string_alloc();
+
+        char* found_station_name = NULL;
+
+        if(file_stream_open(stream, sncf_stations_path, FSAM_READ, FSOM_OPEN_EXISTING)) {
+            while(stream_read_line(stream, line)) {
+                // file is in csv format: station_id,station_sub_id,station_name
+                // search for the station
+                furi_string_replace_all(line, "\r", "");
+                furi_string_replace_all(line, "\n", "");
+                const char* string_line = furi_string_get_cstr(line);
+                char* string_line_copy = strdup(string_line);
+                if(!string_line_copy) {
+                    return "Unknown";
+                }
+                int line_station_id = atoi(get_token(string_line_copy, ",", string_line_copy));
+                int line_station_sub_id = atoi(get_token(string_line_copy, ",", string_line_copy));
+                if(line_station_id == station_id && line_station_sub_id == station_sub_id) {
+                    found_station_name =
+                        strdup(get_token(string_line_copy, ",", string_line_copy));
+                    free(string_line_copy);
+                    break;
+                }
+                free(string_line_copy);
+            }
+        } else {
+            FURI_LOG_E("Metroflip:Scene:Calypso", "Failed to open tram stations file");
+        }
+
+        furi_string_free(line);
+        file_stream_close(stream);
+        stream_free(stream);
+        free(file_path);
+
+        if(found_station_name) {
+            return found_station_name;
+        }
+
+        // cast station_group_id-station_id-station_sub_id to a string
+        char* station = malloc(12 * sizeof(char));
+        if(!station) {
+            return "Unknown";
+        }
+        if(station_sub_id != 0) {
+            snprintf(station, 10, "%d-%d-%d", station_group_id, station_id, station_sub_id);
+        } else if(station_id != 0) {
+            snprintf(station, 10, "%d-%d", station_group_id, station_id);
+        } else {
+            snprintf(station, 10, "%d", station_group_id);
+        }
+        return station;
+    }
+    case METRO: {
         if(station_group_id < 32 && station_id < 16) {
             char* file_path = malloc(256 * sizeof(char));
             if(!file_path) {
@@ -292,7 +286,7 @@ char* get_navigo_station(
             snprintf(
                 file_path,
                 256,
-                APP_ASSETS_PATH("navigo/stations/ratp/stations_%d.txt"),
+                APP_ASSETS_PATH("navigo/stations/metro/stations_%d.txt"),
                 station_group_id);
             const char* ratp_stations_path = file_path;
             Storage* storage = furi_record_open(RECORD_STORAGE);
@@ -323,7 +317,7 @@ char* get_navigo_station(
                     free(string_line_copy);
                 }
             } else {
-                FURI_LOG_E("Metroflip:Scene:Calypso", "Failed to open ratp_stations.txt");
+                FURI_LOG_E("Metroflip:Scene:Calypso", "Failed to open metro stations file");
             }
 
             furi_string_free(line);
@@ -340,7 +334,13 @@ char* get_navigo_station(
         if(!station) {
             return "Unknown";
         }
-        snprintf(station, 10, "%d-%d", station_group_id, station_id);
+        if(station_sub_id != 0) {
+            snprintf(station, 10, "%d-%d-%d", station_group_id, station_id, station_sub_id);
+        } else if(station_id != 0) {
+            snprintf(station, 10, "%d-%d", station_group_id, station_id);
+        } else {
+            snprintf(station, 10, "%d", station_group_id);
+        }
         return station;
     }
     default: {
@@ -349,22 +349,28 @@ char* get_navigo_station(
         if(!station) {
             return "Unknown";
         }
-        snprintf(station, 10, "%d-%d", station_group_id, station_id);
+        if(station_sub_id != 0) {
+            snprintf(station, 10, "%d-%d-%d", station_group_id, station_id, station_sub_id);
+        } else if(station_id != 0) {
+            snprintf(station, 10, "%d-%d", station_group_id, station_id);
+        } else {
+            snprintf(station, 10, "%d", station_group_id);
+        }
         return station;
     }
     }
 }
 
-const char* get_navigo_sncf_train_line(int station_group_id) {
-    if(station_group_id < 77) {
-        return NAVIGO_SNCF_TRAIN_LINES_LIST[station_group_id];
-    }
-    return "Unknown";
+char* get_navigo_train_sector(int station_group_id) {
+    // group id is in format XY where X is the sector
+    const char* station_name = NAVIGO_SNCF_SECTORS_LIST[station_group_id / 10];
+    return strdup(station_name);
 }
 
 const char* get_navigo_tram_line(int route_number) {
     switch(route_number) {
     case 1:
+    case 13:
         return "T3a";
     case 9:
         return "T9";
@@ -391,9 +397,15 @@ void show_navigo_event_info(
         furi_string_cat_printf(parsed_data, "No event data\n");
         return;
     }
+    int navigo_station_type = event->transport_type;
     char* station = get_navigo_station(
-        event->station_group_id, event->station_id, event->station_sub_id, event->service_provider);
-    char* sector = get_navigo_station(event->station_group_id, 0, 0, event->service_provider);
+        event->station_group_id, event->station_id, event->station_sub_id, navigo_station_type);
+    char* sector = NULL;
+    if(navigo_station_type == COMMUTER_TRAIN || navigo_station_type == TRAM) {
+        sector = get_navigo_train_sector(event->station_group_id);
+    } else {
+        sector = get_navigo_station(event->station_group_id, 0, 0, navigo_station_type);
+    }
 
     if(event->transport_type == URBAN_BUS || event->transport_type == INTERURBAN_BUS ||
        event->transport_type == METRO || event->transport_type == TRAM) {
@@ -402,20 +414,20 @@ void show_navigo_event_info(
                 furi_string_cat_printf(
                     parsed_data,
                     "%s 3 bis\n%s\n",
-                    get_navigo_transport_type(event->transport_type),
+                    get_intercode_string_transport_type(event->transport_type),
                     get_intercode_string_transition_type(event->transition));
             } else if(event->transport_type == TRAM) {
                 furi_string_cat_printf(
                     parsed_data,
                     "%s %s\n%s\n",
-                    get_navigo_transport_type(event->transport_type),
+                    get_intercode_string_transport_type(event->transport_type),
                     get_navigo_tram_line(event->route_number),
                     get_intercode_string_transition_type(event->transition));
             } else {
                 furi_string_cat_printf(
                     parsed_data,
                     "%s %d\n%s\n",
-                    get_navigo_transport_type(event->transport_type),
+                    get_intercode_string_transport_type(event->transport_type),
                     event->route_number,
                     get_intercode_string_transition_type(event->transition));
             }
@@ -423,7 +435,7 @@ void show_navigo_event_info(
             furi_string_cat_printf(
                 parsed_data,
                 "%s\n%s\n",
-                get_navigo_transport_type(event->transport_type),
+                get_intercode_string_transport_type(event->transport_type),
                 get_intercode_string_transition_type(event->transition));
         }
         furi_string_cat_printf(
@@ -462,21 +474,20 @@ void show_navigo_event_info(
             furi_string_cat_printf(
                 parsed_data,
                 "RER %c\n%s\n",
-                (65 + event->route_number - 17),
+                (65 + event->route_number - 16),
                 get_intercode_string_transition_type(event->transition));
         } else {
             furi_string_cat_printf(
                 parsed_data,
-                "%s %s\n%s\n",
-                get_navigo_transport_type(event->transport_type),
-                get_navigo_sncf_train_line(event->station_group_id),
+                "%s\n%s\n",
+                get_intercode_string_transport_type(event->transport_type),
                 get_intercode_string_transition_type(event->transition));
         }
         furi_string_cat_printf(
             parsed_data,
             "Transporter: %s\n",
             get_navigo_service_provider(event->service_provider));
-        furi_string_cat_printf(parsed_data, "Station: %s\n", station);
+        furi_string_cat_printf(parsed_data, "Station: %s\nSector: %s\n", station, sector);
         if(event->location_gate_available) {
             furi_string_cat_printf(parsed_data, "Gate: %d\n", event->location_gate);
         }
@@ -506,13 +517,13 @@ void show_navigo_event_info(
         furi_string_cat_printf(
             parsed_data,
             "%s - %s\n",
-            get_navigo_transport_type(event->transport_type),
+            get_intercode_string_transport_type(event->transport_type),
             get_intercode_string_transition_type(event->transition));
         furi_string_cat_printf(
             parsed_data,
             "Transporter: %s\n",
             get_navigo_service_provider(event->service_provider));
-        furi_string_cat_printf(parsed_data, "Station: %s\n", station);
+        furi_string_cat_printf(parsed_data, "Station: %s\nSector: %s\n", station, sector);
         if(event->location_gate_available) {
             furi_string_cat_printf(parsed_data, "Gate: %d\n", event->location_gate);
         }
@@ -541,9 +552,15 @@ void show_navigo_event_info(
 }
 
 void show_navigo_special_event_info(NavigoCardSpecialEvent* event, FuriString* parsed_data) {
+    int navigo_station_type = event->transport_type;
     char* station = get_navigo_station(
-        event->station_group_id, event->station_id, event->station_sub_id, event->service_provider);
-    char* sector = get_navigo_station(event->station_group_id, 0, 0, event->service_provider);
+        event->station_group_id, event->station_id, event->station_sub_id, navigo_station_type);
+    char* sector = NULL;
+    if(navigo_station_type == COMMUTER_TRAIN || navigo_station_type == TRAM) {
+        sector = get_navigo_train_sector(event->station_group_id);
+    } else {
+        sector = get_navigo_station(event->station_group_id, 0, 0, navigo_station_type);
+    }
 
     if(event->transport_type == URBAN_BUS || event->transport_type == INTERURBAN_BUS ||
        event->transport_type == METRO || event->transport_type == TRAM) {
@@ -552,20 +569,20 @@ void show_navigo_special_event_info(NavigoCardSpecialEvent* event, FuriString* p
                 furi_string_cat_printf(
                     parsed_data,
                     "%s 3 bis\n%s\n",
-                    get_navigo_transport_type(event->transport_type),
+                    get_intercode_string_transport_type(event->transport_type),
                     get_intercode_string_transition_type(event->transition));
             } else if(event->transport_type == TRAM) {
                 furi_string_cat_printf(
                     parsed_data,
                     "%s %s\n%s\n",
-                    get_navigo_transport_type(event->transport_type),
+                    get_intercode_string_transport_type(event->transport_type),
                     get_navigo_tram_line(event->route_number),
                     get_intercode_string_transition_type(event->transition));
             } else {
                 furi_string_cat_printf(
                     parsed_data,
                     "%s %d\n%s\n",
-                    get_navigo_transport_type(event->transport_type),
+                    get_intercode_string_transport_type(event->transport_type),
                     event->route_number,
                     get_intercode_string_transition_type(event->transition));
             }
@@ -573,7 +590,7 @@ void show_navigo_special_event_info(NavigoCardSpecialEvent* event, FuriString* p
             furi_string_cat_printf(
                 parsed_data,
                 "%s\n%s\n",
-                get_navigo_transport_type(event->transport_type),
+                get_intercode_string_transport_type(event->transport_type),
                 get_intercode_string_transition_type(event->transition));
         }
         furi_string_cat_printf(
@@ -593,14 +610,13 @@ void show_navigo_special_event_info(NavigoCardSpecialEvent* event, FuriString* p
             furi_string_cat_printf(
                 parsed_data,
                 "RER %c\n%s\n",
-                (65 + event->route_number - 17),
+                (65 + event->route_number - 16),
                 get_intercode_string_transition_type(event->transition));
         } else {
             furi_string_cat_printf(
                 parsed_data,
-                "%s %s\n%s\n",
-                get_navigo_transport_type(event->transport_type),
-                get_navigo_sncf_train_line(event->station_group_id),
+                "%s\n%s\n",
+                get_intercode_string_transport_type(event->transport_type),
                 get_intercode_string_transition_type(event->transition));
         }
         furi_string_cat_printf(
@@ -609,7 +625,7 @@ void show_navigo_special_event_info(NavigoCardSpecialEvent* event, FuriString* p
             parsed_data,
             "Transporter: %s\n",
             get_navigo_service_provider(event->service_provider));
-        furi_string_cat_printf(parsed_data, "Station: %s\n", station);
+        furi_string_cat_printf(parsed_data, "Station: %s\nSector: %s\n", station, sector);
         if(event->device_available) {
             if(event->service_provider == NAVIGO_PROVIDER_SNCF) {
                 furi_string_cat_printf(parsed_data, "Device: %d\n", event->device & 0xFF);
@@ -623,7 +639,7 @@ void show_navigo_special_event_info(NavigoCardSpecialEvent* event, FuriString* p
         furi_string_cat_printf(
             parsed_data,
             "%s - %s\n",
-            get_navigo_transport_type(event->transport_type),
+            get_intercode_string_transport_type(event->transport_type),
             get_intercode_string_transition_type(event->transition));
         furi_string_cat_printf(
             parsed_data, "Result: %s\n", get_intercode_string_event_result(event->result));
@@ -631,7 +647,7 @@ void show_navigo_special_event_info(NavigoCardSpecialEvent* event, FuriString* p
             parsed_data,
             "Transporter: %s\n",
             get_navigo_service_provider(event->service_provider));
-        furi_string_cat_printf(parsed_data, "Station: %s\n", station);
+        furi_string_cat_printf(parsed_data, "Station: %s\nSector: %s\n", station, sector);
         if(event->device_available) {
             furi_string_cat_printf(parsed_data, "Device: %d\n", event->device);
         }
@@ -670,7 +686,9 @@ void show_navigo_contract_info(NavigoCardContract* contract, FuriString* parsed_
     }
     if(contract->pay_method_available) {
         furi_string_cat_printf(
-            parsed_data, "Payment Method: %s\n", get_pay_method(contract->pay_method));
+            parsed_data,
+            "Payment Method: %s\n",
+            get_intercode_string_pay_method(contract->pay_method));
     }
     if(contract->zones_available) {
         furi_string_cat_printf(parsed_data, "%s\n", get_zones(contract->zones));

+ 0 - 8
api/calypso/transit/navigo.h

@@ -39,14 +39,6 @@ void show_navigo_environment_info(
     NavigoCardHolder* holder,
     FuriString* parsed_data);
 
-typedef enum {
-    NAVIGO_EASY = 0,
-    NAVIGO_DECOUVERTE = 1,
-    NAVIGO_STANDARD = 2,
-    NAVIGO_INTEGRAL = 6,
-    IMAGINE_R = 14
-} NAVIGO_CARD_STATUS;
-
 typedef enum {
     NAVIGO_PROVIDER_SNCF = 2,
     NAVIGO_PROVIDER_RATP = 3,

+ 9 - 12
api/calypso/transit/navigo_lists.h

@@ -1,17 +1,14 @@
 #ifndef NAVIGO_LISTS_H
 #define NAVIGO_LISTS_H
 
-static const char* NAVIGO_SNCF_TRAIN_LINES_LIST[77] = {
-    [1] = "RER B",         [3] = "RER B",         [6] = "RER A",         [14] = "RER B",
-    [15] = "RER B",        [16] = "RER A",        [17] = "RER A",        [18] = "RER B",
-    [20] = "Transilien P", [21] = "Transilien P", [22] = "T4",           [23] = "Transilien P",
-    [26] = "RER A",        [28] = "RER B",        [30] = "Transilien L", [31] = "Transilien L",
-    [32] = "Transilien J", [33] = "RER A",        [35] = "Transilien J", [40] = "RER D",
-    [41] = "RER C",        [42] = "RER C",        [43] = "Transilien R", [44] = "Transilien R",
-    [45] = "RER D",        [50] = "Transilien H", [51] = "Transilien K", [52] = "RER D",
-    [53] = "Transilien H", [54] = "Transilien J", [55] = "RER C",        [56] = "Transilien H",
-    [57] = "Transilien H", [60] = "Transilien N", [61] = "Transilien N", [63] = "RER C",
-    [64] = "RER C",        [65] = "Transilien V", [70] = "RER B",        [72] = "Transilien J",
-    [73] = "Transilien J", [75] = "RER C",        [76] = "RER C"};
+static const char* NAVIGO_SNCF_SECTORS_LIST[8] = {
+    "Intramuros",
+    "RATP",
+    "Est",
+    "St Lazare",
+    "Sud-Est + Austerlitz",
+    "Nord",
+    "Montparnasse",
+    "Unknown"};
 
 #endif

+ 1 - 4
files/navigo/stations/ratp/stations_1.txt → files/navigo/stations/metro/stations_1.txt

@@ -1,12 +1,9 @@
 0,Cite
 1,Saint-Michel
 4,Odeon
-5,Cluny - La Sorbonne
 6,Maubert - Mutualite
-7,Luxembourg
-8,Châtelet
+8,Chatelet
 9,Les Halles
-10,Les Halles
 12,Louvre - Rivoli
 13,Pont Neuf
 14,Cite

+ 1 - 1
files/navigo/stations/ratp/stations_10.txt → files/navigo/stations/metro/stations_10.txt

@@ -8,5 +8,5 @@
 9,Invalides
 11,Saint-Denis - Universite
 12,Varenne
-13,Assemblee nationale
+13,Assemblee Nationale
 14,Solferino

+ 2 - 2
files/navigo/stations/ratp/stations_11.txt → files/navigo/stations/metro/stations_11.txt

@@ -7,7 +7,7 @@
 7,Richelieu - Drouot
 8,Bonne Nouvelle
 10,Strasbourg - Saint-Denis
-11,Château d'Eau
+11,Chateau d'Eau
 13,Sentier
 14,Reaumur - Sebastopol
-15,etienne Marcel
+15,Etienne Marcel

+ 4 - 3
files/navigo/stations/ratp/stations_12.txt → files/navigo/stations/metro/stations_12.txt

@@ -7,9 +7,10 @@
 6,Cardinal Lemoine
 7,Jussieu
 8,Sully - Morland
-9,Pont Marie
-10,Saint-Paul
+9,Pont Marie (Cite des Arts)
+10,Saint-Paul (Le Marais)
+11,Bastille
 12,Bastille
 13,Chemin Vert
-14,Breguet - Sabin
+14,Breguet-Sabin
 15,Ledru-Rollin

+ 0 - 0
files/navigo/stations/ratp/stations_13.txt → files/navigo/stations/metro/stations_13.txt


+ 1 - 1
files/navigo/stations/ratp/stations_14.txt → files/navigo/stations/metro/stations_14.txt

@@ -1,7 +1,7 @@
 0,Italie
 2,Porte de Choisy
 3,Porte d'Italie
-4,Cite universitaire
+8,Maison Blanche
 9,Maison Blanche
 10,Tolbiac
 11,Nationale

+ 2 - 2
files/navigo/stations/ratp/stations_15.txt → files/navigo/stations/metro/stations_15.txt

@@ -1,12 +1,12 @@
 0,Denfert
 1,Cour Saint-Emilion
 2,Porte d'Orleans
-3,Bibliotheque François Mitterrand
+3,Bibliotheque Francois Mitterrand
 4,Mouton-Duvernet
 5,Alesia
 6,Olympiades
+7,Mairie de Montrouge
 8,Glaciere
 9,Saint-Jacques
 10,Raspail
-13,Denfert-Rochereau
 14,Denfert-Rochereau

+ 0 - 0
files/navigo/stations/ratp/stations_16.txt → files/navigo/stations/metro/stations_16.txt


+ 1 - 1
files/navigo/stations/ratp/stations_17.txt → files/navigo/stations/metro/stations_17.txt

@@ -2,7 +2,7 @@
 2,Porte Dauphine
 4,La Motte-Picquet - Grenelle
 5,Commerce
-6,Avenue emile Zola
+6,Avenue Emile Zola
 7,Dupleix
 8,Passy
 9,Ranelagh

+ 2 - 2
files/navigo/stations/ratp/stations_18.txt → files/navigo/stations/metro/stations_18.txt

@@ -2,12 +2,12 @@
 1,Iena
 3,Alma - Marceau
 4,Miromesnil
-5,Saint-Philippe du Roule
+5,Saint-Philippe-du-Roule
 7,Franklin D. Roosevelt
 8,George V
 9,Kleber
 10,Victor Hugo
 11,Argentine
-12,Charles de Gaulle - Itoile
+12,Charles de Gaulle - Etoile
 14,Ternes
 15,Courcelles

+ 4 - 2
files/navigo/stations/ratp/stations_19.txt → files/navigo/stations/metro/stations_19.txt

@@ -2,8 +2,10 @@
 1,Mairie de Clichy
 2,Gabriel Peri
 3,Les Agnettes
-4,Asnieres - Gennevilliers - Les Courtilles
-9,La Chapelle
+4,Asnieres - Gennevilliers Les Courtilles
+5,Saint-Ouen
+6,Mairie de Saint-Ouen
+7,Saint-Denis - Pleyel
 10,Garibaldi
 11,Mairie de Saint-Ouen
 13,Carrefour Pleyel

+ 3 - 2
files/navigo/stations/ratp/stations_2.txt → files/navigo/stations/metro/stations_2.txt

@@ -1,8 +1,9 @@
 0,Rennes
+1,Hotel de Ville
 2,Cambronne
-3,Sevres - Lecourbe
+3,Sevres-Lecourbe
 4,Segur
-6,Saint-François-Xavier
+6,Saint-Francois-Xavier
 7,Duroc
 8,Vaneau
 9,Sevres - Babylone

+ 2 - 0
files/navigo/stations/ratp/stations_20.txt → files/navigo/stations/metro/stations_20.txt

@@ -1,7 +1,9 @@
 0,Montmartre
 1,Porte de Clignancourt
+5,Mairie d'Aubervilliers
 6,Porte de la Chapelle
 7,Marx Dormoy
+8,Front Populaire
 9,Marcadet - Poissonniers
 10,Simplon
 11,Jules Joffrin

+ 2 - 2
files/navigo/stations/ratp/stations_21.txt → files/navigo/stations/metro/stations_21.txt

@@ -2,9 +2,9 @@
 1,Chaussee d'Antin - La Fayette
 2,Le Peletier
 3,Cadet
-4,Château Rouge
+4,Chateau Rouge
 7,Barbes - Rochechouart
 8,Gare du Nord
 9,Gare de l'Est
 10,Poissonniere
-11,Château-Landon
+11,Chateau Landon

+ 0 - 0
files/navigo/stations/ratp/stations_22.txt → files/navigo/stations/metro/stations_22.txt


+ 5 - 1
files/navigo/stations/ratp/stations_23.txt → files/navigo/stations/metro/stations_23.txt

@@ -1,12 +1,16 @@
 0,Belleville
+1,Rosny-Bois-Perrier
 2,Porte des Lilas
 3,Mairie des Lilas
 4,Porte de Bagnolet
 5,Gallieni
+6,Coteaux Beauclair
+7,Serge Gainsbourg
 8,Place des Fetes
 9,Botzaris
 10,Danube
-11,Pre Saint-Gervais
+11,Pre-Saint-Gervais
+12,Romainville-Carnot
 13,Buttes Chaumont
 14,Jourdain
 15,Telegraphe

+ 0 - 0
files/navigo/stations/ratp/stations_24.txt → files/navigo/stations/metro/stations_24.txt


+ 5 - 4
files/navigo/stations/ratp/stations_25.txt → files/navigo/stations/metro/stations_25.txt

@@ -2,13 +2,14 @@
 2,Croix de Chavaux
 3,Mairie de Montreuil
 4,Maisons-Alfort - Les Juilliottes
-5,Creteil - L'echat
+5,Creteil - L'Echat
 6,Creteil - Universite
 7,Creteil - Prefecture
 8,Saint-Mande
+9,Pointe du Lac
 10,Berault
-11,Château de Vincennes
+11,Chateau de Vincennes
 12,Liberte
-13,Charenton - ecoles
-14,Ecole veterinaire de Maisons-Alfort
+13,Charenton - Ecoles
+14,Ecole Veterinaire de Maisons-Alfort
 15,Maisons-Alfort - Stade

+ 14 - 0
files/navigo/stations/metro/stations_26.txt

@@ -0,0 +1,14 @@
+0,Ivry - Villejuif
+3,Porte d'Ivry
+4,Pierre et Marie Curie
+5,Mairie d'Ivry
+6,Le Kremlin-Bicetre
+7,Villejuif Leo Lagrange
+8,Villejuif Paul Vaillant-Couturier
+9,Villejuif - Louis Aragon
+10,Hopital Bicetre
+11,Villejuif - Gustave Roussy
+12,L'Hay-les-Roses
+13,Chevilly-Larue  (Marche International )
+14,Thiais - Orly  (Pont de Rungis )
+15,Aeroport d'Orly

+ 7 - 0
files/navigo/stations/metro/stations_27.txt

@@ -0,0 +1,7 @@
+0,Vanves
+2,Porte de Vanves
+3,Barbara
+4,Bagneux - Lucie Aubrac
+7,Malakoff - Plateau de Vanves
+8,Malakoff - Rue Etienne Dolet
+9,Chatillon-Montrouge

+ 0 - 0
files/navigo/stations/ratp/stations_28.txt → files/navigo/stations/metro/stations_28.txt


+ 4 - 3
files/navigo/stations/ratp/stations_29.txt → files/navigo/stations/metro/stations_29.txt

@@ -1,10 +1,11 @@
 0,Levallois
-4,Boulogne - Jean Jaures
-5,Boulogne - Pont de Saint-Cloud
+4,Boulogne Jean Jaures
+5,Antony
+5,Boulogne Pont de Saint-Cloud
 8,Les Sablons
 9,Pont de Neuilly
 10,Esplanade de la Defense
-11,La Defense
+11,La Defense (Grande Arche)
 12,Porte de Champerret
 13,Louise Michel
 14,Anatole France

+ 12 - 0
files/navigo/stations/metro/stations_3.txt

@@ -0,0 +1,12 @@
+0,Villette
+1,Aime Cesaire
+4,Porte de la Villette
+5,Aubervilliers-Pantin Quatre Chemins
+6,Fort d'Aubervilliers
+7,La Courneuve - 8 Mai 1945
+9,Hoche
+10,Eglise de Pantin
+11,Bobigny-Pantin - Raymond Queneau
+12,Bobigny Pablo Picasso
+13,Montreuil - Hopital
+14,La Dhuys

+ 2 - 0
files/navigo/stations/ratp/stations_30.txt → files/navigo/stations/metro/stations_30.txt

@@ -2,6 +2,8 @@
 1,Porte Maillot
 4,Wagram
 5,Pereire
+6,Pont Cardinet
+7,Porte de Clichy
 8,Brochant
 9,Porte de Clichy
 12,Guy Moquet

+ 1 - 2
files/navigo/stations/ratp/stations_31.txt → files/navigo/stations/metro/stations_31.txt

@@ -1,6 +1,5 @@
 0,Pigalle
-2,Funiculaire de Montmartre (station inferieure)
-3,Funiculaire de Montmartre (station superieure)
+2,Funiculaire de Montmartre
 4,Anvers
 5,Abbesses
 6,Pigalle

+ 2 - 2
files/navigo/stations/ratp/stations_4.txt → files/navigo/stations/metro/stations_4.txt

@@ -4,6 +4,6 @@
 4,Gaite
 6,Edgar Quinet
 7,Vavin
-8,Montparnasse - Bienvenue
+8,Montparnasse Bienvenue
 12,Saint-Placide
-14,Notre-Dame-des-Champs
+14,Notre-Dame des Champs

+ 1 - 0
files/navigo/stations/ratp/stations_5.txt → files/navigo/stations/metro/stations_5.txt

@@ -7,5 +7,6 @@
 7,Porte de Vincennes
 9,Picpus
 10,Nation
+11,Nation
 12,Avron
 13,Alexandre Dumas

+ 2 - 3
files/navigo/stations/ratp/stations_6.txt → files/navigo/stations/metro/stations_6.txt

@@ -2,10 +2,9 @@
 1,Malesherbes
 2,Monceau
 3,Villiers
-4,Quatre-Septembre
+4,Quatre Septembre
 5,Opera
-6,Auber
-7,Havre - Caumartin
+7,Havre-Caumartin
 8,Saint-Lazare
 9,Saint-Lazare
 10,Saint-Augustin

+ 1 - 1
files/navigo/stations/ratp/stations_7.txt → files/navigo/stations/metro/stations_7.txt

@@ -4,7 +4,7 @@
 8,Eglise d'Auteuil
 9,Michel-Ange - Auteuil
 10,Michel-Ange - Molitor
-11,Chardon-Lagache
+11,Chardon Lagache
 12,Mirabeau
 14,Exelmans
 15,Jasmin

+ 0 - 0
files/navigo/stations/ratp/stations_8.txt → files/navigo/stations/metro/stations_8.txt


+ 1 - 0
files/navigo/stations/ratp/stations_9.txt → files/navigo/stations/metro/stations_9.txt

@@ -5,3 +5,4 @@
 7,Gare d'Austerlitz
 8,Gare de Lyon
 10,Quai de la Rapee
+14,Gare de Lyon

+ 0 - 9
files/navigo/stations/ratp/stations_26.txt

@@ -1,9 +0,0 @@
-0,Ivry - Villejuif
-3,Porte d'Ivry
-4,Pierre et Marie Curie
-5,Mairie d'Ivry
-6,Le Kremlin-Bicetre
-7,Villejuif - Leo Lagrange
-8,Villejuif - Paul Vaillant-Couturier
-9,Villejuif - Louis Aragon
-11,Villejuif - Institut Gustave Roussy

+ 0 - 5
files/navigo/stations/ratp/stations_27.txt

@@ -1,5 +0,0 @@
-0,Vanves
-2,Porte de Vanves
-7,Malakoff - Plateau de Vanves
-8,Malakoff - Rue etienne Dolet
-9,Châtillon - Montrouge

+ 0 - 9
files/navigo/stations/ratp/stations_3.txt

@@ -1,9 +0,0 @@
-0,Villette
-4,Porte de la Villette
-5,Aubervilliers - Pantin - Quatre Chemins
-6,Fort d'Aubervilliers
-7,La Courneuve - 8 Mai 1945
-9,Hoche
-10,Eglise de Pantin
-11,Bobigny - Pantin - Raymond Queneau
-12,Bobigny - Pablo Picasso

+ 0 - 3
files/navigo/stations/sncf/stations_1.txt

@@ -1,3 +0,0 @@
-0,1,Chatelet-Les Halles
-1,1,Chatelet-Les Halles
-7,1,Luxembourg

+ 0 - 1
files/navigo/stations/sncf/stations_14.txt

@@ -1 +0,0 @@
-4,1,Cite Universitaire

+ 0 - 1
files/navigo/stations/sncf/stations_15.txt

@@ -1 +0,0 @@
-12,1,Port Royal

+ 0 - 11
files/navigo/stations/sncf/stations_16.txt

@@ -1,11 +0,0 @@
-1,1,Nation
-2,1,Fontenay-sous-Bois
-2,2,Vincennes
-3,1,Joinville-le-Pont
-3,2,Nogent-sur-Marne
-4,1,Saint-Maur Creteil
-5,1,Le Parc de Saint-Maur
-6,1,Champigny
-7,1,La Varenne-Chennevieres
-8,1,Boissy-Saint-Leger
-8,2,Sucy Bonneuil

+ 0 - 8
files/navigo/stations/sncf/stations_17.txt

@@ -1,8 +0,0 @@
-1,1,Charles de Gaulle-Etoile
-4,1,La Defense (Grande Arche)
-5,1,Nanterre-Ville
-6,1,Rueil-Malmaison
-8,1,Chatou-Croissy
-9,1,Le Vesinet-Centre
-9,2,Le Vesinet-Le Pecq
-9,3,Saint-Germain-en-Laye

+ 0 - 23
files/navigo/stations/sncf/stations_18.txt

@@ -1,23 +0,0 @@
-0,1,Denfert-Rochereau
-1,1,Gentilly
-2,1,Arcueil-Cachan
-2,2,Laplace
-3,1,Bagneux
-3,2,Bourg-la-Reine
-4,1,La Croix-de-Berny
-4,2,Parc de Sceaux
-5,1,Antony
-5,2,Fontaine-Michalon
-5,3,Les Baconnets
-6,1,Massy-Palaiseau
-6,2,Massy-Verrieres
-7,1,Palaiseau Villebon
-7,2,Palaiseau
-8,1,Lozere
-9,1,Le Guichet
-9,2,Orsay-Ville
-10,1,Bures-sur-Yvette
-10,2,Courcelle-sur-Yvette
-10,3,Gif-sur-Yvette
-10,4,La Hacquiniere
-10,5,Saint-Remy-les-Chevreuse

+ 0 - 19
files/navigo/stations/sncf/stations_20.txt

@@ -1,19 +0,0 @@
-1,1,Gare de l'Est
-4,1,Pantin
-5,1,Noisy-le-Sec
-6,1,Bondy
-7,1,Gagny
-7,2,Le Raincy Villemomble Montfermeil
-9,1,Chelles Gournay
-9,2,Le Chenay Gagny
-10,1,Vaires Torcy
-11,1,Lagny-Thorigny
-13,1,Esbly
-14,1,Meaux
-15,1,Changis-Saint-Jean
-15,2,Isles-Armentieres Congis
-15,3,Lizy-sur-Ourcq
-15,4,Trilport
-16,1,Crouy-sur-Ourcq
-16,2,La Ferte-sous-Jouarre
-16,3,Nanteuil Saacy

+ 0 - 40
files/navigo/stations/sncf/stations_21.txt

@@ -1,40 +0,0 @@
-5,1,Rosny-Bois-Perrier
-5,2,Rosny-sous-Bois
-5,3,Val de Fontenay
-6,1,Nogent Le-Perreux
-7,1,Les Boullereaux Champigny
-8,1,Villiers-sur-Marne Plessis-Trevise
-9,1,Les Yvris Noisy-le-Grand
-10,1,Emerainville Pontault-Combault
-10,2,Roissy-en-Brie
-11,1,Ozoir-la-Ferriere
-12,1,Gretz-Armainvilliers
-12,2,Tournan
-15,1,Courquetaine
-15,2,Faremoutiers Pommeuse
-15,3,Guerard La-Celle-sur-Morin
-15,4,Liverdy en Brie
-15,5,Marles-en-Brie
-15,6,Mormant
-15,7,Mortcerf
-15,8,Mouroux
-15,9,Ozouer le voulgis
-15,10,Verneuil-l'Etang
-15,11,Villepatour - Presles
-15,12,Yebles - Guignes
-15,13,Yebles
-16,1,Chailly Boissy-le-Châtel
-16,2,Chauffry
-16,3,Coulommiers
-16,4,Jouy-sur-Morin Le-Marais
-16,5,Nangis
-16,6,Saint-Remy-la-Vanne
-16,7,Saint-Simeon
-17,1,Champbenoist-Poigny
-17,2,La Ferte-Gaucher
-17,3,Longueville
-17,4,Provins
-17,5,Sainte-Colombe-Septveilles
-18,1,Flamboin
-18,2,Meilleray
-18,3,Villiers St Georges

+ 0 - 7
files/navigo/stations/sncf/stations_22.txt

@@ -1,7 +0,0 @@
-7,1,Allee de la Tour-Rendez-Vous
-7,2,La Remise-a-Jorelle
-7,3,Les Coquetiers
-7,4,Les Pavillons-sous-Bois
-8,1,Gargan
-9,1,Freinville Sevran
-9,2,L'Abbaye

+ 0 - 5
files/navigo/stations/sncf/stations_23.txt

@@ -1,5 +0,0 @@
-13,1,Couilly Saint-Germain Quincy
-13,2,Les Champs-Forts
-13,3,Montry Conde
-14,1,Crecy-en-Brie La Chapelle
-14,2,Villiers-Montbarbin

+ 0 - 11
files/navigo/stations/sncf/stations_26.txt

@@ -1,11 +0,0 @@
-5,1,Val de Fontenay
-6,1,Bry-sur-Marne
-6,2,Neuilly-Plaisance
-7,1,Noisy-le-Grand (Mont d'Est)
-8,1,Noisy-Champs
-10,1,Lognes
-10,2,Noisiel
-10,3,Torcy
-11,1,Bussy-Saint-Georges
-12,1,Val d'europe
-13,1,Marne-la-Vallee Chessy

+ 0 - 3
files/navigo/stations/sncf/stations_28.txt

@@ -1,3 +0,0 @@
-4,1,Fontenay-aux-Roses
-4,2,Robinson
-4,3,Sceaux

+ 0 - 1
files/navigo/stations/sncf/stations_3.txt

@@ -1 +0,0 @@
-0,1,Saint-Michel Notre-Dame

+ 0 - 19
files/navigo/stations/sncf/stations_30.txt

@@ -1,19 +0,0 @@
-1,1,Gare Saint-Lazare
-3,1,Pont Cardinet
-4,1,Asnieres
-4,2,Becon-les-Bruyeres
-4,3,Clichy Levallois
-4,4,Courbevoie
-4,5,La Defense (Grande Arche)
-5,1,Puteaux
-5,2,Suresnes Mont-Valerien
-7,1,Garches Marne-la-Coquette
-7,2,Le Val d'Or
-7,3,Saint-Cloud
-8,1,Vaucresson
-9,1,Bougival
-9,2,La Celle-Saint-Cloud
-9,3,Louveciennes
-9,4,Marly-le-Roi
-10,1,L'Etang-la-Ville
-10,2,Saint-Nom-la-Breteche Foret de Marly

+ 0 - 5
files/navigo/stations/sncf/stations_31.txt

@@ -1,5 +0,0 @@
-7,1,Chaville-Rive Droite
-7,2,Sevres Ville-d'Avray
-7,3,Viroflay-Rive Droite
-8,1,Montreuil
-8,2,Versailles-Rive Droite

+ 0 - 18
files/navigo/stations/sncf/stations_32.txt

@@ -1,18 +0,0 @@
-5,1,La Garenne-Colombes
-5,2,Les Vallees
-5,3,Nanterre-Universite
-7,1,Houilles Carrieres-sur-Seine
-7,2,Sartrouville
-9,1,Maisons-Laffitte
-10,1,Poissy
-11,1,Villennes-sur-Seine
-12,1,Les Clairieres de Verneuil
-12,2,Vernouillet Verneuil
-13,1,Aubergenville-Elisabethville
-13,2,Les Mureaux
-14,1,Epone Mezieres
-16,1,Bonnieres
-16,2,Mantes-Station
-16,3,Mantes-la-Jolie
-16,4,Port-Villez
-16,5,Rosny-sur-Seine

+ 0 - 6
files/navigo/stations/sncf/stations_33.txt

@@ -1,6 +0,0 @@
-10,1,Acheres-Grand-Cormier
-10,2,Acheres-Ville
-11,1,Cergy-Prefecture
-11,2,Neuville-Universite
-12,1,Cergy-Saint-Christophe
-12,2,Cergy-le-Haut

+ 0 - 25
files/navigo/stations/sncf/stations_35.txt

@@ -1,25 +0,0 @@
-4,1,Bois-Colombes
-5,1,Colombes
-5,2,Le Stade
-6,1,Argenteuil
-6,2,Argenteuil
-8,1,Cormeilles-en-Parisis
-8,2,Val d'Argenteuil
-8,3,Val d'Argenteuil
-9,1,Herblay
-9,2,La Frette Montigny
-10,1,Conflans-Fin d'Oise
-10,2,Conflans-Sainte-Honorine
-11,1,Andresy
-11,2,Chanteloup-les-Vignes
-11,3,Maurecourt
-12,1,Triel-sur-Seine
-12,2,Vaux-sur-Seine
-13,1,Meulan Hadricourt
-13,2,Thun-le-Paradis
-14,1,Gargenville
-14,2,Juziers
-15,1,Issou Porcheville
-15,2,Limay
-16,1,Breval
-16,2,Menerville

+ 0 - 22
files/navigo/stations/sncf/stations_40.txt

@@ -1,22 +0,0 @@
-1,1,Gare de Lyon
-5,1,Le Vert de Maisons
-5,2,Maisons-Alfort Alfortville
-6,1,Villeneuve-Prairie
-7,1,Villeneuve-Triage
-8,1,Villeneuve-Saint-Georges
-9,1,Juvisy
-9,2,Vigneux-sur-Seine
-10,1,Ris-Orangis
-10,2,Viry-Châtillon
-11,1,Evry Val de Seine
-11,2,Grand-Bourg
-12,1,Corbeil-Essonnes
-12,2,Mennecy
-12,3,Moulin-Galant
-13,1,Ballancourt
-13,2,Fontenay le Vicomte
-14,1,La Ferte-Alais
-16,1,Boutigny
-16,2,Maisse
-17,1,Boigneville
-17,2,Buno-Gironville

+ 0 - 11
files/navigo/stations/sncf/stations_41.txt

@@ -1,11 +0,0 @@
-0,1,Musee d'Orsay
-0,2,Saint-Michel Notre-Dame
-1,1,Gare d'Austerlitz
-2,1,Bibliotheque-Francois Mitterrand
-4,1,Ivry-sur-Seine
-4,2,Vitry-sur-Seine
-5,1,Choisy-le-Roi
-5,2,Les Ardoines
-7,1,Villeneuve-le-Roi
-8,1,Ablon
-9,1,Athis-Mons

+ 0 - 13
files/navigo/stations/sncf/stations_42.txt

@@ -1,13 +0,0 @@
-9,1,Epinay-sur-Orge
-9,2,Savigny-sur-Orge
-10,1,Sainte-Genevieve-des-Bois
-11,1,Saint-Michel-sur-Orge
-12,1,Bretigny-sur-Orge
-12,2,Marolles-en-Hurepoix
-13,1,Bouray
-13,2,Lardy
-14,1,Chamarande
-14,2,Etampes
-14,3,Etrechy
-16,1,Saint-Martin d'Etampes
-17,1,Guillerval

+ 0 - 18
files/navigo/stations/sncf/stations_43.txt

@@ -1,18 +0,0 @@
-9,1,Montgeron Crosne
-9,2,Yerres
-10,1,Brunoy
-11,1,Boussy-Saint-Antoine
-11,2,Combs-la-Ville Quincy
-12,1,Lieusaint Moissy
-13,1,Cesson
-13,2,Savigny-le-Temple Nandy
-15,1,Le Mee
-15,2,Melun
-16,1,Chartrettes
-16,2,Fontaine-le-Port
-16,3,Livry-sur-Seine
-17,1,Champagne-sur-Seine
-17,2,Hericy
-17,3,La Grande Paroisse
-17,4,Vernou-sur-Seine
-17,5,Vulaines-sur-Seine Samoreau

+ 0 - 19
files/navigo/stations/sncf/stations_44.txt

@@ -1,19 +0,0 @@
-12,1,Essonnes-Robinson
-12,2,Villabe
-13,1,Coudray-Montceaux
-13,2,Le Plessis-Chenet-IBM
-13,3,Saint-Fargeau
-14,1,Boissise-le-Roi
-14,2,Ponthierry Pringy
-15,1,Vosves
-16,1,Bois-le-Roi
-17,1,Bagneaux-sur-Loing
-17,2,Bourron-Marlotte Grez
-17,3,Fontainebleau-Avon
-17,4,Montereau
-17,5,Montigny-sur-Loing
-17,6,Moret Veneux-les-Sablons
-17,7,Nemours Saint-Pierre
-17,8,Saint-Mammes
-17,9,Souppes
-17,10,Thomery

+ 0 - 4
files/navigo/stations/sncf/stations_45.txt

@@ -1,4 +0,0 @@
-10,1,Grigny-Centre
-11,1,Evry Courcouronnes
-11,2,Orangis Bois de l'Epine
-12,1,Le Bras-de-Fer - Evry Genopole

+ 0 - 25
files/navigo/stations/sncf/stations_50.txt

@@ -1,25 +0,0 @@
-0,1,Haussmann-Saint-Lazare
-1,1,Gare du Nord
-1,2,Magenta
-1,3,Paris-Nord
-5,1,Epinay-Villetaneuse
-5,2,Saint-Denis
-5,3,Sevres-Rive Gauche
-6,1,La Barre-Ormesson
-7,1,Champ de Courses d'Enghien
-7,2,Enghien-les-Bains
-8,1,Ermont-Eaubonne
-8,2,Ermont-Halte
-8,3,Gros-Noyer Saint-Prix
-9,1,Saint-Leu-La-Foret
-9,2,Taverny
-9,3,Vaucelles
-10,1,Bessancourt
-10,2,Frepillon
-10,3,Mery
-11,1,Meriel
-11,2,Valmondois
-12,1,Bruyeres-sur-Oise
-12,2,Champagne-sur-Oise
-12,3,L'Isle-Adam Parmain
-12,4,Persan Beaumont

+ 0 - 13
files/navigo/stations/sncf/stations_51.txt

@@ -1,13 +0,0 @@
-4,1,La Courneuve-Aubervilliers
-4,2,La Plaine-Stade de France
-5,1,Le Bourget
-7,1,Blanc-Mesnil
-7,2,Drancy
-8,1,Aulnay-sous-Bois
-9,1,Sevran Livry
-9,2,Vert-Galant
-10,1,Villeparisis
-11,1,Compans
-11,2,Mitry-Claye
-12,1,Dammartin Juilly Saint-Mard
-12,2,Thieux Nantouillet

+ 0 - 9
files/navigo/stations/sncf/stations_52.txt

@@ -1,9 +0,0 @@
-5,1,Stade de France-Saint-Denis
-6,1,Pierrefitte Stains
-7,1,Garges-Sarcelles
-8,1,Villiers-le-Bel (Gonesse - Arnouville)
-10,1,Goussainville
-10,2,Les Noues
-10,3,Louvres
-11,1,La Borne-Blanche
-11,2,Survilliers-Fosses

+ 0 - 12
files/navigo/stations/sncf/stations_53.txt

@@ -1,12 +0,0 @@
-6,1,Deuil Montmagny
-7,1,Groslay
-8,1,Sarcelles Saint-Brice
-9,1,Domont
-9,2,Ecouen Ezanville
-10,1,Bouffemont Moisselles
-10,2,Montsoult Maffliers
-11,1,Belloy-Saint-Martin
-11,2,Luzarches
-11,3,Seugy
-11,4,Viarmes
-11,5,Villaines

+ 0 - 12
files/navigo/stations/sncf/stations_54.txt

@@ -1,12 +0,0 @@
-8,1,Cernay
-9,1,Franconville Plessis-Bouchard
-9,2,Montigny-Beauchamp
-10,1,Pierrelaye
-11,1,Pontoise
-11,2,Saint-Ouen-l'Aumone-Liesse
-12,1,Boissy-l'Aillerie
-12,2,Osny
-15,1,Chars
-15,2,Montgeroult Courcelles
-15,3,Santeuil Le Perchay
-15,4,Us

+ 0 - 12
files/navigo/stations/sncf/stations_55.txt

@@ -1,12 +0,0 @@
-0,1,Avenue Foch
-0,2,Avenue Henri-Martin
-0,3,Boulainvilliers
-0,4,Kennedy Radio-France
-0,5,Neuilly-Porte Maillot (Palais des congres)
-1,1,Pereire-Levallois
-2,1,Porte de Clichy
-3,1,Saint-Ouen
-4,1,Les Gresillons
-5,1,Gennevilliers
-6,1,Epinay-sur-Seine
-7,1,Saint-Gratien

+ 0 - 4
files/navigo/stations/sncf/stations_56.txt

@@ -1,4 +0,0 @@
-11,1,Auvers-sur-Oise
-11,2,Chaponval
-11,3,Epluches
-11,4,Pont Petit

+ 0 - 2
files/navigo/stations/sncf/stations_57.txt

@@ -1,2 +0,0 @@
-11,1,Presles Courcelles
-12,1,Nointel Mours

+ 0 - 2
files/navigo/stations/sncf/stations_6.txt

@@ -1,2 +0,0 @@
-0,1,Auber
-6,1,Auber

+ 0 - 19
files/navigo/stations/sncf/stations_60.txt

@@ -1,19 +0,0 @@
-1,1,Gare Montparnasse
-4,1,Clamart
-4,2,Vanves Malakoff
-5,1,Bellevue
-5,2,Bievres
-5,3,Meudon
-6,1,Chaville-Rive Gauche
-6,2,Chaville-Velizy
-6,3,Viroflay-Rive Gauche
-7,1,Versailles-Chantiers
-10,1,Saint-Cyr
-11,1,Saint-Quentin-en-Yvelines - Montigny le Bretonneux
-11,2,Trappes
-12,1,Coignieres
-12,2,La Verriere
-13,1,Les Essarts-le-Roi
-14,1,Le Perray
-14,2,Rambouillet
-15,1,Gazeran

+ 0 - 14
files/navigo/stations/sncf/stations_61.txt

@@ -1,14 +0,0 @@
-10,1,Fontenay-le-Fleury
-11,1,Villepreux Les-Clayes
-12,1,Plaisir Grignon
-12,2,Plaisir Les-Clayes
-13,1,Beynes
-13,2,Mareil-sur-Mauldre
-13,3,Maule
-13,4,Nezel Aulnay
-15,1,Garancieres La-Queue
-15,2,Montfort-l'Amaury Mere
-15,3,Orgerus Behoust
-15,4,Tacoigneres Richebourg
-15,5,Villiers Neauphle Pontchartrain
-16,1,Houdan

+ 0 - 2
files/navigo/stations/sncf/stations_63.txt

@@ -1,2 +0,0 @@
-7,1,Porchefontaine
-7,2,Versailles-Rive Gauche

+ 0 - 8
files/navigo/stations/sncf/stations_64.txt

@@ -1,8 +0,0 @@
-0,1,Invalides
-0,2,Pont de l'alma
-1,1,Champ de Mars-Tour Eiffel
-2,1,Javel
-3,1,Boulevard Victor - Pont du Garigliano
-3,2,Issy-Val de Seine
-3,3,Issy
-5,1,Meudon-Val-Fleury

+ 0 - 9
files/navigo/stations/sncf/stations_65.txt

@@ -1,9 +0,0 @@
-8,1,Jouy-en-Josas
-8,2,Petit-Jouy-les-Loges
-9,1,Vauboyen
-10,1,Igny
-11,1,Massy-Palaiseau
-12,1,Longjumeau
-13,1,Chilly-Mazarin
-14,1,Gravigny-Balizy
-14,2,Petit-Vaux

+ 0 - 4
files/navigo/stations/sncf/stations_70.txt

@@ -1,4 +0,0 @@
-9,1,Parc des Expositions
-9,2,Sevran-Beaudottes
-9,3,Villepinte
-10,1,Aeroport Charles de Gaulle

+ 0 - 2
files/navigo/stations/sncf/stations_73.txt

@@ -1,2 +0,0 @@
-11,1,Eragny Neuville
-11,2,Saint-Ouen-l'Aumone (Eglise)

+ 0 - 7
files/navigo/stations/sncf/stations_75.txt

@@ -1,7 +0,0 @@
-7,1,Les Saules
-7,2,Orly-Ville
-9,1,Pont de Rungis Aeroport d'Orly
-9,2,Rungis-La Fraternelle
-10,1,Chemin d'Antony
-12,1,Massy-Verrieres
-12,2,Arpajon

+ 0 - 8
files/navigo/stations/sncf/stations_76.txt

@@ -1,8 +0,0 @@
-12,1,Egly
-12,2,La Norville Saint-Germain-les-Arpajon
-13,1,Breuillet Bruyeres-le-Châtel
-13,2,Breuillet-Village
-13,3,Saint-Cheron
-14,1,Sermaise
-15,1,Dourdan
-15,2,Dourdan-la-Foret

+ 2 - 0
files/navigo/stations/train/stations_1.txt

@@ -0,0 +1,2 @@
+7,0,Luxembourg
+10,0,Chatelet les Halles

+ 1 - 0
files/navigo/stations/train/stations_10.txt

@@ -0,0 +1 @@
+9,0,Invalides

+ 1 - 0
files/navigo/stations/train/stations_1017.txt

@@ -0,0 +1 @@
+24,15,Orry-la-Ville - Coye

+ 1 - 0
files/navigo/stations/train/stations_14.txt

@@ -0,0 +1 @@
+4,0,Cite Universitaire

+ 3 - 0
files/navigo/stations/train/stations_15.txt

@@ -0,0 +1,3 @@
+12,0,Port Royal
+13,0,Denfert-Rochereau
+13,1,Denfert-Rochereau

+ 11 - 0
files/navigo/stations/train/stations_16.txt

@@ -0,0 +1,11 @@
+1,1,Nation
+2,1,Vincennes
+2,2,Fontenay-sous-Bois
+3,1,Nogent-sur-Marne
+3,2,Joinville-le-Pont
+4,1,Saint-Maur - Creteil
+5,1,Le Parc de Saint-Maur
+6,1,Champigny
+7,1,La Varenne - Chennevieres
+8,1,Sucy - Bonneuil
+8,2,Boissy-Saint-Leger

+ 11 - 0
files/navigo/stations/train/stations_17.txt

@@ -0,0 +1,11 @@
+1,1,Charles de Gaulle - Etoile
+4,1,La Defense
+4,2,La Defense
+5,1,Nanterre Prefecture
+5,2,Nanterre Universite
+5,3,Nanterre Ville
+6,1,Rueil-Malmaison
+8,1,Chatou - Croissy
+9,1,Le Vesinet - Centre
+9,2,Le Vesinet - Le Pecq
+9,3,Saint-Germain-en-Laye

+ 23 - 0
files/navigo/stations/train/stations_18.txt

@@ -0,0 +1,23 @@
+2,1,Gentilly
+2,2,Laplace
+2,3,Arcueil - Cachan
+3,1,Bagneux
+3,2,Bourg-la-Reine
+4,1,Parc de Sceaux
+4,2,La Croix de Berny
+5,1,Antony
+5,2,Fontaine Michalon
+5,3,Les Baconnets
+6,1,Massy - Verrieres
+6,2,Massy - Palaiseau
+6,3,Massy - Palaiseau
+7,1,Palaiseau
+7,2,Palaiseau - Villebon
+8,1,Lozere
+9,1,Le Guichet
+9,2,Orsay Ville
+10,1,Bures-sur-Yvette
+10,2,La Hacquiniere
+10,3,Gif-sur-Yvette
+10,4,Courcelle-sur-Yvette
+10,5,Saint-Remy-les-Chevreuse

+ 1 - 0
files/navigo/stations/train/stations_19.txt

@@ -0,0 +1 @@
+5,0,Saint-Ouen

+ 22 - 0
files/navigo/stations/train/stations_20.txt

@@ -0,0 +1,22 @@
+1,1,Gare de l'Est
+1,7,Rosa Parks
+4,1,Pantin
+5,1,Noisy-le-Sec
+6,1,Bondy
+7,1,Le Raincy - Villemomble - Montfermeil
+7,2,Gagny
+9,1,Le Chenay Gagny
+9,2,Le Chenay Gagny
+9,3,Chelles - Gournay
+10,1,Vaires - Torcy
+11,1,Lagny - Thorigny
+13,1,Esbly
+14,1,Meaux
+15,1,Trilport
+15,2,Changis - Saint-Jean
+15,3,Isles - Armentieres - Congis
+15,4,Nanteuil - Saacy
+16,1,Lizy-sur-Ourcq
+16,2,Crouy-sur-Ourcq
+16,3,La Ferte-sous-Jouarre
+16,4,Nanteuil - Saacy

+ 29 - 0
files/navigo/stations/train/stations_21.txt

@@ -0,0 +1,29 @@
+5,1,Rosny Bois Perrier
+5,2,Rosny-sous-Bois
+5,3,Val de Fontenay
+6,1,Nogent - Le Perreux
+7,1,Les Boullereaux Champigny
+7,2,Les Boullereaux Champigny
+8,1,Villiers-sur-Marne - Le Plessis-Trevise
+9,1,Les Yvris Noisy-le-Grand
+10,1,Emerainville - Pontault-Combault
+10,2,Roissy-en-Brie
+11,1,Ozoir-la-Ferriere
+12,1,Gretz-Armainvilliers
+12,2,Tournan
+15,1,Marles-en-Brie
+15,2,Mortcerf
+15,3,Guerard - La Celle-sur-Morin
+15,4,Faremoutiers - Pommeuse
+15,5,Mouroux
+15,6,Verneuil-l'Etang
+15,7,Mormant
+16,1,Coulommiers
+16,2,Gare de Chailly Boissy le Chatel
+16,3,Saint-Simeon
+16,5,Nangis
+17,1,Longueville
+17,2,Sainte-Colombe Septveilles
+17,3,Champbenoist Poigny
+17,4,Provins
+17,5,La Ferte-Gaucher

+ 1 - 0
files/navigo/stations/train/stations_22.txt

@@ -0,0 +1 @@
+9,0,Gare du Nord

+ 4 - 0
files/navigo/stations/train/stations_23.txt

@@ -0,0 +1,4 @@
+13,2,Couilly - Saint-Germain - Quincy
+13,3,Montry - Conde
+14,1,Villiers Montbarbin
+14,2,Crecy-la-Chapelle

+ 12 - 0
files/navigo/stations/train/stations_26.txt

@@ -0,0 +1,12 @@
+5,1,Val de Fontenay
+6,1,Neuilly-Plaisance
+6,2,Bry-sur-Marne
+7,1,Noisy-le-Grand - Mont d'Est
+8,1,Noisy - Champs
+10,1,Noisiel
+10,2,Lognes
+10,3,Torcy
+11,1,Bussy-Saint-Georges
+12,1,Val d'Europe
+13,1,Marne-la-Vallee Chessy
+13,2,Marne-la-Vallee Chessy

+ 3 - 0
files/navigo/stations/train/stations_28.txt

@@ -0,0 +1,3 @@
+4,1,Sceaux
+4,2,Fontenay-aux-Roses
+4,3,Robinson

+ 1 - 0
files/navigo/stations/train/stations_29.txt

@@ -0,0 +1 @@
+7,1,Aeroport d'Orly

+ 1 - 0
files/navigo/stations/train/stations_3.txt

@@ -0,0 +1 @@
+1,1,Saint-Michel Notre-Dame

+ 20 - 0
files/navigo/stations/train/stations_30.txt

@@ -0,0 +1,20 @@
+1,1,Gare Saint-Lazare
+3,1,Pont Cardinet
+4,1,Clichy - Levallois
+4,2,Asnieres-sur-Seine
+4,3,Becon les Bruyeres
+4,4,Courbevoie
+4,5,La Defense
+4,8,La Defense
+5,1,Puteaux
+5,2,Suresnes Mont Valerien
+7,1,Le Val d'Or
+7,2,Saint-Cloud
+7,3,Garches - Marnes-la-Coquette
+8,1,Vaucresson
+9,1,La Celle-Saint-Cloud
+9,2,Bougival
+9,3,Louveciennes
+9,4,Marly-le-Roi
+10,1,L'Etang-la-Ville
+10,2,Saint-Nom-la-Breteche Foret de Marly

+ 5 - 0
files/navigo/stations/train/stations_31.txt

@@ -0,0 +1,5 @@
+7,1,Sevres - Ville-d'Avray
+7,2,Chaville Rive Droite
+7,3,Viroflay Rive Droite
+8,1,Montreuil
+8,2,Versailles Rive Droite

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů