bridge.go 852 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package config
  2. import (
  3. "fmt"
  4. "bytes"
  5. "text/template"
  6. )
  7. type bridge struct {
  8. UsernameTemplate string `yaml:"username_template"`
  9. usernameTemplate *template.Template `yaml:"-"`
  10. }
  11. func (b *bridge) setDefaults() error {
  12. var err error
  13. if b.UsernameTemplate == "" {
  14. b.UsernameTemplate = "Discord_{{.}}"
  15. }
  16. b.usernameTemplate, err = template.New("username").Parse(b.UsernameTemplate)
  17. if err != nil {
  18. return err
  19. }
  20. return nil
  21. }
  22. func (b *bridge) UnmarshalYAML(unmarshal func(interface{}) error) error {
  23. type rawBridge bridge
  24. raw := rawBridge{}
  25. err := unmarshal(&raw)
  26. if err != nil {
  27. return err
  28. }
  29. *b = bridge(raw)
  30. return b.setDefaults()
  31. }
  32. func (b bridge) FormatUsername(userid string) string {
  33. var buffer bytes.Buffer
  34. fmt.Printf("bridge: %#v\n", b)
  35. b.usernameTemplate.Execute(&buffer, userid)
  36. return buffer.String()
  37. }