move background scripts to a dedicated folder, but move actions outside
This commit is contained in:
		
							parent
							
								
									0df989512c
								
							
						
					
					
						commit
						ea6dd9be93
					
				
					 8 changed files with 133 additions and 136 deletions
				
			
		
							
								
								
									
										14
									
								
								scripts/actions.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								scripts/actions.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| import Tabs from "/scripts/GUI/tabs.js"; | ||||
| import EntryManager from "/scripts/external/entries/manager.js" | ||||
| 
 | ||||
| export default class user_actions { | ||||
| 	static init() { | ||||
| 		chrome.sidePanel.setPanelBehavior({ openPanelOnActionClick: true }).catch((error) => console.error(error)); | ||||
| 
 | ||||
| 		user_actions.tabs(); | ||||
| 	}; | ||||
| 
 | ||||
| 	static tabs() { | ||||
| 		new EntryManager(); | ||||
| 	} | ||||
| }; | ||||
|  | @ -1,8 +0,0 @@ | |||
| import Tabs from "/scripts/GUI/tabs.js"; | ||||
| import EntryManager from "/scripts/external/entries/manager.js" | ||||
| 
 | ||||
| export default class Watcher_Tabs { | ||||
|      constructor () { | ||||
|           new EntryManager(); | ||||
|      }; | ||||
| } | ||||
|  | @ -1,9 +0,0 @@ | |||
| import Watcher_Tabs from "./tabs.js"; | ||||
| 
 | ||||
| export default class user_actions { | ||||
| 	static init() { | ||||
| 		chrome.sidePanel.setPanelBehavior({ openPanelOnActionClick: true }).catch((error) => console.error(error)); | ||||
| 
 | ||||
| 		new Watcher_Tabs(); | ||||
| 	}; | ||||
| }; | ||||
							
								
								
									
										109
									
								
								scripts/background/fc.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								scripts/background/fc.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,109 @@ | |||
| /* fc.js | ||||
| This script provides installation run scripts. | ||||
| */ | ||||
| 
 | ||||
| import { init, read, write, observe } from "../secretariat.js"; | ||||
| import filters from "../filters.js"; | ||||
| let config = chrome.runtime.getURL("config/config.json"); | ||||
| 
 | ||||
| export default class fc { | ||||
| 	// Start the out of the box experience.
 | ||||
| 	static hello() { | ||||
| 		// the OOBE must be in the config.
 | ||||
| 		fetch(config) | ||||
| 			.then((response) => response.json()) | ||||
| 			.then((jsonData) => { | ||||
| 				let configuration = jsonData[`OOBE`]; | ||||
| 
 | ||||
| 				if (configuration) { | ||||
| 					configuration.forEach((item) => { | ||||
| 						chrome.tabs.create({ url: item }, function (tab) {}); | ||||
| 					}); | ||||
| 				} | ||||
| 			}) | ||||
| 			.catch((error) => { | ||||
| 				console.error(error); | ||||
| 			}); | ||||
| 	} | ||||
| 
 | ||||
| 	// Initialize the configuration. 
 | ||||
| 	static setup() { | ||||
| 		// the OOBE must be in the config.
 | ||||
| 		fetch(config) | ||||
| 			.then((response) => response.json()) | ||||
| 			.then(async (jsonData) => { | ||||
| 				let configuration = jsonData; | ||||
| 				 | ||||
| 				// Run the storage initialization.
 | ||||
| 				delete configuration[`OOBE`]; | ||||
| 				init(configuration); | ||||
| 
 | ||||
| 				// Update the filters to sync with synchronized storage data. 
 | ||||
| 				(new filters).update(); | ||||
| 			}) | ||||
| 			.catch((error) => { | ||||
| 				console.error(error); | ||||
| 			}); | ||||
| 	} | ||||
| 
 | ||||
| 	static trigger() { | ||||
| 		chrome.runtime.onInstalled.addListener(function (details) { | ||||
| 			(details.reason == chrome.runtime.OnInstalledReason.INSTALL) ? fc.hello() : null; | ||||
| 			fc.setup(); | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	// main function 
 | ||||
| 	static run() { | ||||
| 		fc.trigger(); | ||||
| 		fc.every(); | ||||
| 	} | ||||
| 
 | ||||
| 	static async every() { | ||||
| 		read([`settings`,`sync`]).then(async (DURATION_PREFERENCES) => { | ||||
| 			// Forcibly create the preference if it doesn't exist. It's required! 
 | ||||
| 			if (!(typeof DURATION_PREFERENCES).includes(`obj`) || DURATION_PREFERENCES == null || Array.isArray(DURATION_PREFERENCES)) { | ||||
| 				DURATION_PREFERENCES = {}; | ||||
| 				DURATION_PREFERENCES[`duration`] = 24; | ||||
| 	 | ||||
| 				// Write it. 
 | ||||
| 				await write([`settings`, `sync`], DURATION_PREFERENCES, -1); | ||||
| 			}; | ||||
| 	 | ||||
| 			if (((typeof DURATION_PREFERENCES).includes(`obj`) && DURATION_PREFERENCES != null && !Array.isArray(DURATION_PREFERENCES)) ? ((DURATION_PREFERENCES[`duration`]) ? (DURATION_PREFERENCES[`duration`] > 0) : false) : false) { | ||||
| 				// Convert DURATION_PREFERENCES[`duration`]) from hrs to milliseconds.
 | ||||
| 				DURATION_PREFERENCES[`duration`] = DURATION_PREFERENCES[`duration`] * (60 ** 2) * 1000; | ||||
| 				let filter = new filters; | ||||
| 	 | ||||
| 				// Now, set the interval. 
 | ||||
| 				let updater_set = () => { | ||||
| 					setInterval(async () => { | ||||
| 						// Update the filters. 
 | ||||
| 						filter.update(); | ||||
| 					}, DURATION_PREFERENCES[`duration`]); | ||||
| 				}; | ||||
| 	 | ||||
| 				// Provide a way to cancel the interval. 
 | ||||
| 				let updater_cancel = (updater) => { | ||||
| 					clearInterval(updater); | ||||
| 				}; | ||||
| 
 | ||||
| 				let UPDATER = updater_set(); | ||||
| 
 | ||||
| 				let updater_interval = async () => { | ||||
| 					 | ||||
| 					if ((await read([`settings`, `sync`, `duration`])) ? (await read([`settings`, `sync`, `duration`] * (60 ** 2) * 1000 != DURATION_PREFERENCES[`duration`])) : false) { | ||||
| 						DURATION_PREFERENCES[`duration`] = await read([`settings`, `sync`, `duration`]) * (60 ** 2) * 1000; | ||||
| 
 | ||||
| 						// Reset the updater. 
 | ||||
| 						updater_cancel(UPDATER); | ||||
| 						UPDATER = updater_set(); | ||||
| 					} | ||||
| 				}; | ||||
| 
 | ||||
| 				observe(updater_cancel); | ||||
| 			}; | ||||
| 		}) | ||||
| 
 | ||||
| 	}; | ||||
| } | ||||
							
								
								
									
										9
									
								
								scripts/background/shopAI.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								scripts/background/shopAI.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| /* ShopAI | ||||
| Shop wisely with AI! | ||||
| */ | ||||
| 
 | ||||
| import fc from './fc.js'; | ||||
| import user_actions from "../actions.js"; | ||||
| 
 | ||||
| fc.run(); | ||||
| user_actions.init(); | ||||
							
								
								
									
										109
									
								
								scripts/fc.js
									
										
									
									
									
								
							
							
						
						
									
										109
									
								
								scripts/fc.js
									
										
									
									
									
								
							|  | @ -1,109 +0,0 @@ | |||
| /* fc.js | ||||
| This does not stand for "FamiCom" but instead on Finalization and Completion. This script provides installation run scripts. | ||||
| */ | ||||
| 
 | ||||
| import { init, read, write, observe } from "./secretariat.js"; | ||||
| import filters from "./filters.js"; | ||||
| let config = chrome.runtime.getURL("config/config.json"); | ||||
| 
 | ||||
| export default class fc { | ||||
|   // Start the out of the box experience.
 | ||||
|   static hello() { | ||||
|     // the OOBE must be in the config.
 | ||||
|     fetch(config) | ||||
|       .then((response) => response.json()) | ||||
|       .then((jsonData) => { | ||||
|         let configuration = jsonData[`OOBE`]; | ||||
| 
 | ||||
|         if (configuration) { | ||||
|           configuration.forEach((item) => { | ||||
|             chrome.tabs.create({ url: item }, function (tab) {}); | ||||
|           }); | ||||
|         } | ||||
|       }) | ||||
|       .catch((error) => { | ||||
|         console.error(error); | ||||
|       }); | ||||
|   } | ||||
| 
 | ||||
|   // Initialize the configuration. 
 | ||||
|   static setup() { | ||||
|     // the OOBE must be in the config.
 | ||||
|     fetch(config) | ||||
|       .then((response) => response.json()) | ||||
|       .then(async (jsonData) => { | ||||
|         let configuration = jsonData; | ||||
|          | ||||
|         // Run the storage initialization.
 | ||||
|         delete configuration[`OOBE`]; | ||||
|         init(configuration); | ||||
| 
 | ||||
|         // Update the filters to sync with synchronized storage data. 
 | ||||
|         (new filters).update(); | ||||
|       }) | ||||
|       .catch((error) => { | ||||
|         console.error(error); | ||||
|       }); | ||||
|   } | ||||
| 
 | ||||
|   static trigger() { | ||||
|     chrome.runtime.onInstalled.addListener(function (details) { | ||||
|       (details.reason == chrome.runtime.OnInstalledReason.INSTALL) ? fc.hello() : null; | ||||
|       fc.setup(); | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
|   // main function 
 | ||||
|   static run() { | ||||
|     fc.trigger(); | ||||
|     fc.every(); | ||||
|   } | ||||
| 
 | ||||
|   static async every() { | ||||
|     read([`settings`,`sync`]).then(async (DURATION_PREFERENCES) => { | ||||
|       // Forcibly create the preference if it doesn't exist. It's required! 
 | ||||
|       if (!(typeof DURATION_PREFERENCES).includes(`obj`) || DURATION_PREFERENCES == null || Array.isArray(DURATION_PREFERENCES)) { | ||||
|         DURATION_PREFERENCES = {}; | ||||
|         DURATION_PREFERENCES[`duration`] = 24; | ||||
|    | ||||
|         // Write it. 
 | ||||
|         await write([`settings`, `sync`], DURATION_PREFERENCES, -1); | ||||
|       }; | ||||
|    | ||||
|       if (((typeof DURATION_PREFERENCES).includes(`obj`) && DURATION_PREFERENCES != null && !Array.isArray(DURATION_PREFERENCES)) ? ((DURATION_PREFERENCES[`duration`]) ? (DURATION_PREFERENCES[`duration`] > 0) : false) : false) { | ||||
|         // Convert DURATION_PREFERENCES[`duration`]) from hrs to milliseconds.
 | ||||
|         DURATION_PREFERENCES[`duration`] = DURATION_PREFERENCES[`duration`] * (60 ** 2) * 1000; | ||||
|         let filter = new filters; | ||||
|    | ||||
|         // Now, set the interval. 
 | ||||
|         let updater_set = () => { | ||||
|           setInterval(async () => { | ||||
|             // Update the filters. 
 | ||||
|             filter.update(); | ||||
|           }, DURATION_PREFERENCES[`duration`]); | ||||
|         }; | ||||
|    | ||||
|         // Provide a way to cancel the interval. 
 | ||||
|         let updater_cancel = (updater) => { | ||||
|           clearInterval(updater); | ||||
|         }; | ||||
| 
 | ||||
|         let UPDATER = updater_set(); | ||||
| 
 | ||||
|         let updater_interval = async () => { | ||||
|            | ||||
|           if ((await read([`settings`, `sync`, `duration`])) ? (await read([`settings`, `sync`, `duration`] * (60 ** 2) * 1000 != DURATION_PREFERENCES[`duration`])) : false) { | ||||
|             DURATION_PREFERENCES[`duration`] = await read([`settings`, `sync`, `duration`]) * (60 ** 2) * 1000; | ||||
| 
 | ||||
|             // Reset the updater. 
 | ||||
|             updater_cancel(UPDATER); | ||||
|             UPDATER = updater_set(); | ||||
|           } | ||||
|         }; | ||||
| 
 | ||||
|         observe(updater_cancel); | ||||
|       }; | ||||
|     }) | ||||
| 
 | ||||
|   }; | ||||
| } | ||||
|  | @ -1,9 +0,0 @@ | |||
| /* ShopAI | ||||
| Shop wisely with AI! | ||||
| */ | ||||
| 
 | ||||
| import fc from './fc.js'; | ||||
| import user_actions from "./actions/user_actions.js"; | ||||
| 
 | ||||
| fc.run(); | ||||
| user_actions.init(); | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue