Updated logo API

This commit is contained in:
2026-04-23 00:53:19 +10:00
parent bd8ef98d30
commit 110ed5b984
17 changed files with 142 additions and 59 deletions
+8 -7
View File
@@ -202,11 +202,11 @@ export function getContinents(flights: Flight[]) {
// ── Airlines ──────────────────────────────────────────────────────────────────
function countAirlines(flights: Flight[]) {
const counts = new Map<string, { count: number; id: number }>()
const counts = new Map<string, { count: number; id: number, logo_url: string }>()
flights.forEach(f => {
const airline = f.airline
if (!airline?.name) return
const existing = counts.get(airline.name) ?? { count: 0, id: airline.id }
const existing = counts.get(airline.name) ?? { count: 0, id: airline.id, logo_url: airline.logo_url }
existing.count++
counts.set(airline.name, existing)
})
@@ -225,6 +225,7 @@ export function getTopAirlines(flights: Flight[], upcomingFlights: Flight[]) {
id: (past.get(name) ?? upcoming.get(name))!.id,
past: past.get(name)?.count ?? 0,
upcoming: upcoming.get(name)?.count ?? 0,
logo_url: (past.get(name) ?? upcoming.get(name))!.logo_url,
}))
.sort((a, b) => (b.past + b.upcoming) - (a.past + a.upcoming))
@@ -323,17 +324,17 @@ interface AircraftItem {
id: number
past: number
upcoming: number
designator: string
}
export function getTopAircraft(flights: Flight[], upcomingFlights: Flight[]) {
console.time('getTopAircraft')
function countAircraft(list: Flight[]) {
const counts = new Map<string, { count: number; id: number }>()
const counts = new Map<string, { count: number; id: number; displayName: string; designator: string }>()
list.forEach(f => {
const aircraft = f.aircraft
if (!aircraft?.designator) return
const existing = counts.get(aircraft.designator) ?? { count: 0, id: aircraft.id }
const existing = counts.get(aircraft.designator) ?? { count: 0, id: aircraft.id, displayName: aircraft.display_name_short, designator: aircraft.designator }
existing.count++
counts.set(aircraft.designator, existing)
})
@@ -346,7 +347,8 @@ export function getTopAircraft(flights: Flight[], upcomingFlights: Flight[]) {
const sorted: AircraftItem[] = [...allNames]
.map(name => ({
label: name,
label: (past.get(name) ?? upcoming.get(name))!.displayName,
designator: (past.get(name) ?? upcoming.get(name))!.designator,
id: (past.get(name) ?? upcoming.get(name))!.id,
past: past.get(name)?.count ?? 0,
upcoming: upcoming.get(name)?.count ?? 0,
@@ -360,7 +362,6 @@ export function getTopAircraft(flights: Flight[], upcomingFlights: Flight[]) {
{ name: 'Upcoming', data: sorted.map(s => s.upcoming) },
],
}
console.timeEnd('getTopAircraft')
return result
}