decrease embed size limit

This commit is contained in:
Dawid Wysokiński 2020-11-04 20:48:52 +01:00
parent 88aa66afdf
commit cf063441f3
3 changed files with 13 additions and 8 deletions

View File

@ -73,7 +73,7 @@ func (h *handler) loadEnnoblements(servers []string) (map[string]ennoblements, e
lastEnnoblementAt = time.Now().Add(-1 * time.Minute) lastEnnoblementAt = time.Now().Add(-1 * time.Minute)
} }
if mode.Get() == mode.DevelopmentMode { if mode.Get() == mode.DevelopmentMode {
lastEnnoblementAt = time.Now().Add(-60 * time.Minute) lastEnnoblementAt = time.Now().Add(-60 * time.Minute * 23)
} }
m[server] = filterEnnoblements(ennoblements, lastEnnoblementAt) m[server] = filterEnnoblements(ennoblements, lastEnnoblementAt)

View File

@ -194,24 +194,29 @@ func (s *Session) SendEmbed(channelID string, message *discordgo.MessageEmbed) e
splittedFields := [][]*discordgo.MessageEmbedField{} splittedFields := [][]*discordgo.MessageEmbedField{}
characters := baseNumberOfCharacters characters := baseNumberOfCharacters
fromIndex := 0 fromIndex := 0
fieldsLen := len(fields)
for index, field := range fields { for index, field := range fields {
if characters+len(field.Name)+len(field.Value) > EmbedLimit || index == len(fields)-1 { fNameLen := len(field.Name)
fValLen := len(field.Value)
if characters+fNameLen+fValLen > EmbedSizeLimit || index == fieldsLen-1 {
splittedFields = append(splittedFields, fields[fromIndex:index+1]) splittedFields = append(splittedFields, fields[fromIndex:index+1])
fromIndex = index fromIndex = index
characters = baseNumberOfCharacters characters = baseNumberOfCharacters
} }
characters += len(field.Name) characters += fNameLen
characters += len(field.Value) characters += fValLen
} }
for _, fields := range splittedFields { for _, fields := range splittedFields {
for i := 0; i < len(fields); i += EmbedLimitField { fieldsLen := len(fields)
for i := 0; i < fieldsLen; i += EmbedLimitField {
end := i + EmbedLimitField end := i + EmbedLimitField
if end > len(fields) { if end > fieldsLen {
end = len(fields) end = fieldsLen
} }
message.Fields = fields[i:end] message.Fields = fields[i:end]
if _, err := s.dg.ChannelMessageSendEmbed(channelID, message); err != nil { if _, err := s.dg.ChannelMessageSendEmbed(channelID, message); err != nil {
log.Warnln("Couldn't send embed:", err)
return err return err
} }
} }

View File

@ -15,7 +15,7 @@ const (
EmbedLimitFieldName = 256 EmbedLimitFieldName = 256
EmbedLimitField = 25 EmbedLimitField = 25
EmbedLimitFooter = 2048 EmbedLimitFooter = 2048
EmbedLimit = 5500 EmbedSizeLimit = 4500
) )
type Embed struct { type Embed struct {