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",
"version": "0.8.7",
"version": "0.9.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "usrspace-browser-addon",
"version": "0.8.7",
"version": "0.9.0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {

View File

@ -1,7 +1,7 @@
{
"name": "usrspace-browser-addon",
"description": "WebExtension for the Hacker-/Maker-Space /usr/space",
"version": "0.8.7",
"version": "0.9.0",
"dependencies": {
"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
* @returns {Promise<any>}
@ -52,8 +62,8 @@ async function fetchNewData() {
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;
await browser.browserAction.setBadgeText({text: badgeText});
await browser.browserAction.setBadgeBackgroundColor({color: badgeBgColor});
await browser.action.setBadgeText({text: badgeText});
await browser.action.setBadgeBackgroundColor({color: badgeBgColor});
const {spaceApi} = await browser.storage.local.get('spaceApi');
if (spaceApi && spaceApi.state.open !== spaceApiJson.state.open) {
@ -76,24 +86,9 @@ async function fetchNewData() {
}
}
browser.runtime.onStartup.addListener(async () => {
await browser.storage.local.remove(['calendar', 'spaceApi']);
});
/**
* @param {Alarm} alarm
*/
function handleAlarm(alarm) {
if (alarm.name === 'fetchData') {
fetchNewData();
}
}
function startFetching() {
function init() {
fetchNewData();
browser.alarms.onAlarm.addListener(handleAlarm);
const now = new Date();
now.setMinutes(Math.ceil((now.getMinutes() + 1) / REFRESH_TIMEOUT) * REFRESH_TIMEOUT, 0, 0);
browser.alarms.create('fetchData', {
@ -102,13 +97,4 @@ function startFetching() {
});
}
globalThis.addEventListener('offline', async () => {
browser.alarms.onAlarm.removeListener(handleAlarm);
await browser.alarms.clear('fetchData');
});
globalThis.addEventListener('online', () => {
startFetching();
});
if (globalThis.navigator.onLine) {
startFetching();
}
init();

View File

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