Add linked data module which scrapes websites

This commit is contained in:
Pieter Vander Vennet 2024-02-22 18:58:34 +01:00
parent 2af6af7630
commit 35c31f9861
15 changed files with 870 additions and 130 deletions

View file

@ -1,19 +1,39 @@
<script lang="ts">
// Testing grounds
import LanguageElement from "./Popup/LanguageElement/LanguageElement.svelte"
import { UIEventSource } from "../Logic/UIEventSource"
let tags = new UIEventSource({ _country: "Be" })
import { Stores } from "../Logic/UIEventSource"
import { Utils } from "../Utils"
import jsonld from "jsonld"
import SelectedElementView from "./BigComponents/SelectedElementView.svelte"
import * as shop from "../assets/generated/layers/shops.json"
import LayerConfig from "../Models/ThemeConfig/LayerConfig"
import type { OpeningHour } from "./OpeningHours/OpeningHours"
import { OH } from "./OpeningHours/OpeningHours"
import type { Geometry } from "geojson"
const shopLayer = new LayerConfig(<any>shop, "shops")
const colruytUrl = "https://www.colruyt.be/nl/winkelzoeker/colruyt-gent"
const url = "https://stores.delhaize.be/nl/ad-delhaize-dok-noord"
let data = Stores.FromPromise(fetchJsonLd(url)).mapD(properties => ({
...properties,
id: properties["website"],
shop: "supermarket",
_country: "be",
}))
let feature = data.mapD(properties => {
return <any>{
type: "Feature",
properties,
geometry: {
type: "Point",
coordinates: properties["geo"],
},
}
})
</script>
<LanguageElement
feature={undefined}
item_render={"{language()} is spoken here"}
key="language"
layer={undefined}
question="What languages are spoken here?"
render_all={"Following languages are spoken here: {list()}"}
single_render={"Only {language()} is spoken here"}
state={undefined}
{tags}
/>
{#if $data}
<SelectedElementView layer={shopLayer} selectedElement={$feature} state={undefined} tags={data} />
{/if}