registration.go 1007 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package config
  2. import (
  3. "fmt"
  4. "regexp"
  5. as "maunium.net/go/mautrix/appservice"
  6. )
  7. func (cfg *Config) CopyToRegistration(registration *as.Registration) error {
  8. registration.ID = cfg.Appservice.ID
  9. registration.URL = cfg.Appservice.Address
  10. registration.EphemeralEvents = cfg.Appservice.EphemeralEvents
  11. falseVal := false
  12. registration.RateLimited = &falseVal
  13. registration.SenderLocalpart = cfg.Appservice.Bot.Username
  14. pattern := fmt.Sprintf(
  15. "^@%s:%s$",
  16. cfg.Bridge.FormatUsername("[0-9]+"),
  17. cfg.Homeserver.Domain,
  18. )
  19. userIDRegex, err := regexp.Compile(pattern)
  20. if err != nil {
  21. return err
  22. }
  23. registration.Namespaces.RegisterUserIDs(userIDRegex, true)
  24. return nil
  25. }
  26. func (cfg *Config) getRegistration() (*as.Registration, error) {
  27. registration := as.CreateRegistration()
  28. if err := cfg.CopyToRegistration(registration); err != nil {
  29. return nil, err
  30. }
  31. registration.AppToken = cfg.Appservice.ASToken
  32. registration.ServerToken = cfg.Appservice.HSToken
  33. return registration, nil
  34. }