MapComplete/src/Logic/ImageProviders/GenericImageProvider.ts

57 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-09-08 21:40:48 +02:00
import ImageProvider, { ProvidedImage } from "./ImageProvider"
export default class GenericImageProvider extends ImageProvider {
2022-09-08 21:40:48 +02:00
public defaultKeyPrefixes: string[] = ["image"]
public readonly name = "Generic"
2023-09-27 22:21:35 +02:00
public apiUrls(): string[] {
return []
}
2022-09-08 21:40:48 +02:00
private readonly _valuePrefixBlacklist: string[]
public constructor(valuePrefixBlacklist: string[]) {
2022-09-08 21:40:48 +02:00
super()
this._valuePrefixBlacklist = valuePrefixBlacklist
}
ExtractUrls(key: string, value: string): undefined | ProvidedImage[] {
2022-09-08 21:40:48 +02:00
if (this._valuePrefixBlacklist.some((prefix) => value.startsWith(prefix))) {
return undefined
}
2021-11-07 16:34:51 +01:00
try {
new URL(value)
2021-11-07 16:34:51 +01:00
} catch (_) {
// Not a valid URL
return undefined
}
2021-11-07 16:34:51 +01:00
2024-10-19 14:44:55 +02:00
return [
{
key: key,
url: value,
provider: this,
id: value,
2025-05-03 23:48:35 +02:00
isSpherical: undefined,
2024-10-19 14:44:55 +02:00
},
]
}
2023-12-02 03:12:34 +01:00
SourceIcon() {
2022-09-08 21:40:48 +02:00
return undefined
}
2024-04-01 02:00:48 +02:00
public DownloadAttribution(_) {
2021-11-07 16:34:51 +01:00
return undefined
}
getPanoramaInfo(): undefined {
return undefined
}
visitUrl(image: { url: string }): string | undefined {
return image.url
}
2022-09-08 21:40:48 +02:00
}