Use Redis for forecast image caching (72d55970d7d5f9b586d190440af01c5eac1b438a, 3585305e4e8874ca885a9eb52ab964b4802f0544, 9853f281413412a89cc60745f6f9a8037d144596)
Cached images expire on the hour, as the weather forecast is hourly
An image will be inserted into the Redis store if it has been generated for the first time that hour
Whenever a weather forecast image is requested over the course of that hour, the cached (stored) image will be sent
Replace moment with luxon (0262246913f1a533b57a0e53cfbb86bc20188a86, see also: d5d47072e7b6a13d7bdd7fdee9dd487299e0fb02)
ensure logger.error() is used everywhere instead of the older, less descriptive logger.err() (5c41e51cb4308218502a44e7c64675d76150b759, b2eacd42495c216dcedd7953b505d2602ddef530)
refactor entry point (21e35f934351cc8fde00cbd817a5a684dfb4701c)
Notable changes:
Use Redis for forecast image caching (72d55970d7d5f9b586d190440af01c5eac1b438a, 3585305e4e8874ca885a9eb52ab964b4802f0544, 9853f281413412a89cc60745f6f9a8037d144596)
Replace moment with luxon (0262246913f1a533b57a0e53cfbb86bc20188a86, see also: d5d47072e7b6a13d7bdd7fdee9dd487299e0fb02)
Misc:
logger.error()
is used everywhere instead of the older, less descriptivelogger.err()
(5c41e51cb4308218502a44e7c64675d76150b759, b2eacd42495c216dcedd7953b505d2602ddef530)