big refactoring
This commit is contained in:
92
bot/config/bot.go
Normal file
92
bot/config/bot.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"maunium.net/go/mautrix/id"
|
||||
|
||||
"gitlab.com/etke.cc/postmoogle/utils"
|
||||
)
|
||||
|
||||
// account data key
|
||||
const acBotKey = "cc.etke.postmoogle.config"
|
||||
|
||||
// bot options keys
|
||||
const (
|
||||
BotAdminRoom = "adminroom"
|
||||
BotUsers = "users"
|
||||
BotCatchAll = "catch-all"
|
||||
BotDKIMSignature = "dkim.pub"
|
||||
BotDKIMPrivateKey = "dkim.pem"
|
||||
BotQueueBatch = "queue:batch"
|
||||
BotQueueRetries = "queue:retries"
|
||||
BotBanlistEnabled = "banlist:enabled"
|
||||
BotGreylist = "greylist"
|
||||
)
|
||||
|
||||
// Bot map
|
||||
type Bot map[string]string
|
||||
|
||||
// Get option
|
||||
func (s Bot) Get(key string) string {
|
||||
return s[strings.ToLower(strings.TrimSpace(key))]
|
||||
}
|
||||
|
||||
// Set option
|
||||
func (s Bot) Set(key, value string) {
|
||||
s[strings.ToLower(strings.TrimSpace(key))] = value
|
||||
}
|
||||
|
||||
// Users option
|
||||
func (s Bot) Users() []string {
|
||||
value := s.Get(BotUsers)
|
||||
if value == "" {
|
||||
return []string{}
|
||||
}
|
||||
|
||||
if strings.Contains(value, " ") {
|
||||
return strings.Split(value, " ")
|
||||
}
|
||||
|
||||
return []string{value}
|
||||
}
|
||||
|
||||
// CatchAll option
|
||||
func (s Bot) CatchAll() string {
|
||||
return s.Get(BotCatchAll)
|
||||
}
|
||||
|
||||
// AdminRoom option
|
||||
func (s Bot) AdminRoom() id.RoomID {
|
||||
return id.RoomID(s.Get(BotAdminRoom))
|
||||
}
|
||||
|
||||
// BanlistEnabled option
|
||||
func (s Bot) BanlistEnabled() bool {
|
||||
return utils.Bool(s.Get(BotBanlistEnabled))
|
||||
}
|
||||
|
||||
// Greylist option (duration in minutes)
|
||||
func (s Bot) Greylist() int {
|
||||
return utils.Int(s.Get(BotGreylist))
|
||||
}
|
||||
|
||||
// DKIMSignature (DNS TXT record)
|
||||
func (s Bot) DKIMSignature() string {
|
||||
return s.Get(BotDKIMSignature)
|
||||
}
|
||||
|
||||
// DKIMPrivateKey keep it secret
|
||||
func (s Bot) DKIMPrivateKey() string {
|
||||
return s.Get(BotDKIMPrivateKey)
|
||||
}
|
||||
|
||||
// QueueBatch option
|
||||
func (s Bot) QueueBatch() int {
|
||||
return utils.Int(s.Get(BotQueueBatch))
|
||||
}
|
||||
|
||||
// QueueRetries option
|
||||
func (s Bot) QueueRetries() int {
|
||||
return utils.Int(s.Get(BotQueueRetries))
|
||||
}
|
||||
Reference in New Issue
Block a user