forked from MapComplete/MapComplete
Linked data loader: prettier UI, some bugfixes
This commit is contained in:
parent
49154e1809
commit
13506a0e59
4 changed files with 59 additions and 21 deletions
|
@ -1,11 +1,13 @@
|
|||
import Script from "../scripts/Script"
|
||||
import { Server } from "./server"
|
||||
import { Utils } from "../src/Utils"
|
||||
import parse from "node-html-parser"
|
||||
import ScriptUtils from "./ScriptUtils"
|
||||
|
||||
class ServerLdScrape extends Script {
|
||||
constructor() {
|
||||
super("Starts a server which fetches a webpage and returns embedded LD+JSON")
|
||||
}
|
||||
|
||||
async main(args: string[]): Promise<void> {
|
||||
const port = Number(args[0] ?? 2346)
|
||||
const cache: Record<string, { date: Date; contents: any }> = {}
|
||||
|
@ -24,12 +26,18 @@ class ServerLdScrape extends Script {
|
|||
return JSON.stringify(contents)
|
||||
}
|
||||
}
|
||||
const dloaded = await Utils.download(url, {
|
||||
"User-Agent":
|
||||
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36", // MapComplete/openstreetmap scraper; pietervdvn@posteo.net; https://github.com/pietervdvn/MapComplete",
|
||||
})
|
||||
// return dloaded
|
||||
const parsed = parse(dloaded)
|
||||
let dloaded: { content: string } | { redirect: string } | "timeout" = { redirect: url }
|
||||
do {
|
||||
|
||||
dloaded = await ScriptUtils.Download(dloaded["redirect"], {
|
||||
"User-Agent":
|
||||
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36", // MapComplete/openstreetmap scraper; pietervdvn@posteo.net; https://github.com/pietervdvn/MapComplete",
|
||||
}, 10)
|
||||
if (dloaded === "timeout") {
|
||||
return "{\"#\":\"timout reached\"}"
|
||||
}
|
||||
} while (dloaded["redirect"])
|
||||
const parsed = parse(dloaded["content"])
|
||||
const scripts = Array.from(parsed.getElementsByTagName("script"))
|
||||
for (const script of scripts) {
|
||||
const tp = script.attributes["type"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue