48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"text/template"
|
||
|
|
||
|
"git.fromouter.space/mcg/draft"
|
||
|
"git.fromouter.space/mcg/mlp-server-tools/draftbot"
|
||
|
"github.com/Masterminds/sprig"
|
||
|
)
|
||
|
|
||
|
var sessionCreatedTplText = `Draft session created!
|
||
|
Join with "/join".
|
||
|
|
||
|
Draft type: {{ .Options.Type }}`
|
||
|
|
||
|
var templateMap = map[string]string{
|
||
|
"session-created": sessionCreatedTplText,
|
||
|
}
|
||
|
var templates = map[string]*template.Template{}
|
||
|
|
||
|
func initTemplates() {
|
||
|
for k, v := range templateMap {
|
||
|
templates[k] = template.Must(template.New("base").Funcs(sprig.TxtFuncMap()).Parse(v))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var sessionCreatedTpl = (sessionCreatedTplText)
|
||
|
|
||
|
func txtDraftSessionCreated(opt draftbot.DraftOptions, players map[string]*draft.Player) string {
|
||
|
var tpl bytes.Buffer
|
||
|
templates["session-created"].Execute(&tpl, struct {
|
||
|
Players []string
|
||
|
Options draftbot.DraftOptions
|
||
|
}{
|
||
|
playerNames(players),
|
||
|
opt,
|
||
|
})
|
||
|
return tpl.String()
|
||
|
}
|
||
|
|
||
|
func playerNames(lst map[string]*draft.Player) (out []string) {
|
||
|
for key := range lst {
|
||
|
out = append(out, "@"+key)
|
||
|
}
|
||
|
return
|
||
|
}
|