尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗App web para ver cómo ha cambiado un mismo día del año (mes + día) en una estación de AEMET, desde su primer registro (como muy pronto 1920) hasta hoy.
/) y opción "Usar mi ubicación".?estacion=3195&dia=10-13), así que se puede compartir.fetch nativo)npm install
cp .env.example .env
Rellenar AEMET_API_KEY en .env.
Ejecutar en desarrollo:
npm run dev
GET /api/stations: inventario de estaciones.GET /api/stations/cached: estaciones ya descargadas y si su histórico está completo.GET /api/evolution/jobs/enqueue?station=XXXX&month=MM&day=DD: devuelve el resultado al instante si está en caché; si no, encola la descarga y devuelve un jobId.GET /api/evolution/jobs/:jobId: estado, progreso, tiempo estimado y resultado parcial del trabajo.GET /api/background: búsquedas de histórico en segundo plano en curso.Solo se aceptan estaciones que existan en el inventario de AEMET, para no gastar la cuota con indicativos inventados.
FETCH_TIMEOUT_MS: timeout para llamadas HTTP salientes a AEMET (por defecto 20000).AEMET_REQUEST_DELAY_MS: pausa entre peticiones a AEMET para no agotar la cuota (por defecto 1000).EVOLUTION_JOB_RETENTION_MINUTES: minutos que se conserva el estado de trabajos completados/fallidos.EVOLUTION_ENQUEUE_LIMIT_PER_MIN: límite por minuto para GET /api/evolution/jobs/enqueue.EVOLUTION_STATUS_LIMIT_PER_MIN: límite por minuto para el estado de trabajos y /api/background..cache/ por defecto. Se puede cambiar con CACHE_DIR. En producción debe apuntar a un disco/volumen persistente: si el disco del servicio es efímero (Render, Railway, Heroku, Fly sin volumen…), la caché se borra en cada despliegue o reinicio y las estaciones dejan de aparecer en verde..cache/stations/<estacion>/<año>-H1.json (enero-junio) y -H2.json (julio-diciembre)..cache/stations/<estacion>/meta.json y, a partir de ahí, cualquier fecha de esa estación responde al instante con el histórico completo.RECENT_DATA_TTL_HOURS horas (por defecto 12).GTM-K4V42VXB). La etiqueta de Google Analytics 4 (G-N7Q7DCPW4L) se configura dentro del contenedor, no en el código.public/js/analytics.js carga GTM solo después de que el visitante pulse «Aceptar» en la barra negra inferior. «Declinar» no carga nada. La decisión se guarda en localStorage (secalienta-consent) y se puede cambiar con «Preferencias de cookies» en la pantalla de bienvenida; al retirar el consentimiento se borran las cookies _ga* y se recarga la página.server.js permite los dominios de Google necesarios sin habilitar scripts inline.