2020-11-16 12:44:21 +01:00
|
|
|
var fileCache = function () {
|
2020-11-25 01:52:53 +01:00
|
|
|
var site_url = "/"+window.location.pathname.split('/')[1];
|
|
|
|
var json_url = site_url+"/data/database.json";
|
2020-11-16 12:44:21 +01:00
|
|
|
var req = new XMLHttpRequest();
|
2020-11-16 12:56:16 +01:00
|
|
|
req.open("GET",json_url, false);
|
2020-11-16 12:44:21 +01:00
|
|
|
req.send();
|
2020-11-16 12:56:16 +01:00
|
|
|
return JSON.parse(req.responseText);
|
2020-11-16 12:44:21 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
_cache = fileCache();
|
2020-11-16 12:56:16 +01:00
|
|
|
function getTextFromFileUrl(url,header={}) {
|
2020-11-30 00:17:08 +01:00
|
|
|
if (url in _cache) {
|
|
|
|
return _cache[url];
|
|
|
|
} else {
|
|
|
|
return async () => {await getTextFromFileUrlAsync(url)};
|
|
|
|
}
|
2020-11-16 12:44:21 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-11-01 16:54:57 +01:00
|
|
|
async function getTextFromFileUrlAsync(url,header={}) {
|
2019-09-09 15:15:39 +02:00
|
|
|
return new Promise(function (resolve, reject) {
|
|
|
|
var req = new XMLHttpRequest();
|
2019-10-02 19:20:37 +02:00
|
|
|
req.open("GET",url, true);
|
2020-11-01 16:54:57 +01:00
|
|
|
for (const [key, val] of Object.entries(header)) {
|
|
|
|
req.setRequestHeader(key,val)
|
|
|
|
}
|
2019-09-09 15:15:39 +02:00
|
|
|
req.onreadystatechange = function() {
|
|
|
|
if (req.readyState == 4) {
|
2020-05-27 09:35:50 +02:00
|
|
|
if (req.status == 200 || req.status==304) {//when a good response is given do this
|
2019-09-09 15:15:39 +02:00
|
|
|
var text = req.responseText;
|
|
|
|
resolve(text);
|
|
|
|
} else {
|
|
|
|
reject({
|
|
|
|
status: req.status,
|
|
|
|
statusText: req.statusText
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
req.send();
|
|
|
|
});
|
2019-10-02 19:20:37 +02:00
|
|
|
}
|
|
|
|
async function getTextFromUploadedFileAsync(inputFile){
|
|
|
|
const temporaryFileReader = new FileReader();
|
|
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
temporaryFileReader.onerror = () => {
|
|
|
|
temporaryFileReader.abort();
|
|
|
|
reject(new DOMException("Problem parsing input file."));
|
|
|
|
};
|
|
|
|
|
|
|
|
temporaryFileReader.onload = () => {
|
|
|
|
resolve(temporaryFileReader.result);
|
|
|
|
};
|
|
|
|
temporaryFileReader.readAsText(inputFile);
|
|
|
|
});
|
2020-11-16 12:44:21 +01:00
|
|
|
};
|