Create private function notify to update the progress percentage
This commit is contained in:
parent
a3e0a3eb26
commit
2f1e033466
1 changed files with 29 additions and 3 deletions
32
scripts/external/processor.js
vendored
32
scripts/external/processor.js
vendored
|
@ -47,7 +47,7 @@ export default class processor {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Indicate that the process is done.
|
// Indicate that the process is done.
|
||||||
this.product.status[`done`] = 1;
|
this.#notify(1);
|
||||||
|
|
||||||
// Save the data.
|
// Save the data.
|
||||||
this.product.save();
|
this.product.save();
|
||||||
|
@ -57,17 +57,41 @@ export default class processor {
|
||||||
Run in the chronological order. Useful when needed to be redone manually.
|
Run in the chronological order. Useful when needed to be redone manually.
|
||||||
*/
|
*/
|
||||||
async run (options = {}) {
|
async run (options = {}) {
|
||||||
this.product.status[`done`] = (this.targets) ? .25 : 0;
|
this.#notify((this.targets) ? .25 : 0);
|
||||||
|
|
||||||
// Scrape the data.
|
// Scrape the data.
|
||||||
await this.scrape();
|
await this.scrape();
|
||||||
|
|
||||||
if ((this.product.details) ? Object.keys(this.product.details).length : false) {
|
if ((this.product.details) ? Object.keys(this.product.details).length : false) {
|
||||||
this.product.status[`done`] = .5;
|
// Update the status.
|
||||||
|
await this.#notify(.5);
|
||||||
|
|
||||||
|
// Analyze the data.
|
||||||
this.analyze((options && (typeof options).includes(`obj`)) ? options[`analysis`] : null);
|
this.analyze((options && (typeof options).includes(`obj`)) ? options[`analysis`] : null);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Update the percentage of the progress.
|
||||||
|
|
||||||
|
@param {number} status the status of the progress
|
||||||
|
*/
|
||||||
|
async #notify (status) {
|
||||||
|
this.status[`done`] = status;
|
||||||
|
|
||||||
|
// Set the status of the site.
|
||||||
|
if (await global.write([`sites`, this.URL, `status`], this.status, -1)) {
|
||||||
|
// Set the status to its whole number counterpart.
|
||||||
|
let STATUS = Math.round(status * 100);
|
||||||
|
|
||||||
|
// Get the corresponding status message.
|
||||||
|
new logging(texts.localized(`scrape_msg_`.concat(String(STATUS))), (String(STATUS)).concat("%"));
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
constructor (filter, URL = window.location.href, options = {}) {
|
constructor (filter, URL = window.location.href, options = {}) {
|
||||||
this.URL = URLs.clean(URL);
|
this.URL = URLs.clean(URL);
|
||||||
this.#filter = filter;
|
this.#filter = filter;
|
||||||
|
@ -75,6 +99,8 @@ export default class processor {
|
||||||
this.product = new product();
|
this.product = new product();
|
||||||
this.targets = this.#filter[`data`];
|
this.targets = this.#filter[`data`];
|
||||||
|
|
||||||
|
this.status = {};
|
||||||
|
|
||||||
((((typeof options).includes(`obj`)) ? Object.hasOwn(options, `automatic`) : false) ? options[`automatic`] : true) ? this.run() : false;
|
((((typeof options).includes(`obj`)) ? Object.hasOwn(options, `automatic`) : false) ? options[`automatic`] : true) ? this.run() : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue