Scrape data when opened and results don't exist

This commit is contained in:
buzz-lightsnack-2007 2024-05-06 09:09:11 +08:00
parent 3cd5fb2172
commit a1d5f1f315

View file

@ -35,19 +35,24 @@ class Page_Popup extends Page {
async update(override = false) { async update(override = false) {
// Set the reference website when overriding or unset. // Set the reference website when overriding or unset.
if (override || !this[`ref`]) {this[`ref`] = await global.read([`last`])}; if (override || !this[`ref`]) {this[`ref`] = await global.read([`last`])};
// Get all the data to be used here. // Get all the data to be used here.
let DATA = { let DATA = {
"status": await global.read([`sites`, this[`ref`], `status`], -1) "status": await global.read([`sites`, this[`ref`], `status`], -1)
} }
// Update all other data. // Update all other data.
this[`status`] = (DATA[`status`]) this[`status`] = (DATA[`status`] != null)
? DATA[`status`] ? DATA[`status`]
// Accomodate data erasure. // Accomodate data erasure.
: ((this[`status`]) : ((this[`status`])
? this[`status`] ? this[`status`]
: {}); : {});
// Call for scraping of data if global data does not indicate automatic scraping or if data doesn't exist.
if (!await global.read([`settings`, `behavior`, `autoRun`]) && DATA[`status`] == null) {
this.send();
}
} }
async loading() { async loading() {
@ -72,7 +77,7 @@ class Page_Popup extends Page {
}); });
let PAGE = PAGES[((this[`status`][`done`]) let PAGE = PAGES[((this[`status`][`done`])
? ((this[`status`][`error`]) ? ((this[`status`][`error`] && this[`status`][`error`] != {})
? `error` ? `error`
: `results`) : `results`)
: `loading`)]; : `loading`)];
@ -103,6 +108,18 @@ class Page_Popup extends Page {
this.loading(); this.loading();
} }
}; };
send() {
try {
// Send a message to the content script.
Tabs.query(null, 0).then((TAB) => {
chrome.tabs.sendMessage(TAB.id, {"refresh": true});
});
} catch(err) {
logging.error(err.name, err.message, err.stack);
throw (err);
};
}
events() { events() {
(document.querySelector(`[data-action="open,settings"]`)) ? document.querySelector(`[data-action="open,settings"]`).addEventListener("click", () => { (document.querySelector(`[data-action="open,settings"]`)) ? document.querySelector(`[data-action="open,settings"]`).addEventListener("click", () => {
@ -112,15 +129,7 @@ class Page_Popup extends Page {
new Window(`help.htm`); new Window(`help.htm`);
}) : false; }) : false;
(document.querySelector(`[data-action="analysis,reload"]`)) ? document.querySelector(`[data-action="analysis,reload"]`).addEventListener("click", () => { (document.querySelector(`[data-action="analysis,reload"]`)) ? document.querySelector(`[data-action="analysis,reload"]`).addEventListener("click", () => {
try { this.send();
// Send a message to the content script.
Tabs.query(null, 0).then((TAB) => {
chrome.tabs.sendMessage(TAB.id, {"refresh": true});
});
} catch(err) {
logging.error(err.name, err.message, err.stack);
throw (err);
};
}) : false; }) : false;
} }
} }