diff options
Diffstat (limited to 'src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs')
| -rw-r--r-- | src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs b/src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs index 2d5f5d9..562b8f1 100644 --- a/src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/FeedConfigProcessor.cs @@ -47,6 +47,8 @@ public class FeedConfigProcessor : IArrivalsProcessor { arrival.Headsign.Destination = arrival.Headsign.Destination.Replace("*", ""); + var destinationTrimmed = arrival.Headsign.Destination.TrimStart(); + if (arrival.Headsign.Destination == "FORA DE SERVIZO.G.B.") { arrival.Headsign.Destination = "García Barbón, 7 (fora de servizo)"; @@ -55,9 +57,21 @@ public class FeedConfigProcessor : IArrivalsProcessor switch (arrival.Route.ShortName) { - case "A" when arrival.Headsign.Destination.StartsWith("\"1\""): + case "A" when destinationTrimmed.StartsWith("\"1\"", StringComparison.Ordinal) || + (destinationTrimmed.Length >= 1 && destinationTrimmed[0] == '1' && + (destinationTrimmed.Length == 1 || !char.IsDigit(destinationTrimmed[1]))): arrival.Route.ShortName = "A1"; - arrival.Headsign.Destination = arrival.Headsign.Destination.Replace("\"1\"", ""); + // NormalizeStopName() removes quotes for Vitrasa, so handle both "\"1\"" and leading "1". + if (destinationTrimmed.StartsWith("\"1\"", StringComparison.Ordinal)) + { + destinationTrimmed = destinationTrimmed.Substring(3); + } + else + { + destinationTrimmed = destinationTrimmed.Substring(1); + } + + arrival.Headsign.Destination = destinationTrimmed.TrimStart(' ', '-', '.', ':'); break; case "6": arrival.Headsign.Destination = arrival.Headsign.Destination.Replace("\"", ""); |
