split the content script from watch

This commit is contained in:
buzz-lightsnack-2007 2024-04-26 21:33:28 +08:00
parent a226f12645
commit 3e683a7803
2 changed files with 63 additions and 56 deletions

14
scripts/external/content.js vendored Normal file
View file

@ -0,0 +1,14 @@
/*
content.js
The content script
*/
// Import the necessary modules.
(async () => {
// Import the watchman module.
let watchman = await import(chrome.runtime.getURL("scripts/external/watch.js"));
// Begin the job.
watchman.job();
})

View file

@ -2,68 +2,61 @@
Be sensitive to changes and update the state. Be sensitive to changes and update the state.
*/ */
let main = (async () => { import filters from "/scripts/filters.js";
// Import modules. import processor from "/scripts/external/processor.js";
let filters = new ((await import(chrome.runtime.getURL("scripts/filters.js"))).default); import logging from "/scripts/logging.js";
const processor = (await import(chrome.runtime.getURL("scripts/external/processor.js"))).default; import texts from "/scripts/mapping/read.js";
const logging = (await import(chrome.runtime.getURL("scripts/logging.js"))).default;
const texts = (await import(chrome.runtime.getURL("scripts/strings/read.js"))).default;
class watchman {
/* Check the current URL.
@param {string} URL the page URL; default value is the current webpage export default class watchman {
@return {dictionary} the filter to follow /* Check the current URL.
*/
static async observe(URL = window.location.href) {
// Create the variable to determine the corresponding key.
let activity = await filters.select(URL);
return activity; @param {string} URL the page URL; default value is the current webpage
} @return {dictionary} the filter to follow
/* Act on the page.
@param {dictionary} filters the filter to work with
@return {boolean} the state
*/ */
static act(matches) { static async observe(URL = window.location.href) {
// Let user know that the website is supported, if ever they have opened the console. // Create the variable to determine the corresponding key.
new logging((new texts(`message_external_supported`)).localized); let activity = await (new filters).select(URL);
// Show loading screen while the load is incomplete.
return activity;
// Begin only when the page is fully loaded.
window.addEventListener(`DOMContentLoaded`, (event) => {
// Begin processing.
let PROC = new processor(matches);
// Remove the loading screen.
});
}
/* Set the program to standby utnil next load.
*/
static standby() {
// Set the icon to indicate that it's not active.
}
static async job() {
/* The main action. */
(watchman.observe()).then((RULES) => {
if (RULES && Object.keys(RULES).length !== 0) {
watchman.act(RULES);
} else {
watchman.standby();
}
});
}
} }
watchman.job(); /* Act on the page.
});
@param {dictionary} filters the filter to work with
@return {boolean} the state
*/
static act(matches) {
// Let user know that the website is supported, if ever they have opened the console.
new logging((new texts(`message_external_supported`)).localized);
// Show loading screen while the load is incomplete.
main(); // Begin only when the page is fully loaded.
window.addEventListener(`DOMContentLoaded`, (event) => {
// Begin processing.
let PROC = new processor(matches);
// Remove the loading screen.
});
}
/* Set the program to standby utnil next load.
*/
static standby() {
// Set the icon to indicate that it's not active.
}
static async job() {
/* The main action. */
(watchman.observe()).then((RULES) => {
if (RULES && Object.keys(RULES).length !== 0) {
watchman.act(RULES);
} else {
watchman.standby();
}
});
}
}