1
0
Fork 0
mirror of https://github.com/pawelmalak/flame.git synced 2025-07-18 19:19:36 +02:00
flame/utils/jobs.js

41 lines
1.1 KiB
JavaScript
Raw Normal View History

const schedule = require('node-schedule');
const getExternalWeather = require('./getExternalWeather');
const clearWeatherData = require('./clearWeatherData');
const Sockets = require('../Sockets');
2021-06-22 14:49:00 +02:00
const Logger = require('./Logger');
const loadConfig = require('./loadConfig');
2021-06-22 14:49:00 +02:00
const logger = new Logger();
2022-01-04 14:18:54 +08:00
module.exports = async function () {
const { WEATHER_API_KEY } = await loadConfig();
const FEAT_WHEATHER_ENABLED = WEATHER_API_KEY != '';
2022-01-04 14:18:54 +08:00
if (FEAT_WHEATHER_ENABLED) {
// Update weather data every 15 minutes
const weatherJob = schedule.scheduleJob(
'updateWeather',
'0 */15 * * * *',
async () => {
try {
const weatherData = await getExternalWeather();
2021-11-15 00:58:47 +01:00
2022-01-04 14:18:54 +08:00
Sockets.getSocket('weather').socket.send(JSON.stringify(weatherData));
} catch (err) {
if (WEATHER_API_KEY) {
logger.log(err.message, 'ERROR');
}
}
}
2022-01-04 14:18:54 +08:00
);
2022-01-04 14:18:54 +08:00
// Clear old weather data every 4 hours
const weatherCleanerJob = schedule.scheduleJob(
'clearWeather',
'0 5 */4 * * *',
async () => {
clearWeatherData();
}
);
}
2022-01-04 14:18:54 +08:00
};