text-to-map
Version:
Text To Map usiluje o lepší, strojově zpracovatelné využití částí vyhlášek s výčtem ulic a dalších lokací. Jde o rozšiřitelnou sadu konceptů a nástrojů, které zajistí hladký převod výčtu ulic a jejich rozsahů v lidsky srozumitelném jazyce do strojově zpra
57 lines • 7.37 kB
JavaScript
import FeedParser from "feedparser";
import fetch from "node-fetch";
import { pipeline } from "stream/promises";
export const getLatestUrlFromAtomFeed = async (atomFeedUrl) => {
const response = await fetch(atomFeedUrl);
const feedparser = new FeedParser({});
let link = null;
if (response.status !== 200) {
throw new Error(`The Atom feed from atom.cuzk.cz not working. HTTP status ${response.status}`);
}
feedparser.on("error", (error) => {
throw new Error(`The Atom feed from atom.cuzk.cz could not be loaded.`);
});
feedparser.on("readable", function () {
let item;
let maxDate = new Date();
maxDate.setFullYear(1990);
while ((item = this.read())) {
if (item.date > maxDate) {
maxDate = item.date;
link = item.link;
}
}
});
await pipeline(response.body, feedparser);
if (link != null) {
return link;
}
else {
throw new Error("Could not find any dataset feed link.");
}
};
export const getAllUrlsFromAtomFeed = async (atomFeedUrl) => {
const response = await fetch(atomFeedUrl);
const feedparser = new FeedParser({});
const links = [];
if (response.status !== 200) {
throw new Error(`The Atom feed from atom.cuzk.cz not working. HTTP status ${response.status}`);
}
feedparser.on("error", (error) => {
throw new Error(`The Atom feed from atom.cuzk.cz could not be loaded.`);
});
feedparser.on("readable", function () {
let item;
while ((item = this.read())) {
links.push(item.link);
}
});
await pipeline(response.body, feedparser);
if (links.length > 0) {
return links;
}
else {
throw new Error("Could not find any dataset feed link.");
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFDM0MsV0FBbUIsRUFDRixFQUFFO0lBQ25CLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztJQUVoQixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FDOUUsQ0FBQztLQUNIO0lBRUQsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRTtRQUN4QixJQUFJLElBQXFCLENBQUM7UUFFMUIsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRTtnQkFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCO1NBQ0Y7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFMUMsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUMxRDtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssRUFDekMsV0FBbUIsRUFDQSxFQUFFO0lBQ3JCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUUzQixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FDOUUsQ0FBQztLQUNIO0lBRUQsVUFBVSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRTtRQUN4QixJQUFJLElBQXFCLENBQUM7UUFFMUIsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUUxQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUMxRDtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGZWVkUGFyc2VyIGZyb20gXCJmZWVkcGFyc2VyXCI7XHJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiO1xyXG5pbXBvcnQgeyBwaXBlbGluZSB9IGZyb20gXCJzdHJlYW0vcHJvbWlzZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRMYXRlc3RVcmxGcm9tQXRvbUZlZWQgPSBhc3luYyAoXHJcbiAgYXRvbUZlZWRVcmw6IHN0cmluZ1xyXG4pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xyXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYXRvbUZlZWRVcmwpO1xyXG4gIGNvbnN0IGZlZWRwYXJzZXIgPSBuZXcgRmVlZFBhcnNlcih7fSk7XHJcbiAgbGV0IGxpbmsgPSBudWxsO1xyXG5cclxuICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgYFRoZSBBdG9tIGZlZWQgZnJvbSBhdG9tLmN1emsuY3ogbm90IHdvcmtpbmcuIEhUVFAgc3RhdHVzICR7cmVzcG9uc2Uuc3RhdHVzfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmZWVkcGFyc2VyLm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBBdG9tIGZlZWQgZnJvbSBhdG9tLmN1emsuY3ogY291bGQgbm90IGJlIGxvYWRlZC5gKTtcclxuICB9KTtcclxuXHJcbiAgZmVlZHBhcnNlci5vbihcInJlYWRhYmxlXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgIGxldCBpdGVtOiBGZWVkUGFyc2VyLkl0ZW07XHJcblxyXG4gICAgbGV0IG1heERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbWF4RGF0ZS5zZXRGdWxsWWVhcigxOTkwKTtcclxuICAgIHdoaWxlICgoaXRlbSA9IHRoaXMucmVhZCgpKSkge1xyXG4gICAgICBpZiAoaXRlbS5kYXRlID4gbWF4RGF0ZSkge1xyXG4gICAgICAgIG1heERhdGUgPSBpdGVtLmRhdGU7XHJcbiAgICAgICAgbGluayA9IGl0ZW0ubGluaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBhd2FpdCBwaXBlbGluZShyZXNwb25zZS5ib2R5LCBmZWVkcGFyc2VyKTtcclxuXHJcbiAgaWYgKGxpbmsgIT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIGxpbms7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGFueSBkYXRhc2V0IGZlZWQgbGluay5cIik7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEFsbFVybHNGcm9tQXRvbUZlZWQgPSBhc3luYyAoXHJcbiAgYXRvbUZlZWRVcmw6IHN0cmluZ1xyXG4pOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XHJcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChhdG9tRmVlZFVybCk7XHJcbiAgY29uc3QgZmVlZHBhcnNlciA9IG5ldyBGZWVkUGFyc2VyKHt9KTtcclxuICBjb25zdCBsaW5rczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGBUaGUgQXRvbSBmZWVkIGZyb20gYXRvbS5jdXprLmN6IG5vdCB3b3JraW5nLiBIVFRQIHN0YXR1cyAke3Jlc3BvbnNlLnN0YXR1c31gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmVlZHBhcnNlci5vbihcImVycm9yXCIsIChlcnJvcikgPT4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgQXRvbSBmZWVkIGZyb20gYXRvbS5jdXprLmN6IGNvdWxkIG5vdCBiZSBsb2FkZWQuYCk7XHJcbiAgfSk7XHJcblxyXG4gIGZlZWRwYXJzZXIub24oXCJyZWFkYWJsZVwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICBsZXQgaXRlbTogRmVlZFBhcnNlci5JdGVtO1xyXG5cclxuICAgIHdoaWxlICgoaXRlbSA9IHRoaXMucmVhZCgpKSkge1xyXG4gICAgICBsaW5rcy5wdXNoKGl0ZW0ubGluayk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZlZWRwYXJzZXIpO1xyXG5cclxuICBpZiAobGlua3MubGVuZ3RoID4gMCkge1xyXG4gICAgcmV0dXJuIGxpbmtzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBhbnkgZGF0YXNldCBmZWVkIGxpbmsuXCIpO1xyXG4gIH1cclxufTtcclxuIl19