A ton of work getting towards dms.
This commit also points to my fork of discordgo which makes it look like the official client which is the only way to get the actually contents of a dm when not authorized as a bot.
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/bwmarrin/discordgo"
|
||||
)
|
||||
|
||||
type bridge struct {
|
||||
UsernameTemplate string `yaml:"username_template"`
|
||||
UsernameTemplate string `yaml:"username_template"`
|
||||
DisplaynameTemplate string `yaml:"displayname_template"`
|
||||
|
||||
CommandPrefix string `yaml:"command_prefix"`
|
||||
|
||||
@@ -14,7 +17,8 @@ type bridge struct {
|
||||
|
||||
PortalMessageBuffer int `yaml:"portal_message_buffer"`
|
||||
|
||||
usernameTemplate *template.Template `yaml:"-"`
|
||||
usernameTemplate *template.Template `yaml:"-"`
|
||||
displaynameTemplate *template.Template `yaml:"-"`
|
||||
}
|
||||
|
||||
func (b *bridge) validate() error {
|
||||
@@ -24,15 +28,24 @@ func (b *bridge) validate() error {
|
||||
b.UsernameTemplate = "Discord_{{.}}"
|
||||
}
|
||||
|
||||
if b.PortalMessageBuffer <= 0 {
|
||||
b.PortalMessageBuffer = 128
|
||||
}
|
||||
|
||||
b.usernameTemplate, err = template.New("username").Parse(b.UsernameTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if b.DisplaynameTemplate == "" {
|
||||
b.DisplaynameTemplate = "{{.Username}}#{{.Discriminator}} (D){{if .Bot}} (bot){{end}}"
|
||||
}
|
||||
|
||||
b.displaynameTemplate, err = template.New("displayname").Parse(b.DisplaynameTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if b.PortalMessageBuffer <= 0 {
|
||||
b.PortalMessageBuffer = 128
|
||||
}
|
||||
|
||||
if b.CommandPrefix == "" {
|
||||
b.CommandPrefix = "!dis"
|
||||
}
|
||||
@@ -60,9 +73,35 @@ func (b *bridge) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
}
|
||||
|
||||
func (b bridge) FormatUsername(userid string) string {
|
||||
var buffer bytes.Buffer
|
||||
var buffer strings.Builder
|
||||
|
||||
b.usernameTemplate.Execute(&buffer, userid)
|
||||
|
||||
return buffer.String()
|
||||
}
|
||||
|
||||
type simplfiedUser struct {
|
||||
Username string
|
||||
Discriminator string
|
||||
Locale string
|
||||
Verified bool
|
||||
MFAEnabled bool
|
||||
Bot bool
|
||||
System bool
|
||||
}
|
||||
|
||||
func (b bridge) FormatDisplayname(user *discordgo.User) string {
|
||||
var buffer strings.Builder
|
||||
|
||||
b.displaynameTemplate.Execute(&buffer, simplfiedUser{
|
||||
Username: user.Username,
|
||||
Discriminator: user.Discriminator,
|
||||
Locale: user.Locale,
|
||||
Verified: user.Verified,
|
||||
MFAEnabled: user.MFAEnabled,
|
||||
Bot: user.Bot,
|
||||
System: user.System,
|
||||
})
|
||||
|
||||
return buffer.String()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user