Icon caching

This commit is contained in:
2026-06-26 20:52:54 -04:00
parent aeffa30417
commit 73f1453daf
15 changed files with 29 additions and 60 deletions

View File

@@ -4,14 +4,13 @@ import {fileURLToPath} from 'url';
import {cfg, localDateStr} from './config.mjs';
import {queryCurrent, queryHourly, queryDaily, getCoords} from './influx.mjs';
import {getCelestialCurrent, getCelestialForecast} from './celestial.mjs';
import {getSpaceWeather} from './space.mjs';
import {apiReference} from '@scalar/express-api-reference';
import {spec} from './spec.mjs';
import {existsSync} from 'fs';
import {getAIS} from './ais.mjs';
import {getADSB, getADSBHistory, getADSBRange, initAircraftDb} from './adsb.mjs';
import {getWeatherCondition} from './openweather.mjs';
import {lastForecast, getForecast, forecastTTL, get24HourForecast} from './forecast.mjs';
import {fetchIcon, getWeatherCondition} from './openweather.mjs';
import {lastForecast, getForecast, forecastTTL} from './forecast.mjs';
import {dailyWeather, hourlyWeather} from './openmeteo.mjs';
// import {Aurora} from './aurora.mjs';
@@ -30,7 +29,6 @@ const DIR = dirname(fileURLToPath(import.meta.url));
const CLIENT_DIST = resolve(DIR, '../public');
app.use(express.json());
app.use('/icons', express.static(resolve(DIR, '../public', 'icons')));
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
next();
@@ -134,6 +132,15 @@ app.get('/api/position', async (req, res) => {
res.json(filterFields(data, fields));
});
// ── Icon ──────────────────────────────────────────────────────────────────────
app.get('/api/icon/:icon', async (req, resp, next) => {
const { icon } = req.params;
if(!icon) return next(); // 404 fallback can handle missing icons
resp.contentType('image/png');
resp.sendFile(await fetchIcon(icon));
});
// ── Space ─────────────────────────────────────────────────────────────────────
// app.get('/api/aurora', async (req, res) => res.json(await Aurora.get()));