From 800fd816132c38617b2cc16f4eecf95f38d09841 Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Thu, 25 Dec 2025 01:53:12 +0100 Subject: Update icons again --- .../Controllers/ArrivalsController.cs | 28 +++++++++++---------- .../GraphClient/App/ArrivalsAtStop.cs | 4 +-- .../app/components/arrivals/ArrivalList.tsx | 6 +++++ src/frontend/app/routes/stops-$id.tsx | 9 +------ src/frontend/public/icon-inverse.png | Bin 0 -> 3318 bytes src/frontend/public/icon-round.png | Bin 7217 -> 7436 bytes src/frontend/public/icon-square.png | Bin 3768 -> 3901 bytes src/frontend/public/icon-transparent.png | Bin 4994 -> 0 bytes src/frontend/public/icon-transparent.svg | 5 ---- src/frontend/public/manifest.webmanifest | 23 +++++++---------- src/frontend/public/maps/spritesheet/sprite.png | Bin 5926 -> 4817 bytes src/frontend/public/maps/spritesheet/sprite@2x.png | Bin 13514 -> 11003 bytes 12 files changed, 32 insertions(+), 43 deletions(-) create mode 100644 src/frontend/public/icon-inverse.png delete mode 100644 src/frontend/public/icon-transparent.png delete mode 100644 src/frontend/public/icon-transparent.svg diff --git a/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs b/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs index 6b90f20..2ddbcd1 100644 --- a/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs +++ b/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs @@ -88,13 +88,6 @@ public partial class ArrivalsController : ControllerBase var minutesToArrive = (int)(departureTime - nowLocal).TotalMinutes; //var isRunning = departureTime < nowLocal; - // TODO: Handle this properly, since many times it's "tomorrow" but not handled properly - var threshold = ShouldFetchPastArrivals(id) ? ArrivalsAtStopContent.PastArrivalMinutesIncluded : 0; - if (minutesToArrive < threshold) - { - continue; - } - Arrival arrival = new() { TripId = item.Trip.GtfsId, @@ -132,6 +125,9 @@ public partial class ArrivalsController : ControllerBase var feedId = id.Split(':')[0]; + // Time after an arrival's time to still include it in the response. This is useful without real-time data, for delayed buses. + var timeThreshold = GetThresholdForFeed(id); + return Ok(new StopArrivalsResponse { StopCode = _feedService.NormalizeStopCode(feedId, stop.Code), @@ -141,7 +137,7 @@ public partial class ArrivalsController : ControllerBase Latitude = stop.Lat, Longitude = stop.Lon }, - Routes = stop.Routes + Routes = [.. stop.Routes .OrderBy( r => r.ShortName, Comparer.Create(SortingHelper.SortRouteShortNames) @@ -152,16 +148,22 @@ public partial class ArrivalsController : ControllerBase ShortName = _feedService.NormalizeRouteShortName(feedId, r.ShortName ?? ""), Colour = r.Color ?? "FFFFFF", TextColour = r.TextColor ?? "000000" - }) - .ToList(), - Arrivals = arrivals + })], + Arrivals = [.. arrivals.Where(a => a.Estimate.Minutes >= timeThreshold)] }); + } - private static bool ShouldFetchPastArrivals(string id) + private static int GetThresholdForFeed(string id) { string feedId = id.Split(':', 2)[0]; - return feedId == "xunta"; + + if (feedId == "vitrasa" || feedId == "coruna") + { + return 0; + } + + return -30; } [LoggerMessage(LogLevel.Error, "Error fetching stop data, received {statusCode} {responseBody}")] diff --git a/src/Costasdev.Busurbano.Backend/GraphClient/App/ArrivalsAtStop.cs b/src/Costasdev.Busurbano.Backend/GraphClient/App/ArrivalsAtStop.cs index a349f9a..10235de 100644 --- a/src/Costasdev.Busurbano.Backend/GraphClient/App/ArrivalsAtStop.cs +++ b/src/Costasdev.Busurbano.Backend/GraphClient/App/ArrivalsAtStop.cs @@ -5,13 +5,11 @@ namespace Costasdev.Busurbano.Backend.GraphClient.App; public class ArrivalsAtStopContent : IGraphRequest { - public const int PastArrivalMinutesIncluded = -75; - public record Args(string Id, bool Reduced); public static string Query(Args args) { - var startTime = DateTimeOffset.UtcNow.AddMinutes(PastArrivalMinutesIncluded); + var startTime = DateTimeOffset.UtcNow.AddMinutes(-75); var startTimeUnix = startTime.ToUnixTimeSeconds(); var geometryField = args.Reduced ? "" : @"tripGeometry { points }"; diff --git a/src/frontend/app/components/arrivals/ArrivalList.tsx b/src/frontend/app/components/arrivals/ArrivalList.tsx index 0186682..ea01695 100644 --- a/src/frontend/app/components/arrivals/ArrivalList.tsx +++ b/src/frontend/app/components/arrivals/ArrivalList.tsx @@ -18,6 +18,12 @@ export const ArrivalList: React.FC = ({ return (
+ {arrivals.length === 0 && ( +
+ {/* TOOD i18n */} + No hay llegadas próximas disponibles para esta parada. +
+ )} {arrivals.map((arrival, index) => reduced ? ( { // Initial load setDataLoading(true); @@ -175,7 +168,7 @@ export default function Estimates() { ) : data ? ( <>
-
+
- - - - diff --git a/src/frontend/public/manifest.webmanifest b/src/frontend/public/manifest.webmanifest index b660826..5d8f087 100644 --- a/src/frontend/public/manifest.webmanifest +++ b/src/frontend/public/manifest.webmanifest @@ -1,15 +1,16 @@ { "$schema": "https://raw.githubusercontent.com/SchemaStore/schemastore/refs/heads/master/src/schemas/json/web-manifest.json", - "id": "https://busurbano.costas.dev/", - "name": "BusUrbano", - "description": "Aplicación web para encontrar paradas y tiempos de llegada de los autobuses urbanos.", - "short_name": "BusUrbano", + "id": "https://enmarcha.app/", + "name": "EnMarcha", + "description": "Aplicación de transporte pública para Galicia. Consulta horarios, llegadas y rutas de trenes, autobuses interurbanos y distintos urbanos.", + "short_name": "EnMarcha", "start_url": "/", "display": "standalone", - "orientation": "portrait-primary", + "orientation": "portrait", "lang": "es", "background_color": "#F7F7FF", "theme_color": "#27187E", + "scope": "/", "categories": [ "productivity" ], @@ -19,19 +20,13 @@ "src": "/icon-square.png", "sizes": "any", "type": "image/png", - "purpose": "any" + "purpose": "maskable" }, { - "src": "/icon-transparent.svg", - "type": "image/svg+xml", - "sizes": "any", - "purpose": "any monochrome" - }, - { - "src": "/icon-transparent.png", + "src": "/icon-inverse.png", "type": "image/png", "sizes": "any", - "purpose": "any monochrome" + "purpose": "monochrome" } ], "screenshots": [ diff --git a/src/frontend/public/maps/spritesheet/sprite.png b/src/frontend/public/maps/spritesheet/sprite.png index d8a32ab..1e676a3 100644 Binary files a/src/frontend/public/maps/spritesheet/sprite.png and b/src/frontend/public/maps/spritesheet/sprite.png differ diff --git a/src/frontend/public/maps/spritesheet/sprite@2x.png b/src/frontend/public/maps/spritesheet/sprite@2x.png index ba873a4..559b850 100644 Binary files a/src/frontend/public/maps/spritesheet/sprite@2x.png and b/src/frontend/public/maps/spritesheet/sprite@2x.png differ -- cgit v1.3