Add puppet and portal stuff and fix config stuff
This commit is contained in:
@ -22,24 +22,26 @@ import (
|
||||
)
|
||||
|
||||
type BridgeConfig struct {
|
||||
RawUsernameTemplate string `yaml:"username_template"`
|
||||
RawDisplaynameTemplate string `yaml:"displayname_template"`
|
||||
UsernameTemplate *template.Template `yaml:"-"`
|
||||
DisplaynameTemplate *template.Template `yaml:"-"`
|
||||
UsernameTemplate string `yaml:"username_template"`
|
||||
DisplaynameTemplate string `yaml:"displayname_template"`
|
||||
usernameTemplate *template.Template `yaml:"-"`
|
||||
displaynameTemplate *template.Template `yaml:"-"`
|
||||
}
|
||||
|
||||
func (bc BridgeConfig) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
err := unmarshal(bc)
|
||||
type umBridgeConfig BridgeConfig
|
||||
|
||||
func (bc *BridgeConfig) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
err := unmarshal((*umBridgeConfig)(bc))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
bc.UsernameTemplate, err = template.New("username").Parse(bc.RawUsernameTemplate)
|
||||
bc.usernameTemplate, err = template.New("username").Parse(bc.UsernameTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
bc.DisplaynameTemplate, err = template.New("displayname").Parse(bc.RawDisplaynameTemplate)
|
||||
bc.displaynameTemplate, err = template.New("displayname").Parse(bc.DisplaynameTemplate)
|
||||
return err
|
||||
}
|
||||
|
||||
@ -54,7 +56,7 @@ type UsernameTemplateArgs struct {
|
||||
|
||||
func (bc BridgeConfig) FormatDisplayname(displayname string) string {
|
||||
var buf bytes.Buffer
|
||||
bc.DisplaynameTemplate.Execute(&buf, DisplaynameTemplateArgs{
|
||||
bc.displaynameTemplate.Execute(&buf, DisplaynameTemplateArgs{
|
||||
Displayname: displayname,
|
||||
})
|
||||
return buf.String()
|
||||
@ -62,7 +64,7 @@ func (bc BridgeConfig) FormatDisplayname(displayname string) string {
|
||||
|
||||
func (bc BridgeConfig) FormatUsername(receiver, userID string) string {
|
||||
var buf bytes.Buffer
|
||||
bc.UsernameTemplate.Execute(&buf, UsernameTemplateArgs{
|
||||
bc.usernameTemplate.Execute(&buf, UsernameTemplateArgs{
|
||||
Receiver: receiver,
|
||||
UserID: userID,
|
||||
})
|
||||
@ -70,7 +72,7 @@ func (bc BridgeConfig) FormatUsername(receiver, userID string) string {
|
||||
}
|
||||
|
||||
func (bc BridgeConfig) MarshalYAML() (interface{}, error) {
|
||||
bc.RawDisplaynameTemplate = bc.FormatDisplayname("{{.Displayname}}")
|
||||
bc.RawUsernameTemplate = bc.FormatUsername("{{.Receiver}}", "{{.UserID}}")
|
||||
bc.DisplaynameTemplate = bc.FormatDisplayname("{{.Displayname}}")
|
||||
bc.UsernameTemplate = bc.FormatUsername("{{.Receiver}}", "{{.UserID}}")
|
||||
return bc, nil
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ package config
|
||||
import (
|
||||
"maunium.net/go/mautrix-appservice"
|
||||
"regexp"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func (config *Config) NewRegistration() (*appservice.Registration, error) {
|
||||
@ -53,7 +54,9 @@ func (config *Config) copyToRegistration(registration *appservice.Registration)
|
||||
registration.RateLimited = false
|
||||
registration.SenderLocalpart = config.AppService.Bot.Username
|
||||
|
||||
userIDRegex, err := regexp.Compile(config.Bridge.FormatUsername("[0-9]+", "[0-9]+"))
|
||||
userIDRegex, err := regexp.Compile(fmt.Sprintf("@%s:%s",
|
||||
config.Bridge.FormatUsername("[0-9]+", "[0-9]+"),
|
||||
config.Homeserver.Domain))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user