Compare commits

..

4 commits

Author SHA1 Message Date
Thomas Rupprecht b1dc1a0d21 0.9.0 2023-01-20 17:14:00 +01:00
Thomas Rupprecht 74a0d577ee make code compatible with manifest_version v3 2023-01-20 17:12:49 +01:00
Thomas Rupprecht c91e519c08 update to manifest_version v3 2023-01-20 17:12:16 +01:00
Thomas Rupprecht a3890589b3 manifest_v3 2023-01-20 16:15:10 +01:00
4 changed files with 21 additions and 35 deletions

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "usrspace-browser-addon", "name": "usrspace-browser-addon",
"version": "0.8.7", "version": "0.9.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "usrspace-browser-addon", "name": "usrspace-browser-addon",
"version": "0.8.7", "version": "0.9.0",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View file

@ -1,7 +1,7 @@
{ {
"name": "usrspace-browser-addon", "name": "usrspace-browser-addon",
"description": "WebExtension for the Hacker-/Maker-Space /usr/space", "description": "WebExtension for the Hacker-/Maker-Space /usr/space",
"version": "0.8.7", "version": "0.9.0",
"dependencies": { "dependencies": {
"webextension-polyfill": "^0.10.0" "webextension-polyfill": "^0.10.0"
}, },

View file

@ -10,6 +10,16 @@ browser.runtime.onInstalled.addListener(async (details) => {
} }
}); });
browser.runtime.onStartup.addListener(async () => {
await browser.storage.local.remove(['calendar', 'spaceApi']);
});
browser.alarms.onAlarm.addListener((alarm) => {
if (alarm.name === 'fetchData') {
fetchNewData();
}
});
/** /**
* @param {string} url * @param {string} url
* @returns {Promise<any>} * @returns {Promise<any>}
@ -52,8 +62,8 @@ async function fetchNewData() {
const badgeText = browser.i18n.getMessage(spaceApiJson.state.open ? 'badgeOpen' : eventActive ? 'badgeEvent' : 'badgeClosed'); const badgeText = browser.i18n.getMessage(spaceApiJson.state.open ? 'badgeOpen' : eventActive ? 'badgeEvent' : 'badgeClosed');
const badgeBgColor = spaceApiJson.state.open ? BADGE_COLORS.open : eventActive ? BADGE_COLORS.event : BADGE_COLORS.closed; const badgeBgColor = spaceApiJson.state.open ? BADGE_COLORS.open : eventActive ? BADGE_COLORS.event : BADGE_COLORS.closed;
await browser.browserAction.setBadgeText({text: badgeText}); await browser.action.setBadgeText({text: badgeText});
await browser.browserAction.setBadgeBackgroundColor({color: badgeBgColor}); await browser.action.setBadgeBackgroundColor({color: badgeBgColor});
const {spaceApi} = await browser.storage.local.get('spaceApi'); const {spaceApi} = await browser.storage.local.get('spaceApi');
if (spaceApi && spaceApi.state.open !== spaceApiJson.state.open) { if (spaceApi && spaceApi.state.open !== spaceApiJson.state.open) {
@ -76,23 +86,8 @@ async function fetchNewData() {
} }
} }
browser.runtime.onStartup.addListener(async () => { function init() {
await browser.storage.local.remove(['calendar', 'spaceApi']);
});
/**
* @param {Alarm} alarm
*/
function handleAlarm(alarm) {
if (alarm.name === 'fetchData') {
fetchNewData(); fetchNewData();
}
}
function startFetching() {
fetchNewData();
browser.alarms.onAlarm.addListener(handleAlarm);
const now = new Date(); const now = new Date();
now.setMinutes(Math.ceil((now.getMinutes() + 1) / REFRESH_TIMEOUT) * REFRESH_TIMEOUT, 0, 0); now.setMinutes(Math.ceil((now.getMinutes() + 1) / REFRESH_TIMEOUT) * REFRESH_TIMEOUT, 0, 0);
@ -102,13 +97,4 @@ function startFetching() {
}); });
} }
globalThis.addEventListener('offline', async () => { init();
browser.alarms.onAlarm.removeListener(handleAlarm);
await browser.alarms.clear('fetchData');
});
globalThis.addEventListener('online', () => {
startFetching();
});
if (globalThis.navigator.onLine) {
startFetching();
}

View file

@ -1,8 +1,8 @@
{ {
"manifest_version": 2, "manifest_version": 3,
"name": "__MSG_extensionName__", "name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__", "description": "__MSG_extensionDescription__",
"version": "0.8.7", "version": "0.9.0",
"icons": { "icons": {
"48": "icons/favicon.svg", "48": "icons/favicon.svg",
"96": "icons/favicon.svg" "96": "icons/favicon.svg"
@ -10,7 +10,7 @@
"background": { "background": {
"page": "background.html" "page": "background.html"
}, },
"browser_action": { "action": {
"browser_style": true, "browser_style": true,
"default_title": "__MSG_buttonTitle__", "default_title": "__MSG_buttonTitle__",
"default_icon": "icons/favicon.svg", "default_icon": "icons/favicon.svg",
@ -32,7 +32,7 @@
"browser_specific_settings": { "browser_specific_settings": {
"gecko": { "gecko": {
"id": "{c9a907ad-a047-4cf6-8b5d-95097d31aa5b}", "id": "{c9a907ad-a047-4cf6-8b5d-95097d31aa5b}",
"strict_min_version": "79.0" "strict_min_version": "109.0"
} }
} }
} }