WallpaperMachine
The wallpapers you love. A new home on your Mac.
Compare past temperatures for a chosen day and location
AI summary · website content
LifestyleJavaScript · CSSGitHub @ManuCalaveroOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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.