60 lines
1.9 KiB
Plaintext
60 lines
1.9 KiB
Plaintext
@page
|
|
@using System.Globalization
|
|
@using ZTravel.API.HAFAS
|
|
@using ZTravel.API.VRRF
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<title>Departures - ZTravel</title>
|
|
<meta http-equiv="refresh" content="30">
|
|
<link rel="stylesheet" href="~/css/space.css"/>
|
|
</head>
|
|
<body>
|
|
<!--
|
|
<div class="navbar-fixed">
|
|
<nav style="color: #ffffff; background-color: #00838f;">
|
|
<div class="nav-wrapper container">
|
|
<span class="brand-logo">Salzburg Justizgebäude (+5)</span>
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
-->
|
|
<div class="app appdark">
|
|
<ul>
|
|
@foreach (var dep in Endpoints.SvvEndpoint.GetDepartures("Salzburg Justizgebäude", 20).OrderBy(p => p.RealDeparture)) {
|
|
if (int.Parse(dep.Line) > 14) {
|
|
continue;
|
|
}
|
|
var countdownRaw = dep.RealDeparture - DateTime.Now;
|
|
var countdown = Math.Round(countdownRaw.TotalMinutes);
|
|
var time = dep.RealDeparture.ToString("HH:mm");
|
|
var displaytime = countdown <= 60 ? $"{countdown} min" : time;
|
|
var rawdelay = (int) (dep.RealDeparture - dep.PlannedDeparture).TotalMinutes;
|
|
var delay = "";
|
|
if (rawdelay < 0) {
|
|
delay = $"({rawdelay})";
|
|
}
|
|
if (rawdelay > 0) {
|
|
delay = $"(+{rawdelay})";
|
|
}
|
|
if (countdown <= 0) {
|
|
displaytime = "now";
|
|
}
|
|
if (countdown <= -1) {
|
|
continue;
|
|
}
|
|
|
|
<li>
|
|
<div class="line obus">@dep.Line</div>
|
|
<div class="dest">@dep.Destination</div>
|
|
<span class="countdown">
|
|
<span class="platform">@delay @displaytime</span>
|
|
</span>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html> |