Fix: panoramax attribution now filters out empty strings (for some edge cases on non-mapcomplete panoramax servers)

This commit is contained in:
Pieter Vander Vennet 2025-08-23 13:36:42 +02:00
parent 5b7a117af3
commit 17f097851a

View file

@ -11,6 +11,9 @@ import { Feature, Point } from "geojson"
import { AddImageOptions } from "panoramax-js/dist/Panoramax" import { AddImageOptions } from "panoramax-js/dist/Panoramax"
import { ServerSourceInfo } from "../../Models/SourceOverview" import { ServerSourceInfo } from "../../Models/SourceOverview"
import { ComponentType } from "svelte/types/runtime/internal/dev" import { ComponentType } from "svelte/types/runtime/internal/dev"
import { Strings } from "../../Utils/Strings"
import { Utils } from "../../Utils"
import { Lists } from "../../Utils/Lists"
export default class PanoramaxImageProvider extends ImageProvider { export default class PanoramaxImageProvider extends ImageProvider {
public static readonly singleton: PanoramaxImageProvider = new PanoramaxImageProvider() public static readonly singleton: PanoramaxImageProvider = new PanoramaxImageProvider()
@ -194,9 +197,13 @@ export default class PanoramaxImageProvider extends ImageProvider {
public async DownloadAttribution(providedImage: { id: string }): Promise<LicenseInfo> { public async DownloadAttribution(providedImage: { id: string }): Promise<LicenseInfo> {
const meta = await this.getInfoFor(providedImage.id) const meta = await this.getInfoFor(providedImage.id)
const artists = Lists.noEmpty(meta.data.providers.map(p => p.name))
// We take the last provider, as that one probably contain the username of the uploader
const artist = artists.at(-1)
return { return {
artist: meta.data.providers.at(-1).name, // We take the last provider, as that one probably contain the username of the uploader artist,
date: new Date(meta.data.properties["datetime"]), date: new Date(meta.data.properties["datetime"]),
licenseShortName: meta.data.properties["geovisio:license"], licenseShortName: meta.data.properties["geovisio:license"],
} }