Immediately set the current URL even prior to analysis.

This commit is contained in:
buzz-lightsnack-2007 2024-05-02 09:50:47 +08:00
parent e944977cb7
commit 39f59d129d
2 changed files with 13 additions and 5 deletions

View file

@ -5,6 +5,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/product.js"; import product from "/scripts/product.js";
import injection from "/scripts/GUI/entrypoints/inject.js" import injection from "/scripts/GUI/entrypoints/inject.js"
import {global} from "/scripts/secretariat.js";
export default class processor { export default class processor {
#filter; #filter;
@ -23,13 +24,18 @@ export default class processor {
constructor (filter) { constructor (filter) {
this.#filter = filter; this.#filter = filter;
this.notify();
this.targets = this.#filter[`data`]; this.targets = this.#filter[`data`];
this.scrape(); this.scrape();
if ((this.data) ? (((typeof (this.data)).includes(`obj`) && !Array.isArray(this.data)) ? Object.keys(this.data) : this.data) : false) { if ((this.data) ? (((typeof (this.data)).includes(`obj`) && !Array.isArray(this.data)) ? Object.keys(this.data) : this.data) : false) {
this.analyze(); this.analyze();
} }
}
async notify () {
// Indicate that this is the last updated.
await global.write([`last`], this.URL, -1);
} }
} }

View file

@ -43,9 +43,6 @@ export default class product {
// Add the data digest. // Add the data digest.
this.#snip = (await hash.digest(this.details, {"output": "Array"})); this.#snip = (await hash.digest(this.details, {"output": "Array"}));
// Indicate that this is the last updated.
await session.write([`last`], this.URL);
// Add the status about this data. // Add the status about this data.
this.status = {}; this.status = {};
this.status[`update`] = !(await (compare([`sites`, this.URL, `snip`], this.#snip))); this.status[`update`] = !(await (compare([`sites`, this.URL, `snip`], this.#snip)));
@ -70,6 +67,8 @@ export default class product {
}; };
async analyze() { async analyze() {
console.log(`run`, this[`analysis`], this.status ? (!this.status.update) : false);
// Stop when the data is already analyzed. // Stop when the data is already analyzed.
if (this[`analysis`]) {return(this.analysis)} if (this[`analysis`]) {return(this.analysis)}
else if (this.status ? (!this.status.update) : false) {this.analysis = await global.read([`sites`, this.URL, `analysis`]);} else if (this.status ? (!this.status.update) : false) {this.analysis = await global.read([`sites`, this.URL, `analysis`]);}
@ -85,9 +84,12 @@ export default class product {
PROMPT.push({"text": ((new texts(`AI_message_prompt`)).localized).concat(JSON.stringify(this.details))}); PROMPT.push({"text": ((new texts(`AI_message_prompt`)).localized).concat(JSON.stringify(this.details))});
try { try {
// Run the analysis. // Run the analysis.
await analyzer.generate(PROMPT); await analyzer.generate(PROMPT);
console.log(`done`, analyzer.blocked);
// Raise an error if the product analysis is blocked. // Raise an error if the product analysis is blocked.
if (analyzer.blocked) { if (analyzer.blocked) {
throw new Error((new texts(`error_msg_blocked`)).localized) throw new Error((new texts(`error_msg_blocked`)).localized)