feat(scanner): allow disabling tags with Tags.<tag>.Ignore=true
Some checks are pending
Pipeline: Test, Lint, Build / Get version info (push) Waiting to run
Pipeline: Test, Lint, Build / Lint Go code (push) Waiting to run
Pipeline: Test, Lint, Build / Test Go code (push) Waiting to run
Pipeline: Test, Lint, Build / Test JS code (push) Waiting to run
Pipeline: Test, Lint, Build / Lint i18n files (push) Waiting to run
Pipeline: Test, Lint, Build / Check Docker configuration (push) Waiting to run
Pipeline: Test, Lint, Build / Build (darwin/amd64) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (darwin/arm64) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (linux/386) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (linux/amd64) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (linux/arm/v5) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (linux/arm/v6) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (linux/arm/v7) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (linux/arm64) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (windows/386) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (windows/amd64) (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Push Docker manifest (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build Windows installers (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Package/Release (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Upload Linux PKG (push) Blocked by required conditions

Signed-off-by: Deluan <deluan@navidrome.org>
This commit is contained in:
Deluan
2025-03-13 19:47:34 -04:00
parent b952672877
commit 2838ac36df
2 changed files with 22 additions and 8 deletions

View File

@@ -140,6 +140,7 @@ type subsonicOptions struct {
}
type TagConf struct {
Ignore bool `yaml:"ignore"`
Aliases []string `yaml:"aliases"`
Type string `yaml:"type"`
MaxLength int `yaml:"maxLength"`

View File

@@ -1,6 +1,7 @@
package model
import (
"cmp"
"maps"
"regexp"
"slices"
@@ -186,19 +187,31 @@ func loadTagMappings() {
// Overwrite the default mappings with the ones from the config
for tag, cfg := range conf.Server.Tags {
if len(cfg.Aliases) == 0 {
if cfg.Ignore {
delete(_mappings.Main, TagName(tag))
delete(_mappings.Additional, TagName(tag))
continue
}
c := TagConf{
Aliases: cfg.Aliases,
Type: TagType(cfg.Type),
MaxLength: cfg.MaxLength,
Split: cfg.Split,
Album: cfg.Album,
SplitRx: compileSplitRegex(TagName(tag), cfg.Split),
oldValue, ok := _mappings.Main[TagName(tag)]
if !ok {
oldValue = _mappings.Additional[TagName(tag)]
}
aliases := cfg.Aliases
if len(aliases) == 0 {
aliases = oldValue.Aliases
}
split := cfg.Split
if len(split) == 0 {
split = oldValue.Split
}
c := TagConf{
Aliases: aliases,
Split: split,
Type: cmp.Or(TagType(cfg.Type), oldValue.Type),
MaxLength: cmp.Or(cfg.MaxLength, oldValue.MaxLength),
Album: cmp.Or(cfg.Album, oldValue.Album),
}
c.SplitRx = compileSplitRegex(TagName(tag), c.Split)
if _, ok := _mappings.Main[TagName(tag)]; ok {
_mappings.Main[TagName(tag)] = c
} else {