forked from XimeX/usrspace-browser-addon
faster data fetching, badge improvements
This commit is contained in:
parent
489d675ba8
commit
c3cf1e9b96
|
@ -48,5 +48,14 @@
|
||||||
},
|
},
|
||||||
"closed": {
|
"closed": {
|
||||||
"message": "geschlossen"
|
"message": "geschlossen"
|
||||||
|
},
|
||||||
|
"badgeOpen": {
|
||||||
|
"message": "open"
|
||||||
|
},
|
||||||
|
"badgeClosed": {
|
||||||
|
"message": " "
|
||||||
|
},
|
||||||
|
"badgeEvent": {
|
||||||
|
"message": " "
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,5 +48,14 @@
|
||||||
},
|
},
|
||||||
"closed": {
|
"closed": {
|
||||||
"message": "closed"
|
"message": "closed"
|
||||||
|
},
|
||||||
|
"badgeOpen": {
|
||||||
|
"message": "open"
|
||||||
|
},
|
||||||
|
"badgeClosed": {
|
||||||
|
"message": " "
|
||||||
|
},
|
||||||
|
"badgeEvent": {
|
||||||
|
"message": " "
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,17 +30,20 @@ function fetchSpaceApi() {
|
||||||
|
|
||||||
async function fetchNewData() {
|
async function fetchNewData() {
|
||||||
try {
|
try {
|
||||||
const calendarJson = await fetchCalendar();
|
const result = await Promise.allSettled([fetchCalendar(), fetchSpaceApi()]);
|
||||||
window.calendar = calendarJson;
|
const calendarJson = result[0].value;
|
||||||
} catch (error) {
|
const spaceApiJson = result[1].value;
|
||||||
console.error(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
if (spaceApiJson) {
|
||||||
const spaceApiJson = await fetchSpaceApi();
|
const now = new Date();
|
||||||
|
const eventActive = calendarJson?.some((event) => (
|
||||||
|
new Date(event.begin) <= now && now <= new Date(event.end)
|
||||||
|
)) ?? false;
|
||||||
|
|
||||||
await browser.browserAction.setBadgeBackgroundColor({color: Config.openColor});
|
const badgeText = browser.i18n.getMessage(spaceApiJson.state.open ? 'badgeOpen' : eventActive ? 'badgeEvent' : 'badgeClosed');
|
||||||
await browser.browserAction.setBadgeText({text: spaceApiJson.state.open ? 'open' : ''});
|
const badgeBgColor = spaceApiJson.state.open ? Config.openColor : eventActive ? Config.eventColor : Config.closedColor;
|
||||||
|
await browser.browserAction.setBadgeText({text: badgeText});
|
||||||
|
await browser.browserAction.setBadgeBackgroundColor({color: badgeBgColor});
|
||||||
|
|
||||||
if (window.spaceApi && window.spaceApi.state.open !== spaceApiJson.state.open) {
|
if (window.spaceApi && window.spaceApi.state.open !== spaceApiJson.state.open) {
|
||||||
const state = browser.i18n.getMessage(spaceApiJson.state.open ? 'open' : 'closed');
|
const state = browser.i18n.getMessage(spaceApiJson.state.open ? 'open' : 'closed');
|
||||||
|
@ -51,7 +54,9 @@ async function fetchNewData() {
|
||||||
iconUrl: browser.runtime.getURL('src/icons/favicon.svg')
|
iconUrl: browser.runtime.getURL('src/icons/favicon.svg')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.calendar = calendarJson;
|
||||||
window.spaceApi = spaceApiJson;
|
window.spaceApi = spaceApiJson;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
|
|
@ -3,6 +3,8 @@ export default {
|
||||||
spaceApiUrl: 'https://www.usrspace.at/spaceapi.json',
|
spaceApiUrl: 'https://www.usrspace.at/spaceapi.json',
|
||||||
calenderUrl: 'https://www.usrspace.at/calendar.php',
|
calenderUrl: 'https://www.usrspace.at/calendar.php',
|
||||||
openColor: '#33cc33',
|
openColor: '#33cc33',
|
||||||
|
closedColor: '#cc3333',
|
||||||
|
eventColor: '#9933cc',
|
||||||
quickLinks: [
|
quickLinks: [
|
||||||
{
|
{
|
||||||
url: 'https://www.usrspace.at/',
|
url: 'https://www.usrspace.at/',
|
||||||
|
|
Loading…
Reference in a new issue