some more stuffs.
This commit is contained in:
+20
-7
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user