forked from XimeX/usrspace-browser-addon
improve code
This commit is contained in:
parent
d898b1ea2a
commit
2f5e6ecdb1
|
@ -11,7 +11,7 @@ async function fetchJson(url) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {number} days
|
* @param {number} days
|
||||||
* @returns {Promise<any>}
|
* @returns {Promise<object>}
|
||||||
*/
|
*/
|
||||||
function fetchCalendar(days = 28) {
|
function fetchCalendar(days = 28) {
|
||||||
let url = `${Config.calenderUrl}?o=json`;
|
let url = `${Config.calenderUrl}?o=json`;
|
||||||
|
@ -22,58 +22,36 @@ function fetchCalendar(days = 28) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {Promise<any>}
|
* @returns {Promise<object>}
|
||||||
*/
|
*/
|
||||||
function fetchSpaceApi() {
|
function fetchSpaceApi() {
|
||||||
return fetchJson(Config.spaceApiUrl);
|
return fetchJson(Config.spaceApiUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {boolean} open
|
|
||||||
*/
|
|
||||||
async function updateBadge(open) {
|
|
||||||
let badgeText, badgeColor;
|
|
||||||
if (open) {
|
|
||||||
badgeText = browser.browserAction.setBadgeText({text: 'open'});
|
|
||||||
badgeColor = browser.browserAction.setBadgeBackgroundColor({color: Config.openColor});
|
|
||||||
} else {
|
|
||||||
badgeText = browser.browserAction.setBadgeText({text: ''});
|
|
||||||
badgeColor = browser.browserAction.setBadgeBackgroundColor({color: null});
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
await Promise.all([badgeText, badgeColor]);
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {boolean} open
|
|
||||||
*/
|
|
||||||
function sendNotification(open) {
|
|
||||||
browser.notifications.create('status-change', {
|
|
||||||
type: 'basic',
|
|
||||||
title: 'Space Status',
|
|
||||||
message: `Space ist jetzt ${open ? 'offen' : 'geschlossen'}.`,
|
|
||||||
iconUrl: browser.runtime.getURL('icons/favicon.svg')
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchNewData() {
|
async function fetchNewData() {
|
||||||
try {
|
try {
|
||||||
const json = await fetchCalendar();
|
const calendarJson = await fetchCalendar();
|
||||||
window.calendar = json;
|
window.calendar = calendarJson;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const json = await fetchSpaceApi();
|
const spaceApiJson = await fetchSpaceApi();
|
||||||
if (window.spaceApi && window.spaceApi.state.open !== json.state.open) {
|
|
||||||
sendNotification(json.state.open)
|
await browser.browserAction.setBadgeBackgroundColor({color: Config.openColor});
|
||||||
|
await browser.browserAction.setBadgeText({text: spaceApiJson.state.open ? 'open' : ''});
|
||||||
|
|
||||||
|
if (window.spaceApi && window.spaceApi.state.open !== spaceApiJson.state.open) {
|
||||||
|
await browser.notifications.create('status-change', {
|
||||||
|
type: 'basic',
|
||||||
|
title: 'Space Status',
|
||||||
|
message: `Space ist jetzt ${spaceApiJson.state.open ? 'offen' : 'geschlossen'}.`,
|
||||||
|
iconUrl: browser.runtime.getURL('src/icons/favicon.svg')
|
||||||
|
});
|
||||||
}
|
}
|
||||||
window.spaceApi = json;
|
|
||||||
updateBadge(window.spaceApi.state.open);
|
window.spaceApi = spaceApiJson;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue