Fix/improve minor things

This commit is contained in:
Tulir Asokan 2018-08-26 22:50:28 +03:00
parent a6ebc50f6d
commit 65f077c645
4 changed files with 13 additions and 2 deletions

View file

@ -66,6 +66,9 @@ type UsernameTemplateArgs struct {
func (bc BridgeConfig) FormatDisplayname(contact whatsapp.Contact) string {
var buf bytes.Buffer
if index := strings.IndexRune(contact.Jid, '@'); index > 0 {
contact.Jid = "+" + contact.Jid[:index]
}
bc.displaynameTemplate.Execute(&buf, contact)
return buf.String()
}

View file

@ -49,8 +49,9 @@ bridge:
# Displayname template for WhatsApp users.
# {{.Name}} - display name
# {{.Short}} - short display name (usually first name)
# {{.Notify}} - nickname (set by the target WhatsApp user)
displayname_template: "{{if .Name}}{{.Name}}{{else if .Notify}}{{.Notify}}{{else if .Short}}{{.Short}}{{else}}Unnamed user{{end}}"
# {{.Notify}} - nickname (maybe set by the target WhatsApp user)
# {{.Jid}} - phone number (international format)
displayname_template: "{{if .Name}}{{.Name}}{{else if .Notify}}{{.Notify}}{{else if .Short}}{{.Short}}{{else}}{{.Jid}}{{end}}"
# The prefix for commands. Only required in non-management rooms.
command_prefix: "!wa"

View file

@ -388,6 +388,10 @@ func (portal *Portal) MarkHandled(jid types.WhatsAppMessageID, mxid types.Matrix
func (portal *Portal) GetMessageIntent(info whatsapp.MessageInfo) *appservice.IntentAPI {
if info.FromMe {
if portal.IsPrivateChat() {
// TODO handle own messages in private chats properly
return nil
}
return portal.user.GetPuppetByJID(portal.user.JID()).Intent()
} else if portal.IsPrivateChat() {
return portal.MainIntent()

View file

@ -187,6 +187,9 @@ func (puppet *Puppet) UpdateAvatar(avatar *whatsappExt.ProfilePicInfo) bool {
func (puppet *Puppet) Sync(contact whatsapp.Contact) {
puppet.Intent().EnsureRegistered()
if contact.Jid == puppet.user.JID() {
contact.Notify = puppet.user.Conn.Info.Pushname
}
newName := puppet.bridge.Config.Bridge.FormatDisplayname(contact)
if puppet.Displayname != newName {
err := puppet.Intent().SetDisplayName(newName)