usrspace-browser-addon/background/index.js

56 lines
1.3 KiB
JavaScript

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);