Compare commits
5 commits
6b69d7cd6a
...
b48278bb17
Author | SHA1 | Date | |
---|---|---|---|
b48278bb17 | |||
67382eadc0 | |||
45c8deb007 | |||
cbf21a24ad | |||
de70d42b2b |
4
package-lock.json
generated
4
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "usrspace-browser-addon",
|
||||
"version": "0.8.0",
|
||||
"version": "0.8.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "usrspace-browser-addon",
|
||||
"version": "0.8.0",
|
||||
"version": "0.8.1",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "usrspace-browser-addon",
|
||||
"description": "WebExtension for the Hacker-/Maker-Space /usr/space",
|
||||
"version": "0.8.0",
|
||||
"version": "0.8.1",
|
||||
"dependencies": {
|
||||
"webextension-polyfill": "^0.10.0"
|
||||
},
|
||||
|
@ -10,7 +10,7 @@
|
|||
},
|
||||
"scripts": {
|
||||
"copy-browser-polyfill": "cp node_modules/webextension-polyfill/dist/browser-polyfill.js src/browser-polyfill.js",
|
||||
"copy-version": "sed -i 's/^\t\"version\": \".*\",$/\t\"version\": \"'$(rg '^\t\"version\": \"(.+)\",$' -r '$1' < package.json)'\",/' manifest.json",
|
||||
"copy-version": "sed -i 's/^\t\"version\": \".*\",$/\t\"version\": \"'$(rg '^\t\"version\": \"(.+)\",$' -r '$1' < package.json)'\",/' src/manifest.json",
|
||||
"prebuild": "cp LICENSE.txt src/",
|
||||
"build": "web-ext build -o -s src/ -n \"_usr_space-{version}.zip\"",
|
||||
"postbuild": "rm src/LICENSE.txt",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import Config from "./config.js";
|
||||
import Config from './config.js';
|
||||
|
||||
/**
|
||||
* @param {string} url
|
||||
|
@ -11,7 +11,7 @@ async function fetchJson(url) {
|
|||
|
||||
/**
|
||||
* @param {number} days
|
||||
* @returns {Promise<object>}
|
||||
* @returns {Promise<Array<object>>}
|
||||
*/
|
||||
function fetchCalendar(days = 28) {
|
||||
let url = `${Config.calenderUrl}?o=json`;
|
||||
|
@ -52,7 +52,7 @@ async function fetchNewData() {
|
|||
type: 'basic',
|
||||
title: browser.i18n.getMessage('stateNotificationTitle'),
|
||||
message: browser.i18n.getMessage('stateNotificationMessage', state),
|
||||
iconUrl: browser.runtime.getURL('icons/favicon.svg')
|
||||
iconUrl: browser.runtime.getURL('icons/favicon.svg'),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -66,25 +66,35 @@ async function fetchNewData() {
|
|||
}
|
||||
}
|
||||
|
||||
let intervalHandler = null;
|
||||
browser.runtime.onStartup.addListener(async () => {
|
||||
await browser.storage.local.remove(['calendar', 'spaceApi']);
|
||||
});
|
||||
|
||||
function stopFetching() {
|
||||
if (intervalHandler !== null) {
|
||||
clearInterval(intervalHandler);
|
||||
intervalHandler = null;
|
||||
/**
|
||||
* @param {Alarm} alarm
|
||||
*/
|
||||
function handleAlarm(alarm) {
|
||||
if (alarm.name === 'fetchData') {
|
||||
fetchNewData();
|
||||
}
|
||||
}
|
||||
|
||||
function startFetching() {
|
||||
fetchNewData();
|
||||
if (intervalHandler === null) {
|
||||
intervalHandler = setInterval(() => {
|
||||
fetchNewData();
|
||||
}, Config.refreshTimeout);
|
||||
}
|
||||
|
||||
browser.alarms.onAlarm.addListener(handleAlarm);
|
||||
|
||||
const now = new Date();
|
||||
now.setMinutes(Math.ceil((now.getMinutes() + 1) / Config.refreshTimeout) * Config.refreshTimeout, 0, 0);
|
||||
browser.alarms.create('fetchData', {
|
||||
when: now.getTime(),
|
||||
periodInMinutes: Config.refreshTimeout,
|
||||
});
|
||||
}
|
||||
|
||||
window.addEventListener('offline', () => {
|
||||
stopFetching();
|
||||
window.addEventListener('offline', async () => {
|
||||
browser.alarms.onAlarm.removeListener(handleAlarm);
|
||||
await browser.alarms.clear('fetchData');
|
||||
});
|
||||
window.addEventListener('online', () => {
|
||||
startFetching();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
export default {
|
||||
refreshTimeout: 1000 * 60 * 5, // 5min,
|
||||
refreshTimeout: 5,
|
||||
spaceApiUrl: 'https://www.usrspace.at/spaceapi.json',
|
||||
calenderUrl: 'https://www.usrspace.at/calendar.php',
|
||||
openColor: '#33cc33',
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"manifest_version": 2,
|
||||
"name": "__MSG_extensionName__",
|
||||
"description": "__MSG_extensionDescription__",
|
||||
"version": "0.8.0",
|
||||
"version": "0.8.1",
|
||||
"icons": {
|
||||
"48": "icons/favicon.svg",
|
||||
"96": "icons/favicon.svg"
|
||||
|
@ -20,6 +20,7 @@
|
|||
"default_locale": "de",
|
||||
"permissions": [
|
||||
"https://www.usrspace.at/*",
|
||||
"alarms",
|
||||
"notifications",
|
||||
"storage",
|
||||
"webRequest"
|
||||
|
|
|
@ -17,7 +17,7 @@ const doorOpenSVG = `
|
|||
</svg>
|
||||
`;
|
||||
|
||||
const dateTimeFormat = Intl.DateTimeFormat([], {dateStyle: "medium", timeStyle: "short"});
|
||||
const dateTimeFormat = Intl.DateTimeFormat([], {dateStyle: 'medium', timeStyle: 'short'});
|
||||
|
||||
function setL10n() {
|
||||
const loadingText = browser.i18n.getMessage('loading');
|
||||
|
|
Loading…
Reference in a new issue