diff --git a/scripts/outside/reader.js b/scripts/outside/reader.js deleted file mode 100644 index dba1241..0000000 --- a/scripts/outside/reader.js +++ /dev/null @@ -1,69 +0,0 @@ -/* reader.js -Read the contents of the page. -*/ - -export default class reader { - constructor(scraper_fields) { - let field_content; - - if (Array.isArray(scraper_fields)) { - // Convert scraper_fields to a dictionary. - let scraper_fields_all = {}; - - for (let field_index = 0; field_index < scraper_fields.length; field_index++) { - scraper_fields_all[field_index] = scraper_fields[field_index]; - } - - scraper_fields = scraper_fields_all; - }; - if (typeof scraper_fields === "object" && scraper_fields != null && scraper_fields) { - - /* Read for the particular fields. */ - function read(fields) { - let field_names = Object.keys(fields), field_data = {}; - - for (let field_index = 0; field_index < fields.length; field_index++) { - let field_current = fields[field_names[field_index]]; - - if (field_current) { - // Check if array. - if (Array.isArray(field_current)) { - // Temporarily create an empty list. - field_data[field_names[field_index]] = []; - - if (typeof field_current[0] === "object" && field_current[0] != null && field_current[0]) { - field_data[field_names[field_index]].push(read(field_current[0])); - } else { - let matching_elements = (document.querySelectorAll(field_current[0])); - for (let field_current_index = 0; field_current_index < matching_elements.length; field_current_index++) { - field_data[field_names[field_index]].push(matching_elements[field_current_index].innerText); - }; - }; - - // Must cease to exist if it was just empty anyway. - if ((field_data[field_names[field_index]]).length <= 0) { - delete field_data[field_names[field_index]]; - } - } else if (typeof field_current === "object" && field_current != null && field_current) { - field_data[field_names[field_index]] = read(field_current); - } else { - if (document.querySelector(field_current)) { - field_data[field_names[field_index]] = document.querySelector(field_current).innerText; - } - }; - }; - }; - - return field_data; - }; - - field_content = read(scraper_fields); - } - - if (Object.keys(field_content).length > 0) { - for (let field_name in Object.keys(field_content)) { - this[field_name] = field_content[field_name]; - } - } - } -} \ No newline at end of file diff --git a/scripts/outside/scraper.js b/scripts/outside/scraper.js new file mode 100644 index 0000000..2c97cce --- /dev/null +++ b/scripts/outside/scraper.js @@ -0,0 +1,57 @@ +/* reader.js +Read the contents of the page. +*/ + +export default class scraper { + constructor(scraper_fields) { + let field_content; + + if ((typeof scraper_fields).includes("object") && scraper_fields != null && scraper_fields) { + + /* Read for the particular fields. */ + function read(fields) { + let field_data = {}; + + console.log(Object.keys(fields)); + + (Object.keys(fields)).forEach((FIELD_NAME) => { + let FIELD = {"name": FIELD_NAME, "value": fields[FIELD_NAME]}; + + if (FIELD[`value`]) { + // Check if array. + if (Array.isArray(FIELD[`value`])) { + // Temporarily create an empty list. + field_data[FIELD[`name`]] = []; + + if (typeof FIELD[`value`][0] == "object" && FIELD[`value`][0] != null && !Array.isArray(FIELD[`value`][0])) { + field_data[FIELD[`name`]].push(read(FIELD[`value`][0])); + } else { + let ELEMENTS = (document.querySelectorAll(FIELD[`value`][0])); + + if (ELEMENTS.length > 0) { + (ELEMENTS).forEach((ELEMENT) => { + field_data[FIELD[`name`]].push(ELEMENT.innerText); + }) + }; + }; + } else if ((typeof FIELD[`value`]).includes(`obj`) && FIELD[`value`] != null) { + field_data[FIELD[`name`]] = read(FIELD[`value`]); + } else if (document.querySelector(FIELD[`value`])) { + field_data[FIELD[`name`]] = document.querySelector(FIELD[`value`]).innerText; + }; + }; + }); + + return field_data; + }; + field_content = read(scraper_fields); + } + + if (Object.keys(field_content).length > 0) { + for (let field_name in Object.keys(field_content)) { + console.log(field_name); + this[field_name] = field_content[field_name]; + } + } + } +} \ No newline at end of file