some more stuffs.

This commit is contained in:
2023-09-06 18:00:18 +02:00
parent 64bb737569
commit 07c9398414
23 changed files with 337 additions and 234 deletions
+20 -7
View File
@@ -3,9 +3,17 @@ package device
import (
"git.aiterp.net/lucifer3/server/internal/gentools"
"log"
"sort"
"strings"
)
var exclusivePrefixes = []string{
"lucifer:name:",
"lucifer:icon:",
"lucifer:room:",
"lucifer:group:",
}
type PointerMatcher interface {
Match(str string) bool
}
@@ -26,19 +34,24 @@ func (p *Pointer) AddAlias(alias string) (added *string, removed *string) {
}
}
if strings.HasPrefix(alias, "lucifer:name:") {
for i, alias2 := range p.Aliases {
if strings.HasPrefix(alias2, "lucifer:name:") {
p.Aliases = append(p.Aliases[:0:0], p.Aliases...)
p.Aliases = append(p.Aliases[:i], p.Aliases[i+1:]...)
removed = gentools.ShallowCopy(&alias2)
break
for _, prefix := range exclusivePrefixes {
if strings.HasPrefix(alias, prefix) {
for i, alias2 := range p.Aliases {
if strings.HasPrefix(alias2, prefix) {
p.Aliases = append(p.Aliases[:0:0], p.Aliases...)
p.Aliases = append(p.Aliases[:i], p.Aliases[i+1:]...)
removed = gentools.ShallowCopy(&alias2)
break
}
}
break
}
}
added = gentools.ShallowCopy(&alias)
p.Aliases = append(p.Aliases, alias)
sort.Strings(p.Aliases)
return
}