Let Discord filter channel names
This commit is contained in:
parent
8e322a6c4d
commit
4f22657083
@ -23,10 +23,7 @@ import (
|
|||||||
|
|
||||||
const freePanelLimit = 3
|
const freePanelLimit = 3
|
||||||
|
|
||||||
var (
|
var placeholderPattern = regexp.MustCompile(`%(\w+)%`)
|
||||||
placeholderPattern = regexp.MustCompile(`%(\w+)%`)
|
|
||||||
channelNamePattern = regexp.MustCompile(`^[\w\d-_\x{00a9}\x{00ae}\x{2000}-\x{3300}\x{d83c}\x{d000}-\x{dfff}\x{d83d}\x{d000}-\x{dfff}\x{d83e}\x{d000}-\x{dfff}]+$`)
|
|
||||||
)
|
|
||||||
|
|
||||||
type panelBody struct {
|
type panelBody struct {
|
||||||
ChannelId uint64 `json:"channel_id,string"`
|
ChannelId uint64 `json:"channel_id,string"`
|
||||||
@ -491,9 +488,6 @@ func (p *panelBody) verifyNamingScheme() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// We must remove all placeholders from the string to check whether the rest of the string is legal
|
|
||||||
noPlaceholders := *p.NamingScheme
|
|
||||||
|
|
||||||
// Validate placeholders used
|
// Validate placeholders used
|
||||||
validPlaceholders := []string{"id", "username", "nickname"}
|
validPlaceholders := []string{"id", "username", "nickname"}
|
||||||
for _, match := range placeholderPattern.FindAllStringSubmatch(*p.NamingScheme, -1) {
|
for _, match := range placeholderPattern.FindAllStringSubmatch(*p.NamingScheme, -1) {
|
||||||
@ -505,11 +499,10 @@ func (p *panelBody) verifyNamingScheme() bool {
|
|||||||
if !utils.Contains(validPlaceholders, placeholder) {
|
if !utils.Contains(validPlaceholders, placeholder) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
noPlaceholders = strings.Replace(noPlaceholders, match[0], "", -1) // match[0] = "%placeholder%"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return channelNamePattern.MatchString(noPlaceholders)
|
// Discord filters out illegal characters (such as +, $, ") when creating the channel for us
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func getRoleHashSet(guildId uint64) (*collections.Set[uint64], error) {
|
func getRoleHashSet(guildId uint64) (*collections.Set[uint64], error) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user