initial attempt for a removal function

This commit is contained in:
buzzcode2007 2024-04-08 20:26:11 +08:00
parent 3a49487556
commit 921dae135b

View file

@ -2,6 +2,8 @@
Manage filters. Manage filters.
*/ */
const secretariat = await import(chrome.runtime.getURL("scripts/secretariat.js"));
export default class filters { export default class filters {
constructor() { constructor() {
this.all = async () => { this.all = async () => {
@ -28,10 +30,7 @@ export default class filters {
); );
// Get the filters. // Get the filters.
let filter = await secretariat.read(`filters`, -1, { let filter = await secretariat.search(`filters`, -1, [`URL`]);
field: "URL",
"test value": URL,
});
// If there are filters, then filter the URL. // If there are filters, then filter the URL.
return filter; return filter;
@ -89,8 +88,8 @@ export default class filters {
// Add every item to the queue based on what was loaded first. // Add every item to the queue based on what was loaded first.
if (await secretariat.read(`filters`, -1)) { if (await secretariat.read(`filters`, -1)) {
for (let FILTER_URL_INDEX = 0; FILTER_URL_INDEX < Object.keys(await secretariat.read(`filters`, -1)).length; FILTER_URL_INDEX++) { for (let FILTER_URL_INDEX = 0; FILTER_URL_INDEX < Object.keys(await secretariat.read(`filters`, -1)).length; FILTER_URL_INDEX++) {
let FILTER_URL = Object.keys(await secretariat.read(`filters`, -1))[FILTER_URL_INDEX]; console.log(await secretariat.read([`settings`], 1));
console.log(FILTER_URL); let FILTER_URL = Object.keys(await secretariat.read([`settings`, `filters`], 1))[FILTER_URL_INDEX];
if (FILTER_URL.includes(`://`)) { if (FILTER_URL.includes(`://`)) {
filters.enqueue(FILTER_URL); filters.enqueue(FILTER_URL);
} }
@ -107,11 +106,10 @@ export default class filters {
texts.localized(`settings_filters_update_status`, null, [filter_URL]), texts.localized(`settings_filters_update_status`, null, [filter_URL]),
); );
console.log(filter_URL);
// Create promise of downloading. // Create promise of downloading.
let filter_download = net.download(filter_URL, `JSON`, false, true); let filter_download = net.download(filter_URL, `JSON`, false, true);
filter_download filter_download
.then((result) => { .then(async function (result) {
// Only work when the filter is valid. // Only work when the filter is valid.
if (result) { if (result) {
// Write the filter to storage. // Write the filter to storage.
@ -119,7 +117,7 @@ export default class filters {
alerts.log(texts.localized(`settings_filters_update_status_complete`,null,[filter_URL])); alerts.log(texts.localized(`settings_filters_update_status_complete`,null,[filter_URL]));
// Add the filter to the sync list. // Add the filter to the sync list.
if (secretariat.read(["settings", `filters`, filter_URL], 1) == null) { if ((await secretariat.read(["settings", `filters`, filter_URL], 1)) == null) {
secretariat.write(["settings", `filters`, filter_URL], true, 1); secretariat.write(["settings", `filters`, filter_URL], true, 1);
} }
} }
@ -139,4 +137,23 @@ export default class filters {
return this.all; return this.all;
} }
/* Select the most appropriate filter based on a URL.
@param {string} URL the URL to remove
*/
async remove(URL) {
let CHOICE = await secretariat.forget(`filters`, URL);
if (CHOICE) {
console.log(await secretariat.read(null, -1), URL);
if (await secretariat.read([`settings`, `filters`, URL], 1)) {
console.log(await secretariat.read([`settings`, `filters`], 1));
let DATA_GROUP = await secretariat.read([`settings`, `filters`], 1);
delete DATA_GROUP[URL];
await secretariat.write([`settings`, `filters`], DATA_GROUP, 1);
};
}
return CHOICE;
}
} }