11import express from "express" ;
22import { dbOps } from "../config/db-helpers.js" ;
3- import { DEFAULT_METADATA_BASE_URL , defaultData } from "../config/constants.js" ;
3+ import {
4+ DEFAULT_METADATA_BASE_URL ,
5+ LEGACY_METADATA_BASE_URL ,
6+ defaultData ,
7+ } from "../config/constants.js" ;
48import { reconcileLocalNetworkBypassSetting } from "../middleware/auth.js" ;
59import { noCache } from "../middleware/cache.js" ;
610import { requireAuth , requireAdmin } from "../middleware/requirePermission.js" ;
@@ -11,6 +15,11 @@ const router = express.Router();
1115router . use ( requireAuth ) ;
1216router . use ( requireAdmin ) ;
1317
18+ function normalizeMetadataBaseUrl ( baseUrl ) {
19+ const trimmed = String ( baseUrl || "" ) . trim ( ) . replace ( / \/ + $ / , "" ) ;
20+ return trimmed === LEGACY_METADATA_BASE_URL ? DEFAULT_METADATA_BASE_URL : trimmed ;
21+ }
22+
1423router . get ( "/" , noCache , ( req , res ) => {
1524 try {
1625 const settings = dbOps . getSettings ( ) ;
@@ -24,12 +33,20 @@ router.get("/", noCache, (req, res) => {
2433 const legacyMusicbrainz = dbOps . getSettings ( ) ?. integrations ?. musicbrainz || { } ;
2534 settings . integrations . metadata = {
2635 provider : "brainzmash" ,
27- baseUrl :
36+ baseUrl : normalizeMetadataBaseUrl (
2837 String ( legacyMusicbrainz . customUrl || "" ) . trim ( ) . replace ( / \/ w s \/ 2 \/ ? $ / , "" ) ||
29- DEFAULT_METADATA_BASE_URL ,
38+ DEFAULT_METADATA_BASE_URL ,
39+ ) ,
3040 userAgentSuffix : "" ,
3141 enableNarrowFallbacks : true ,
3242 } ;
43+ } else {
44+ settings . integrations . metadata = {
45+ ...settings . integrations . metadata ,
46+ baseUrl : normalizeMetadataBaseUrl (
47+ settings . integrations . metadata . baseUrl || DEFAULT_METADATA_BASE_URL ,
48+ ) ,
49+ } ;
3350 }
3451 settings . security = {
3552 ...( settings . security || { } ) ,
@@ -80,7 +97,7 @@ router.post("/", async (req, res) => {
8097 error : `Invalid metadata base URL: ${ baseUrlValidation . error } ` ,
8198 } ) ;
8299 }
83- nextMetadata . baseUrl = baseUrlValidation . url . replace ( / \/ + $ / , "" ) ;
100+ nextMetadata . baseUrl = normalizeMetadataBaseUrl ( baseUrlValidation . url ) ;
84101 nextMetadata . userAgentSuffix =
85102 typeof nextMetadata . userAgentSuffix === "string"
86103 ? nextMetadata . userAgentSuffix . trim ( )
0 commit comments