forked from MapComplete/MapComplete
Refactoring: move all code files into a src directory
This commit is contained in:
parent
de99f56ca8
commit
e75d2789d2
389 changed files with 0 additions and 12 deletions
|
@ -1,47 +0,0 @@
|
|||
import { UIEventSource } from "../UIEventSource"
|
||||
import { Utils } from "../../Utils"
|
||||
|
||||
/**
|
||||
* Fetches data from random data sources, used in the metatagging
|
||||
*/
|
||||
export default class LiveQueryHandler {
|
||||
private static neededShorthands = {} // url -> (shorthand:paths)[]
|
||||
|
||||
public static FetchLiveData(
|
||||
url: string,
|
||||
shorthands: string[]
|
||||
): UIEventSource<any /* string -> string */> {
|
||||
const shorthandsSet: string[] = LiveQueryHandler.neededShorthands[url] ?? []
|
||||
|
||||
for (const shorthand of shorthands) {
|
||||
if (shorthandsSet.indexOf(shorthand) < 0) {
|
||||
shorthandsSet.push(shorthand)
|
||||
}
|
||||
}
|
||||
LiveQueryHandler.neededShorthands[url] = shorthandsSet
|
||||
|
||||
if (LiveQueryHandler[url] === undefined) {
|
||||
const source = new UIEventSource({})
|
||||
LiveQueryHandler[url] = source
|
||||
|
||||
console.log("Fetching live data from a third-party (unknown) API:", url)
|
||||
Utils.downloadJson(url).then((data) => {
|
||||
for (const shorthandDescription of shorthandsSet) {
|
||||
const descr = shorthandDescription.trim().split(":")
|
||||
const shorthand = descr[0]
|
||||
const path = descr[1]
|
||||
const parts = path.split(".")
|
||||
let trail = data
|
||||
for (const part of parts) {
|
||||
if (trail !== undefined) {
|
||||
trail = trail[part]
|
||||
}
|
||||
}
|
||||
source.data[shorthand] = trail
|
||||
}
|
||||
source.ping()
|
||||
})
|
||||
}
|
||||
return LiveQueryHandler[url]
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue