factbook
Version:
Serves as an independent data scraping module, complete with ontology and full scraping ability for the CIA World Factbook site
41 lines (40 loc) • 2.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var funktologies_1 = require("funktologies");
var getUuid = require("uuid-by-string");
var constants_1 = require("../constants/constants");
var globalStore_1 = require("../constants/globalStore");
function getBorderMapImg(cheerioElem, country, countryId) {
var objectProperties = globalStore_1.store.countries[countryId].objectProperties;
cheerioElem('div.locatorBox').each(function (index, element) {
var map = funktologies_1.getRelation(objectProperties, constants_1.consts.ONTOLOGY.HAS_BORDER_MAP);
var a = cheerioElem(element).find('img').attr('src');
var borderMapUrl;
var bmId;
if (a && a.replace('../', '')) {
var borderMapId = a.replace('../', '');
borderMapUrl = constants_1.consts.BASE.URL_BASE + a.replace('../', '');
bmId = constants_1.consts.ONTOLOGY.INST_BORDER_MAP + getUuid(borderMapId);
}
var objectProp = {};
if (!map) {
if (globalStore_1.store.borderMaps[bmId]) {
objectProp[constants_1.consts.ONTOLOGY.HAS_BORDER_MAP] = globalStore_1.store.borderMaps[bmId];
}
else {
objectProp = funktologies_1.entityMaker(constants_1.consts.ONTOLOGY.HAS_BORDER_MAP, constants_1.consts.ONTOLOGY.ONT_BORDER_MAP, bmId, "Border Map for " + country);
globalStore_1.store.borderMaps[bmId] = objectProp[constants_1.consts.ONTOLOGY.HAS_BORDER_MAP];
}
map = objectProp[constants_1.consts.ONTOLOGY.HAS_BORDER_MAP];
globalStore_1.store.countries[countryId].objectProperties.push(funktologies_1.entityRefMaker(constants_1.consts.ONTOLOGY.HAS_BORDER_MAP, objectProp));
}
if (borderMapUrl) {
var datatypeProp = {};
datatypeProp[constants_1.consts.ONTOLOGY.DT_LOCATOR_URI] = borderMapUrl;
map.datatypeProperties = datatypeProp;
}
// TODO: scrape physical image from url and store it.
});
}
exports.getBorderMapImg = getBorderMapImg;
;
;