use secretariat.compare() instead of building its own functionality
This commit is contained in:
		
							parent
							
								
									b4133bb4f8
								
							
						
					
					
						commit
						098fcb2d51
					
				
					 1 changed files with 6 additions and 21 deletions
				
			
		|  | @ -3,7 +3,8 @@ Ask product information to Google Gemini. */ | ||||||
| 
 | 
 | ||||||
| // Import the storage management module.
 | // Import the storage management module.
 | ||||||
| const secretariat = await import(chrome.runtime.getURL("scripts/secretariat.js")); | const secretariat = await import(chrome.runtime.getURL("scripts/secretariat.js")); | ||||||
| const texts = (await import(chrome.runtime.getURL("scripts/strings/read.js"))).default; | import hash from "/scripts/strings/hash.js"; | ||||||
|  | import texts from "/scripts/strings/read.js"; | ||||||
| 
 | 
 | ||||||
| // Don't forget to set the class as export default.
 | // Don't forget to set the class as export default.
 | ||||||
| export default class product { | export default class product { | ||||||
|  | @ -38,28 +39,12 @@ export default class product { | ||||||
| 
 | 
 | ||||||
| 	/* Attach the product data to the storage. */ | 	/* Attach the product data to the storage. */ | ||||||
| 	async attach() { | 	async attach() { | ||||||
| 		// First get the hash of this data. 
 |  | ||||||
| 		const digest = async (DATA, OPTIONS) => { |  | ||||||
| 			DATA = {"raw": DATA}; |  | ||||||
| 			DATA[`hashed`] = await(crypto.subtle.digest(((OPTIONS != null && (typeof OPTIONS).includes(`obj`) && !Array.isArray(OPTIONS)) ? OPTIONS[`digestion`] : false) ? OPTIONS[`digestion`] : "SHA-512", (new TextEncoder()).encode(DATA[`raw`]))); |  | ||||||
| 			return (DATA[`hashed`]);	 |  | ||||||
| 		}; |  | ||||||
| 
 |  | ||||||
| 		 |  | ||||||
| 		// Compare. 
 |  | ||||||
| 		const compare = async(URL, digest) => { |  | ||||||
| 			let RESULT = await secretariat.read([`sites`, URL, `data`]); |  | ||||||
| 			 |  | ||||||
| 			return ((RESULT) ? (RESULT == digest) : false); |  | ||||||
| 		}; |  | ||||||
| 		 |  | ||||||
| 		 |  | ||||||
| 		// Add the data digest. 
 | 		// Add the data digest. 
 | ||||||
| 		this.#snip = await digest(this.details, this.#options); | 		this.#snip = (await hash.digest(this.details, {"output": "Number"})); | ||||||
| 		 | 		 | ||||||
| 		// Add the status about this data. 
 | 		// Add the status about this data. 
 | ||||||
| 		this.status = {}; | 		this.status = {}; | ||||||
| 		this.status[`update`] = !compare(this.URL, this.#snip); | 		this.status[`update`] = !secretariat.compare([`sites`, this.URL, `snip`], this.#snip); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	async save() { | 	async save() { | ||||||
|  | @ -67,7 +52,7 @@ export default class product { | ||||||
| 		if (!this.#snip) {throw new ReferenceError((new texts(`error_msg_notattached`)).localized)}; | 		if (!this.#snip) {throw new ReferenceError((new texts(`error_msg_notattached`)).localized)}; | ||||||
| 
 | 
 | ||||||
| 		// Save the data to the storage.
 | 		// Save the data to the storage.
 | ||||||
| 		await secretariat.write([`sites`, this.URL, `data`], this.#snip, 1); | 		await secretariat.write([`sites`, this.URL, `snip`], this.#snip, 1); | ||||||
| 
 | 
 | ||||||
| 		// Write the analysis data to the storage. 
 | 		// Write the analysis data to the storage. 
 | ||||||
| 		(this[`analysis`]) ? secretariat.write([`sites`, this.URL, `analysis`], this.analysis, 1): false; | 		(this[`analysis`]) ? secretariat.write([`sites`, this.URL, `analysis`], this.analysis, 1): false; | ||||||
|  | @ -77,7 +62,7 @@ export default class product { | ||||||
| 		// 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 secretariat.read([`sites`, this.URL, `analysis`]);} | 		else if (this.status ? (!this.status.update) : false) {this.analysis = await secretariat.read([`sites`, this.URL, `analysis`]);} | ||||||
| 		if ((this.analysis && this.analysis != null && this.analysis != undefined) ? !((typeof this.analysis).contains(`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. 
 | 			// 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 secretariat.read([`settings`,`analysis`,`api`,`key`]), `gemini-pro`); | 			let analyzer = new gemini (await secretariat.read([`settings`,`analysis`,`api`,`key`]), `gemini-pro`); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue