fix: sanitize camera names — spaces → underscores for CLI-safe paths

This commit is contained in:
Claus Lohmar 2026-08-06 13:14:10 +01:00
parent 1e53ffe151
commit 872c8c2273
3 changed files with 3 additions and 17 deletions

2
api.go
View file

@ -108,6 +108,8 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) {
newCfg.Cameras[i].Password = old.Password
}
}
// Sanitize name: replace spaces with underscores for CLI-friendly paths.
newCfg.Cameras[i].Name = strings.ReplaceAll(newCfg.Cameras[i].Name, " ", "_")
}
// Hash new master password if provided (not masked, not empty, not already hashed).

View file

@ -3,19 +3,3 @@ api:
listen: ":1984"
streams:
cam_201_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.201:554/Streaming/Channels/102
cam_201_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.201:554/Streaming/Channels/101
cam_202_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.202:554/Streaming/Channels/102
cam_202_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.202:554/Streaming/Channels/101
cam_203_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.203:554/Streaming/Channels/102
cam_203_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.203:554/Streaming/Channels/101
cam_205_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.205:554/Streaming/Channels/102
cam_205_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.205:554/Streaming/Channels/101
cam_206_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.206:554/Streaming/Channels/102
cam_206_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.206:554/Streaming/Channels/101
cam_207_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.207:554/Streaming/Channels/102
cam_207_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.207:554/Streaming/Channels/101
cam_208_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.208:554/Streaming/Channels/102
cam_208_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.208:554/Streaming/Channels/101
cam_209_sub: rtsp://admin:6HtAW3UkkNxC@192.168.1.209:554/Streaming/Channels/102
cam_209_main: rtsp://admin:6HtAW3UkkNxC@192.168.1.209:554/Streaming/Channels/101

View file

@ -303,7 +303,7 @@ async function runWizard() {
if (found.length > 0) {
cameras = found.map(d => ({
id: 'cam_' + d.ip.split('.').pop(),
name: (d.manufacturer || 'Camera') + ' ' + (d.model || ''),
name: ((d.manufacturer || 'Camera') + ' ' + (d.model || '')).replace(/ /g, '_'),
ip: d.ip,
username: user,
password: pass,