{#snippet renderLocalTime( time: Date, forceAbsolute = false )}{#await localTime(time, forceAbsolute, now)}{isRelativeTime && !forceAbsolute ? timeRelative(time.getTime(), now) : time.getUTCHours() + ':' + time.getUTCMinutes() + (time.getUTCSeconds() !== 0 ? `:${time.getUTCSeconds()}` : '') + ' UTC'}{:then t}{t}{/await}{/snippet} {#if stopTimes} {#each stopTimes.stopTimes // garbage data .filter((v) => !blacklistedAgencyURLs.includes(v.agencyUrl)) as departure} {@const expectedTime = new Date( (isArrivals ? departure.place.scheduledArrival : departure.place.scheduledDeparture) ?? '0' ).getTime() / 1000 / 60} {@const receivedTime = new Date( (isArrivals ? departure.place.arrival : departure.place.departure) ?? '0' ).getTime() / 1000 / 60} {@const delayMinutes = receivedTime - expectedTime} {@const routeShortName = stopTimeToShortName(departure)} {@const pictogram = getPictogram(departure.mode)} {@const notices = getNotices(departure, delayMinutes, isArrivals)} {@const situationIsBad = notices.find((v) => v[0].includes('Attention'))}
{#if pictogram} {/if} {#if stopTimeShouldRenderGlyph(departure, routeShortName)} {:else} {routeShortName} {/if} {m.to()} {normalisePlaceName(departure.headsign)}
{#if departure.place.scheduledTrack && departure.place.track} {#if departure.place.name !== placeName}{`${ departure.place.name === placeName + ', Bahnhof' ? placeName + ', Busbahnhof' : departure.place.name }, `} {/if}{m.station_location({ track: departure.place.track, mode: departure.mode, })} {:else if departure.place.name !== placeName}{departure.place.name === placeName + ', Bahnhof' ? placeName + ', Busbahnhof' : departure.place.name} {/if}
{departure.cancelled ? m.antsy_weird_cowfish_wish() + ' ' : ''}{isRelativeTime && Math.abs(expectedTime - receivedTime) < 1 ? isArrivals ? m.arrival_in() : m.departure_in() : isArrivals ? m.arrival_at() : m.departure_at()} {#if Math.abs(expectedTime - receivedTime) < 1} {@render renderLocalTime(new Date(receivedTime * 60 * 1000))} {:else} {@render renderLocalTime(new Date(expectedTime * 60 * 1000), true)} {@render renderLocalTime(new Date(receivedTime * 60 * 1000), true)} {#if isRelativeTime} ({@render renderLocalTime(new Date(receivedTime * 60 * 1000))}) {/if} {/if}
{#if notices.length !== 0}
{#each notices as notice}
{#each notice[0] as pictogram}{/each} {notice[1]}
{/each}
{/if} {#if departure.agencyName} {m.operated_by({ operator: operators.has(departure.agencyName) ? operators.get(departure.agencyName)! : departure.agencyName, })}{#if departure.agencyName === 'DB Fernverkehr AG'} {' '} · {m.line_number_accuracy()}{/if} {/if}
{/each} {:else}
{#if (placeName || placeId) && isResultsPage}

{m.no_results_title()}

{#each m .no_results_body({ stationName: placeName ?? placeId }) .split('*') as part, idx}{#if idx % 2 === 0}{part}{:else}{part}{/if}{/each}

{:else if placeId}
{#each Array(30) as _}
{/each}
{:else}

{m.welcome_title()}

{m.welcome_body_1()}

{/if}
{/if}