aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--account.go4
-rw-r--r--connector/xmpp/xmpp.go6
-rw-r--r--util.go2
3 files changed, 9 insertions, 3 deletions
diff --git a/account.go b/account.go
index cd6d033..6be12e7 100644
--- a/account.go
+++ b/account.go
@@ -227,7 +227,9 @@ func (a *Account) roomInfoUpdatedInternal(roomId RoomID, author UserID, info *Ro
}
as_mxid := ezbrMxId()
- if len(author) > 0 {
+ if author == a.Conn.User() {
+ as_mxid = a.MatrixUser
+ } else if len(author) > 0 {
mx_user_id, err2 := dbGetMxUser(a.Protocol, author)
if err2 == nil {
as_mxid = mx_user_id
diff --git a/connector/xmpp/xmpp.go b/connector/xmpp/xmpp.go
index 0573ddb..698016f 100644
--- a/connector/xmpp/xmpp.go
+++ b/connector/xmpp/xmpp.go
@@ -200,7 +200,11 @@ func (xm *XMPP) handleXMPP() error {
if v.Subject != "" && v.Type == "groupchat" {
author := UserID("")
if len(remote_sp) == 2 {
- author = UserID(remote_sp[1] + "@" + remote_sp[0])
+ if remote_sp[1] == xm.nickname {
+ author = xm.User()
+ } else {
+ author = UserID(remote_sp[1] + "@" + remote_sp[0])
+ }
}
xm.handler.RoomInfoUpdated(RoomID(remote_sp[0]), author, &RoomInfo{
Topic: v.Subject,
diff --git a/util.go b/util.go
index c811a1e..c1da665 100644
--- a/util.go
+++ b/util.go
@@ -50,7 +50,7 @@ func safeStringForId(in string) string {
id2 += "__"
} else if c == ':' {
id2 += "_"
- } else if unicode.IsDigit(c) || unicode.IsLetter(c) {
+ } else if unicode.IsDigit(c) || unicode.IsLetter(c) || c == '.' || c == '-' || c == '_' {
id2 += string(c)
}
}