diff --git a/Logic/ImageProviders/AllImageProviders.ts b/Logic/ImageProviders/AllImageProviders.ts index 5382832d2..745c367d4 100644 --- a/Logic/ImageProviders/AllImageProviders.ts +++ b/Logic/ImageProviders/AllImageProviders.ts @@ -44,7 +44,7 @@ export default class AllImageProviders { let prefixes = imageProvider.defaultKeyPrefixes if(tagKey !== undefined){ - prefixes = [tagKey] + prefixes = [...prefixes, tagKey] } const singleSource = imageProvider.GetRelevantUrls(tags, { diff --git a/Logic/ImageProviders/ImageProvider.ts b/Logic/ImageProviders/ImageProvider.ts index 12e05272e..cdf7a8e73 100644 --- a/Logic/ImageProviders/ImageProvider.ts +++ b/Logic/ImageProviders/ImageProvider.ts @@ -11,10 +11,10 @@ export interface ProvidedImage { export default abstract class ImageProvider { - public abstract readonly defaultKeyPrefixes: string[] = ["mapillary", "image"] + public abstract readonly defaultKeyPrefixes: string[] private _cache = new Map>() - + GetAttributionFor(url: string): UIEventSource { const cached = this._cache.get(url); if (cached !== undefined) { @@ -41,10 +41,11 @@ export default abstract class ImageProvider { } const relevantUrls = new UIEventSource<{ url: string; key: string; provider: ImageProvider }[]>([]) const seenValues = new Set() - const self =this allTags.addCallbackAndRunD(tags => { for (const key in tags) { + console.log("Does ", key,"have images?") if (!prefixes.some(prefix => key.startsWith(prefix))) { + console.log(key,": NO", this.constructor.name, "prefixes are", prefixes) continue } const values = Utils.NoEmpty(tags[key]?.split(";")?.map(v => v.trim()) ?? []) diff --git a/Logic/ImageProviders/Mapillary.ts b/Logic/ImageProviders/Mapillary.ts index 3fa25a534..68491a529 100644 --- a/Logic/ImageProviders/Mapillary.ts +++ b/Logic/ImageProviders/Mapillary.ts @@ -15,14 +15,11 @@ export class Mapillary extends ImageProvider { private static readonly valuePrefix = "https://a.mapillary.com" public static readonly valuePrefixes = [Mapillary.valuePrefix, "http://mapillary.com","https://mapillary.com"] - private constructor() { - super(); - } - private static ExtractKeyFromURL(value: string, failIfNoMath = false): { key: string, isApiv4?: boolean } { + if (value.startsWith(Mapillary.valuePrefix)) { const key = value.substring(0, value.lastIndexOf("?")).substring(value.lastIndexOf("/") + 1) return {key: key, isApiv4: !isNaN(Number(key))}; @@ -61,7 +58,7 @@ export class Mapillary extends ImageProvider { } async ExtractUrls(key: string, value: string): Promise[]> { - return [this.PrepareUrlAsync(key, value)] + return [this.PrepareUrlAsync(key, value)] } private async PrepareUrlAsync(key: string, value: string): Promise {