This commit is contained in:
@@ -14,6 +14,10 @@ import {
|
||||
EXHIBIT_PLACEHOLDER_IMAGE,
|
||||
HALL_PLACEHOLDER_IMAGE
|
||||
} from '@/utils/placeholders'
|
||||
import {
|
||||
normalizeGuideAudioLanguage,
|
||||
type GuideAudioLanguage
|
||||
} from '@/data/adapters/guideStopInfoAdapter'
|
||||
|
||||
export interface BackendGuideContent {
|
||||
id?: string | number | null
|
||||
@@ -251,8 +255,12 @@ const buildTags = (exhibit: BackendExhibit) => Array.from(new Set([
|
||||
firstText(exhibit.origin)
|
||||
].filter(Boolean)))
|
||||
|
||||
const normalizeSupportedLanguages = (languages: string[] | null | undefined) => (
|
||||
Array.isArray(languages) ? languages.map(String).filter(Boolean) : []
|
||||
const normalizeSupportedLanguages = (languages: string[] | null | undefined): GuideAudioLanguage[] => (
|
||||
Array.from(new Set((languages || [])
|
||||
.map(String)
|
||||
.filter((language) => ['zh', 'zh-cn', 'en', 'en-us', 'yue', 'yue-cn', 'yue-hk']
|
||||
.includes(language.trim().toLowerCase()))
|
||||
.map(normalizeGuideAudioLanguage)))
|
||||
)
|
||||
|
||||
const normalizeCatalogAudioStatus = (status?: string | null) => (
|
||||
@@ -496,7 +504,8 @@ export const toBackendMuseumExhibit = (
|
||||
const audioUrl = options.includeDetail ? resolveGuideAudioUrl(guide, source) : normalizeSameOriginPublicUrl(firstText(source.audioUrl))
|
||||
const targetType = normalizeAudioTargetType(guide?.targetType || source.playTargetType)
|
||||
const targetId = stringifyId(guide?.targetId || source.playTargetId)
|
||||
const supportedLanguage = source.supportedLanguages?.find((language) => language === 'zh-CN' || language === 'en-US')
|
||||
const supportedLanguages = normalizeSupportedLanguages(source.supportedLanguages)
|
||||
const supportedLanguage = supportedLanguages[0]
|
||||
const metadataSuggestsAudio = source.hasAudio === true && isAudioReady(source.audioStatus)
|
||||
const audioAvailable = Boolean(audioUrl)
|
||||
const sourcePoiId = stringifyId(source.poiId)
|
||||
@@ -528,7 +537,7 @@ export const toBackendMuseumExhibit = (
|
||||
audioHasText: options.includeDetail ? Boolean(guideText) : undefined,
|
||||
audioAvailable: audioAvailable || metadataSuggestsAudio,
|
||||
audioStatus: source.audioStatus || undefined,
|
||||
supportedLanguages: source.supportedLanguages || undefined,
|
||||
supportedLanguages: supportedLanguages.length ? supportedLanguages : undefined,
|
||||
audioUnavailableReason: audioAvailable || metadataSuggestsAudio
|
||||
? undefined
|
||||
: '该讲解暂无已发布音频,当前提供图文讲解。',
|
||||
|
||||
Reference in New Issue
Block a user