Updated. audio name cleaner added.
This commit is contained in:
2026-06-30 17:26:15 +02:00
2 changed files with 38 additions and 4 deletions
+35 -1
View File
@@ -449,7 +449,7 @@
(info-am "Setting log level to ~a" log-level) (info-am "Setting log level to ~a" log-level)
(sl-set-log-level log-level) (sl-set-log-level log-level)
(let ((fw (make-file-admin music-path file-db-store))) (let ((fw (make-file-admin music-path file-db-store #:filename-cleaner clean-audio-basename)))
;; Enrichment phase ;; Enrichment phase
(set! fw (fw-add-step fw adjust-ext)) (set! fw (fw-add-step fw adjust-ext))
(set! fw (fw-add-step fw flac-with-id3)) (set! fw (fw-add-step fw flac-with-id3))
@@ -499,3 +499,37 @@
) )
(require racket/string)
(define (clean-audio-basename name)
(let* ((s0 (format "~a" name))
;; Laatste .ext apart houden, zodat we alleen de stem opschonen.
;; "Gypsy Festival vol. 2" blijft dus gewoon een directorynaam.
(m (regexp-match #px"^(.*)(\\.[A-Za-z0-9][A-Za-z0-9_-]{0,15})$" s0))
(stem0 (if m (list-ref m 1) s0))
(ext (if m (list-ref m 2) ""))
;; Audio-technische suffixen verwijderen:
;; [16B-44.1kHz], [24B-44.1kHz], [24bit-96 kHz], etc.
(stem1 (regexp-replace*
#px"(?i:\\s*\\[(16|24|32)\\s*(b|bit)\\s*[-_ ]\\s*[0-9]+(?:\\.[0-9]+)?\\s*k\\s*hz\\]\\s*)"
stem0
" "))
;; Underscores als simpele titel-markering opruimen:
;; _Rosamunde_ -> Rosamunde
;; Schubert_ String -> Schubert String
;;
;; Bewust geen liggende streepjes normaliseren.
(stem2 (regexp-replace* #px"_+" stem1 " "))
;; Whitespace normaliseren.
(stem3 (regexp-replace* #px"\\s+" stem2 " "))
;; Alleen de stem trimmen.
;; Geen '-' trimmen; dat is een gewoon teken.
(stem4 (string-trim stem3 " ."))
(stem5 (if (string=? stem4 "") "_" stem4)))
(string-append stem5 ext)))
+3 -3
View File
@@ -46,10 +46,10 @@
(unless (string=? bn nbn) (unless (string=? bn nbn)
(with-handlers ([exn? (λ (e) (with-handlers ([exn? (λ (e)
(warn-am "Cannot rename dirty filename: ~a" nbn))]) (warn-am "Cannot rename dirty filename: ~a, ~a" nbn e))])
(info-am "Renaming ~a to ~a" bn nbn) (info-am "Renaming ~a to ~a (basedir: ~a)" bn nbn bd)
(rename-file-or-directory (build-path bd bn) (rename-file-or-directory (build-path bd bn)
(build-path bn nbn) #f) (build-path bd nbn) #f)
(set! path (build-path bd nbn)) (set! path (build-path bd nbn))
)) ))