anime-info
Version:
Plugin intended to collect informing of anime characters through the fandow wiki
50 lines (49 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var elements_dom_1 = require("../../shared/utils/elements.dom");
function clean(element, innerHTML) {
if (innerHTML === void 0) { innerHTML = false; }
if (innerHTML && element) {
return elements_dom_1.cleanString(element.innerHTML);
}
if (element) {
return elements_dom_1.cleanString(element.textContent);
}
return null;
}
function getAbilitiesDescription(document, tags) {
var abilities_description = [];
var elements = document.querySelectorAll(tags);
var _loop_1 = function (index) {
if (elements[index] && elements[index + 1]) {
var photo_1 = [];
var typeEl = elements[index].querySelector('th:first-child');
var nameEl = elements[index].querySelector('th:last-child');
var photoEl = elements[index + 1].querySelectorAll('th img');
if (photoEl.length === 0) {
photoEl = elements[index + 1].querySelectorAll('td img');
}
var descriptionEl = elements[index + 1].querySelector('td');
if (descriptionEl) {
descriptionEl = elements[index + 1].lastChild;
}
photoEl.forEach(function (img) {
var string = img.getAttribute('data-src');
if (string) {
photo_1.push(string);
}
});
abilities_description.push({
description: clean(descriptionEl, true),
name: clean(nameEl, true),
photo: photo_1,
type: clean(typeEl, true)
});
}
};
for (var index = 1; index < elements.length; index += 2) {
_loop_1(index);
}
return abilities_description;
}
exports.getAbilitiesDescription = getAbilitiesDescription;