Save the status to the local product data
This commit is contained in:
		
							parent
							
								
									0ff26c8bea
								
							
						
					
					
						commit
						785e6e8e11
					
				
					 1 changed files with 10 additions and 9 deletions
				
			
		|  | @ -36,6 +36,9 @@ export default class product { | ||||||
| 
 | 
 | ||||||
| 		// Set private variables.
 | 		// Set private variables.
 | ||||||
| 		this.#options = options; | 		this.#options = options; | ||||||
|  | 
 | ||||||
|  | 		// Set the status. 
 | ||||||
|  | 		this.status = {}; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	/* Attach the product data to the storage. */ | 	/* Attach the product data to the storage. */ | ||||||
|  | @ -44,7 +47,6 @@ export default class product { | ||||||
| 		this.#snip = (await hash.digest(this.details, {"output": "Array"})); | 		this.#snip = (await hash.digest(this.details, {"output": "Array"})); | ||||||
| 
 | 
 | ||||||
| 		// Add the status about this data.
 | 		// Add the status about this data.
 | ||||||
| 		this.status = {}; |  | ||||||
| 		this.status[`update`] = !(await (compare([`sites`, this.URL, `snip`], this.#snip))); | 		this.status[`update`] = !(await (compare([`sites`, this.URL, `snip`], this.#snip))); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -55,34 +57,33 @@ export default class product { | ||||||
| 		// There is only a need to save the data if an update is needed. 
 | 		// There is only a need to save the data if an update is needed. 
 | ||||||
| 		if (this.status[`update`]) { | 		if (this.status[`update`]) { | ||||||
| 			// Save the data to the storage.
 | 			// Save the data to the storage.
 | ||||||
|  | 			await global.write([`sites`, this.URL, `status`], this.status, -1); | ||||||
| 			await global.write([`sites`, this.URL, `snip`], this.#snip, 1); | 			await global.write([`sites`, this.URL, `snip`], this.#snip, 1); | ||||||
| 	 | 	 | ||||||
| 			// Write the analysis data to the storage.
 | 			// Write the analysis data to the storage.
 | ||||||
| 			(this[`analysis`]) ? global.write([`sites`, this.URL, `analysis`], this.analysis, 1): false; | 			(this[`analysis`]) ? global.write([`sites`, this.URL, `analysis`], this.analysis, 1): false; | ||||||
| 		} | 		} | ||||||
| 
 |  | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	async analyze() { | 	async analyze() { | ||||||
| 		// 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`]);} | ||||||
|  | 		 | ||||||
| 		if ((this.analysis && this.analysis != null && this.analysis != undefined) ? !((typeof this.analysis).includes(`obj`) && !Array.isArray(this.analysis)) : true) { | 		if ((this.analysis && this.analysis != null && this.analysis != undefined) ? !((typeof this.analysis).includes(`obj`) && !Array.isArray(this.analysis)) : true) { | ||||||
| 			// Analyze the data.
 |  | ||||||
| 			const gemini = (await import(chrome.runtime.getURL("scripts/AI/gemini.js"))).default; | 			const gemini = (await import(chrome.runtime.getURL("scripts/AI/gemini.js"))).default; | ||||||
| 			let analyzer = new gemini (await global.read([`settings`,`analysis`,`api`,`key`]), `gemini-pro`); | 			let analyzer = new gemini (await global.read([`settings`,`analysis`,`api`,`key`]), `gemini-pro`); | ||||||
| 
 | 			 | ||||||
| 			// Analyze the data.
 |  | ||||||
| 			let PROMPT = []; |  | ||||||
| 
 |  | ||||||
| 			// Add the prompt.
 | 			// Add the prompt.
 | ||||||
|  | 			let PROMPT = []; | ||||||
| 			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))}); | ||||||
| 				 | 			 | ||||||
| 			// Run the analysis.
 | 			// Run the analysis.
 | ||||||
| 			await analyzer.generate(PROMPT); | 			await analyzer.generate(PROMPT); | ||||||
| 
 | 
 | ||||||
| 			// Raise an error if the product analysis is blocked. 
 | 			// Raise an error if the product analysis is blocked. 
 | ||||||
| 			if (analyzer.blocked) { | 			this.status[`blocked`] = analyzer.blocked; | ||||||
|  | 			if (this.status[`blocked`]) { | ||||||
| 				throw new Error((new texts(`error_msg_blocked`)).localized) | 				throw new Error((new texts(`error_msg_blocked`)).localized) | ||||||
| 			}; | 			}; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue