完善馆内点位展示与微信地图桥接
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
lyf
2026-07-19 16:01:32 +08:00
parent 127461dd60
commit d199b4602f
10 changed files with 780 additions and 334 deletions

View File

@@ -4,14 +4,31 @@ import {
const isAbsoluteHttpUrl = (url: string) => /^https?:\/\//i.test(url)
const defaultSameOriginAssetHosts = [
['1', '92', '206', '90'].join('.')
]
const defaultLegacyAudioHosts = [
['47', '120', '48', '148'].join('.')
]
const configuredSameOriginAssetHosts = () => [
dataSourceConfig.publicSameOriginAssetHost,
...defaultSameOriginAssetHosts
].filter(Boolean)
const configuredLegacyAudioHosts = () => [
dataSourceConfig.publicLegacyAudioHost,
...defaultLegacyAudioHosts
].filter(Boolean)
export const normalizeSameOriginPublicUrl = (url: string | null | undefined) => {
const value = url?.trim()
if (!value || !isAbsoluteHttpUrl(value)) return value || ''
try {
const parsed = new URL(value)
const isSameServer = Boolean(dataSourceConfig.publicSameOriginAssetHost)
&& parsed.hostname === dataSourceConfig.publicSameOriginAssetHost
const isSameServer = configuredSameOriginAssetHosts().includes(parsed.hostname)
if (
isSameServer
@@ -33,8 +50,7 @@ export const normalizeSameOriginPublicUrl = (url: string | null | undefined) =>
}
if (
dataSourceConfig.publicLegacyAudioHost
&& parsed.hostname === dataSourceConfig.publicLegacyAudioHost
configuredLegacyAudioHosts().includes(parsed.hostname)
&& parsed.port === '19000'
&& parsed.pathname.startsWith('/nhm/audio/')
) {