rename observe to effectively add or remove the listener
This commit is contained in:
parent
f59e1d304c
commit
b9e6beb496
8 changed files with 67 additions and 30 deletions
|
@ -3,7 +3,7 @@ Window and window content management */
|
||||||
|
|
||||||
import texts from "/scripts/mapping/read.js";
|
import texts from "/scripts/mapping/read.js";
|
||||||
import Tabs from "/scripts/GUI/tabs.js";
|
import Tabs from "/scripts/GUI/tabs.js";
|
||||||
import {global, observe} from "/scripts/secretariat.js";
|
import {global, background} from "/scripts/secretariat.js";
|
||||||
import {URLs} from "/scripts/utils/URLs.js";
|
import {URLs} from "/scripts/utils/URLs.js";
|
||||||
import wait from "/scripts/utils/wait.js";
|
import wait from "/scripts/utils/wait.js";
|
||||||
import UI from "/scripts/GUI/builder/windowman.extras.js";
|
import UI from "/scripts/GUI/builder/windowman.extras.js";
|
||||||
|
@ -75,7 +75,7 @@ export default class windowman {
|
||||||
this[`headers`] = headers(((this[`options`] && (typeof this[`options`]).includes(`obj`)) ? this[`options`][`headers`] : false) ? this[`options`][`headers`] : null);
|
this[`headers`] = headers(((this[`options`] && (typeof this[`options`]).includes(`obj`)) ? this[`options`][`headers`] : false) ? this[`options`][`headers`] : null);
|
||||||
|
|
||||||
if (((this[`options`] && (typeof this[`options`]).includes(`obj`)) ? Object.hasOwn(this[`options`], `automatic`) : false) ? this[`options`][`automatic`] : true) {
|
if (((this[`options`] && (typeof this[`options`]).includes(`obj`)) ? Object.hasOwn(this[`options`], `automatic`) : false) ? this[`options`][`automatic`] : true) {
|
||||||
this.design();
|
this.design();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -348,6 +348,7 @@ export default class windowman {
|
||||||
/* Run this function if you would like to synchronize with data. */
|
/* Run this function if you would like to synchronize with data. */
|
||||||
async sync() {
|
async sync() {
|
||||||
// Prepare flags.
|
// Prepare flags.
|
||||||
|
this[`storage`] = {}
|
||||||
this[`state`] = {};
|
this[`state`] = {};
|
||||||
this[`state`][`read/write`] = 0;
|
this[`state`][`read/write`] = 0;
|
||||||
|
|
||||||
|
@ -522,11 +523,11 @@ export default class windowman {
|
||||||
|
|
||||||
fill();
|
fill();
|
||||||
write();
|
write();
|
||||||
extras();
|
|
||||||
|
|
||||||
// Update the input elements.
|
// Update the input elements.
|
||||||
observe((what) => {
|
this[`storage`][`background`] = () => {fill();}
|
||||||
fill();
|
new background((DATA) => {
|
||||||
|
this[`storage`][`background`]();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
import BrowserIcon from '/scripts/GUI/browsericon.js';
|
import BrowserIcon from '/scripts/GUI/browsericon.js';
|
||||||
import Tabs from '/scripts/GUI/tabs.js';
|
import Tabs from '/scripts/GUI/tabs.js';
|
||||||
import texts from "/scripts/mapping/read.js";
|
import texts from "/scripts/mapping/read.js";
|
||||||
import {global, observe} from "/scripts/secretariat.js";
|
import {global, background} from "/scripts/secretariat.js";
|
||||||
import {URLs} from "/scripts/utils/URLs.js";
|
import {URLs} from "/scripts/utils/URLs.js";
|
||||||
|
|
||||||
const CONFIG = chrome.runtime.getURL("styles/colors/icon.json");
|
const CONFIG = chrome.runtime.getURL("styles/colors/icon.json");
|
||||||
|
@ -63,7 +63,7 @@ class IconIndicator {
|
||||||
}, {"tabId": TAB.id});
|
}, {"tabId": TAB.id});
|
||||||
|
|
||||||
showDetails(LOCATION, TAB.id);
|
showDetails(LOCATION, TAB.id);
|
||||||
observe((changes) => {
|
new background((changes) => {
|
||||||
showDetails(LOCATION, TAB.id);
|
showDetails(LOCATION, TAB.id);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
This script provides installation run scripts.
|
This script provides installation run scripts.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { template, global, observe } from "../secretariat.js";
|
import { template, global, background} from "../secretariat.js";
|
||||||
import filters from "../filters.js";
|
import filters from "../filters.js";
|
||||||
import pointer from "../data/pointer.js";
|
import pointer from "../data/pointer.js";
|
||||||
let config = chrome.runtime.getURL("config/config.json");
|
let config = chrome.runtime.getURL("config/config.json");
|
||||||
|
@ -96,7 +96,6 @@ export default class fc {
|
||||||
let UPDATER = updater_set();
|
let UPDATER = updater_set();
|
||||||
|
|
||||||
let updater_interval = async () => {
|
let updater_interval = async () => {
|
||||||
|
|
||||||
if ((await global.read([`settings`, `sync`, `duration`])) ? (await global.read([`settings`, `sync`, `duration`] * (60 ** 2) * 1000 != DURATION_PREFERENCES[`duration`])) : false) {
|
if ((await global.read([`settings`, `sync`, `duration`])) ? (await global.read([`settings`, `sync`, `duration`] * (60 ** 2) * 1000 != DURATION_PREFERENCES[`duration`])) : false) {
|
||||||
DURATION_PREFERENCES[`duration`] = await global.global.read([`settings`, `sync`, `duration`]) * (60 ** 2) * 1000;
|
DURATION_PREFERENCES[`duration`] = await global.global.read([`settings`, `sync`, `duration`]) * (60 ** 2) * 1000;
|
||||||
|
|
||||||
|
@ -106,7 +105,7 @@ export default class fc {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
observe(updater_cancel);
|
new background(updater_cancel);
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
9
scripts/external/processor.js
vendored
9
scripts/external/processor.js
vendored
|
@ -4,7 +4,7 @@ Process the information on the website and display it on screen.
|
||||||
|
|
||||||
import scraper from "/scripts/external/scraper.js";
|
import scraper from "/scripts/external/scraper.js";
|
||||||
import product from "/scripts/data/product.js";
|
import product from "/scripts/data/product.js";
|
||||||
import {global, observe} from "/scripts/secretariat.js";
|
import {global, background} from "/scripts/secretariat.js";
|
||||||
import logging from "/scripts/logging.js";
|
import logging from "/scripts/logging.js";
|
||||||
import texts from "/scripts/mapping/read.js";
|
import texts from "/scripts/mapping/read.js";
|
||||||
import {URLs} from "/scripts/utils/URLs.js";
|
import {URLs} from "/scripts/utils/URLs.js";
|
||||||
|
@ -92,17 +92,16 @@ export default class processor {
|
||||||
const wait = async () => {
|
const wait = async () => {
|
||||||
let RUN = false;
|
let RUN = false;
|
||||||
if (await global.read([`settings`,`analysis`,`api`,`key`])) {
|
if (await global.read([`settings`,`analysis`,`api`,`key`])) {
|
||||||
console.log(`run`);
|
|
||||||
await main();
|
await main();
|
||||||
RUN = true;
|
RUN = true;
|
||||||
} else {
|
} else {
|
||||||
new logging(texts.localized(`AIkey_message_waiting_title`), texts.localized(`AIkey_message_waiting_body`))
|
new logging(texts.localized(`AIkey_message_waiting_title`), texts.localized(`AIkey_message_waiting_body`));
|
||||||
observe(async () => {
|
new background(async () => {
|
||||||
if ((!RUN) ? (await global.read([`settings`,`analysis`,`api`,`key`])) : false) {
|
if ((!RUN) ? (await global.read([`settings`,`analysis`,`api`,`key`])) : false) {
|
||||||
await main();
|
await main();
|
||||||
RUN = true;
|
RUN = true;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ Display the error screen details.
|
||||||
import Page from "/scripts/pages/page.js";
|
import Page from "/scripts/pages/page.js";
|
||||||
import Tabs from "/scripts/GUI/tabs.js";
|
import Tabs from "/scripts/GUI/tabs.js";
|
||||||
|
|
||||||
import {global, observe} from "/scripts/secretariat.js";
|
import {global, background} from "/scripts/secretariat.js";
|
||||||
import pointer from "/scripts/data/pointer.js";
|
import pointer from "/scripts/data/pointer.js";
|
||||||
import texts from "/scripts/mapping/read.js";
|
import texts from "/scripts/mapping/read.js";
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ class Page_Error extends Page {
|
||||||
|
|
||||||
async background() {
|
async background() {
|
||||||
// Wait until a change in the session storage.
|
// Wait until a change in the session storage.
|
||||||
observe(async (changes) => {
|
new background(async (changes) => {
|
||||||
await this.update();
|
await this.update();
|
||||||
this.fill();
|
this.fill();
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Import modules.
|
// Import modules.
|
||||||
import {global, observe} from "/scripts/secretariat.js";
|
import {global, background} from "/scripts/secretariat.js";
|
||||||
import Window from "/scripts/GUI/window.js";
|
import Window from "/scripts/GUI/window.js";
|
||||||
import Page from "/scripts/pages/page.js";
|
import Page from "/scripts/pages/page.js";
|
||||||
import Loader from "/scripts/GUI/loader.js";
|
import Loader from "/scripts/GUI/loader.js";
|
||||||
|
@ -20,7 +20,7 @@ class Page_Popup extends Page {
|
||||||
|
|
||||||
async background() {
|
async background() {
|
||||||
// Wait until a change in the session storage.
|
// Wait until a change in the session storage.
|
||||||
observe((changes) => {
|
new background((changes) => {
|
||||||
this.update();
|
this.update();
|
||||||
this.switch();
|
this.switch();
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,7 +4,7 @@ Results.js
|
||||||
Fills the page with the results of the analysis.
|
Fills the page with the results of the analysis.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {global, observe} from "/scripts/secretariat.js";
|
import {global, background} from "/scripts/secretariat.js";
|
||||||
import Page from "/scripts/pages/page.js";
|
import Page from "/scripts/pages/page.js";
|
||||||
import nested from "../utils/nested.js";
|
import nested from "../utils/nested.js";
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ class Page_Results extends Page {
|
||||||
|
|
||||||
async background() {
|
async background() {
|
||||||
// Wait until a change in the session storage.
|
// Wait until a change in the session storage.
|
||||||
observe((changes) => {
|
new background((changes) => {
|
||||||
this.update();
|
this.update();
|
||||||
this.content();
|
this.content();
|
||||||
// First, update site data but retain the URL.
|
// First, update site data but retain the URL.
|
||||||
|
|
|
@ -505,14 +505,52 @@ class managed {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Run a script when the browser storage has been changed.
|
Background data execution
|
||||||
|
|
||||||
@param {object} reaction the function to run
|
|
||||||
*/
|
*/
|
||||||
export function observe(reaction) {
|
class background {
|
||||||
chrome.storage.onChanged.addListener((changes, namespace) => {
|
/*
|
||||||
reaction(changes, namespace);
|
Add or prepare a listener.
|
||||||
});
|
|
||||||
|
@param {function} callback the function to run
|
||||||
|
@param {object} options the options
|
||||||
|
*/
|
||||||
|
constructor (callback, options) {
|
||||||
|
// Set the listener.
|
||||||
|
this.callback = callback;
|
||||||
|
|
||||||
|
// Run the listener if necessary.
|
||||||
|
((options ? Object.hasOwn(options, `run`) : false) ? options[`run`] : true) ? this.run() : false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Set the listener.
|
||||||
|
*/
|
||||||
|
run () {
|
||||||
|
return(chrome.storage.onChanged.addListener((changes, namespace) => {
|
||||||
|
this.callback({"changes": changes, "namespace": namespace});
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Cancel the listener.
|
||||||
|
*/
|
||||||
|
cancel () {
|
||||||
|
// Cancel the listener.
|
||||||
|
return(chrome.storage.onChanged.removeListener((changes, namespace) => {
|
||||||
|
this.callback({"changes": changes, "namespace": namespace});
|
||||||
|
}))
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export {global, session, template, managed};
|
/*
|
||||||
|
Run a script when the browser storage has been changed.
|
||||||
|
|
||||||
|
@param {function} callback the function to run
|
||||||
|
*/
|
||||||
|
export function observe(callback) {
|
||||||
|
return(chrome.storage.onChanged.addListener((changes, namespace) => {
|
||||||
|
callback({"changes": changes, "namespace": namespace});
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
export {global, session, template, managed, background};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue