空气质量快照
Scrapes air-quality.com(同 HA air_quality_cn 字段):AQI / 污染物 / 花粉 / 天气。上游 HTML 可能变更。
Not medical advice. Primary: scraped air-quality.com. Fallback: Open-Meteo / 北京花粉监测平台.
import { packageContext } from 'kody:runtime' import { getSnapshot } from './getSnapshot' import { AQI_STANDARDS, type AqiStandard } from './getSnapshot' function appUrl(path: string): URL { if (!packageContext?.hostedUrl) { throw new Error('This module must run as a package app.') } const relative = path.replace(/^\/+/, '') const mount = packageContext.appBasePath.endsWith('/') ? packageContext.appBasePath : `${packageContext.appBasePath}/` return new URL(`${mount}${relative}`, packageContext.hostedUrl) } function renderPage(): Response { const apiPath = appUrl('api/getSnapshot').pathname const standards = Object.entries(AQI_STANDARDS) .map(([k, label]) => ``) .join('') const html = `
Scrapes air-quality.com(同 HA air_quality_cn 字段):AQI / 污染物 / 花粉 / 天气。上游 HTML 可能变更。
Not medical advice. Primary: scraped air-quality.com. Fallback: Open-Meteo / 北京花粉监测平台.