const fetchJson = (url) => { return fetch(url).then((response) => (response.json())); }; const fetchCalendar = (days = null) => { let url = 'https://usrspace.at/calendar.php?o=json'; if (days) { url += '&r=' + days; } return fetchJson(url); }; const fetchSpaceApi = () => { return fetchJson('https://usrspace.at/spaceapi'); }; const updateBadge = (open) => { let badgeText, badgeColor; if (open) { badgeText = browser.browserAction.setBadgeText({text: 'open'}); badgeColor = browser.browserAction.setBadgeBackgroundColor({color: '#00ff00'}); } else { badgeText = browser.browserAction.setBadgeText({text: ''}); badgeColor = browser.browserAction.setBadgeBackgroundColor({color: null}); } badgeText.then(() => { }).catch((error) => { console.error(error); }); badgeColor.then(() => { }).catch((error) => { console.error(error); }); }; const fetchNewData = () => { fetchCalendar().then((json) => { window.calendar = json; }).catch((error) => { console.error(error); }); fetchSpaceApi().then((json) => { window.spaceApi = json; updateBadge(window.spaceApi.state.open); }).catch((error) => { console.error(error); }); }; fetchNewData(); setInterval(() => { fetchNewData(); }, 5 * 60 * 1000);