improve config

This commit is contained in:
Thomas Rupprecht 2023-01-06 02:02:50 +01:00
parent 85fd3fd86a
commit f97b9a7538
3 changed files with 42 additions and 37 deletions

View File

@ -1,4 +1,4 @@
import Config from './config.js'; import { REFRESH_TIMEOUT, API_URLS, BADGE_COLORS } from './config.js';
document.querySelector('html').setAttribute('lang', browser.i18n.getUILanguage()); document.querySelector('html').setAttribute('lang', browser.i18n.getUILanguage());
@ -16,7 +16,7 @@ async function fetchJson(url) {
* @returns {Promise<Array<object>>} * @returns {Promise<Array<object>>}
*/ */
function fetchCalendar(days = 28) { function fetchCalendar(days = 28) {
let url = `${Config.calenderUrl}?o=json`; let url = `${API_URLS.calender}?o=json`;
if (days) { if (days) {
url += `&r=${days}`; url += `&r=${days}`;
} }
@ -27,7 +27,7 @@ function fetchCalendar(days = 28) {
* @returns {Promise<object>} * @returns {Promise<object>}
*/ */
function fetchSpaceApi() { function fetchSpaceApi() {
return fetchJson(Config.spaceApiUrl); return fetchJson(API_URLS.spaceApi);
} }
async function fetchNewData() { async function fetchNewData() {
@ -43,7 +43,7 @@ async function fetchNewData() {
)) ?? false; )) ?? false;
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 ? Config.openColor : eventActive ? Config.eventColor : Config.closedColor; const badgeBgColor = spaceApiJson.state.open ? BADGE_COLORS.open : eventActive ? BADGE_COLORS.event : BADGE_COLORS.closed;
await browser.browserAction.setBadgeText({text: badgeText}); await browser.browserAction.setBadgeText({text: badgeText});
await browser.browserAction.setBadgeBackgroundColor({color: badgeBgColor}); await browser.browserAction.setBadgeBackgroundColor({color: badgeBgColor});
@ -87,10 +87,10 @@ function startFetching() {
browser.alarms.onAlarm.addListener(handleAlarm); browser.alarms.onAlarm.addListener(handleAlarm);
const now = new Date(); const now = new Date();
now.setMinutes(Math.ceil((now.getMinutes() + 1) / Config.refreshTimeout) * Config.refreshTimeout, 0, 0); now.setMinutes(Math.ceil((now.getMinutes() + 1) / REFRESH_TIMEOUT) * REFRESH_TIMEOUT, 0, 0);
browser.alarms.create('fetchData', { browser.alarms.create('fetchData', {
when: now.getTime(), when: now.getTime(),
periodInMinutes: Config.refreshTimeout, periodInMinutes: REFRESH_TIMEOUT,
}); });
} }

View File

@ -1,30 +1,35 @@
export default { export const REFRESH_TIMEOUT = 5;
refreshTimeout: 5,
spaceApiUrl: 'https://www.usrspace.at/spaceapi.json', export const API_URLS = {
calenderUrl: 'https://www.usrspace.at/calendar.php', spaceApi: 'https://www.usrspace.at/spaceapi.json',
openColor: '#33cc33', calender: 'https://www.usrspace.at/calendar.php',
closedColor: '#cc3333',
eventColor: '#9933cc',
quickLinks: [
{
iconTemplateId: 'template-icon-homepage',
url: 'https://www.usrspace.at/',
text: 'Homepage',
},
{
iconTemplateId: 'template-icon-wiki',
url: 'https://wiki.usrspace.at/',
text: 'Wiki',
},
{
iconTemplateId: 'template-icon-gitea',
url: 'https://gitea.usrspace.at/',
text: 'Gitea',
},
{
iconTemplateId: 'template-icon-nextcloud',
url: 'https://cloud.usrspace.at/',
text: 'Nextcloud',
},
],
}; };
export const BADGE_COLORS = {
open: '#33cc33',
closed: '#cc3333',
event: '#9933cc',
};
export const QUICK_LINKS = [
{
iconTemplateId: 'template-icon-homepage',
url: 'https://www.usrspace.at/',
text: 'Homepage',
},
{
iconTemplateId: 'template-icon-wiki',
url: 'https://wiki.usrspace.at/',
text: 'Wiki',
},
{
iconTemplateId: 'template-icon-gitea',
url: 'https://gitea.usrspace.at/',
text: 'Gitea',
},
{
iconTemplateId: 'template-icon-nextcloud',
url: 'https://cloud.usrspace.at/',
text: 'Nextcloud',
},
];

View File

@ -1,4 +1,4 @@
import Config from './config.js'; import { QUICK_LINKS } from './config.js';
const dateTimeFormat = Intl.DateTimeFormat([], {dateStyle: 'medium', timeStyle: 'short'}); const dateTimeFormat = Intl.DateTimeFormat([], {dateStyle: 'medium', timeStyle: 'short'});
@ -18,7 +18,7 @@ function setL10n() {
function setLinks() { function setLinks() {
const listElement = document.getElementById('link-list'); const listElement = document.getElementById('link-list');
Config.quickLinks.forEach((quickLink) => { QUICK_LINKS.forEach((quickLink) => {
const template = getCleanTemplateById('template-link-item'); const template = getCleanTemplateById('template-link-item');
template.querySelector('.link').dataset.url = quickLink.url; template.querySelector('.link').dataset.url = quickLink.url;