diff --git a/account.go b/account.go index 311b7de..732ff77 100644 --- a/account.go +++ b/account.go @@ -159,7 +159,7 @@ func LoadDbAccounts(mxid string, key *[32]byte) { err = SetAccount(mxid, acct.Name, acct.Protocol, config) if err != nil { - ezbrSystemSendf("Could not setup account %s: %s", acct.Name, err.Error()) + ezbrSystemSendf(mxid, "Could not setup account %s: %s", acct.Name, err.Error()) } } } diff --git a/server.go b/server.go index f11615e..79654c5 100644 --- a/server.go +++ b/server.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "net/http" + "os" "strings" "github.com/gorilla/mux" @@ -23,22 +24,28 @@ func StartAppService(errch chan error) error { return err } - err = mx.RegisterUser(registration.SenderLocalpart) - if mxe, ok := err.(*mxlib.MxError); !ok || mxe.ErrCode != "M_USER_IN_USE" { - return err - } - if err == nil { - // If Easybridge account was created, update avatar and display name - err = mx.ProfileAvatar(ezbrMxId(), &connector.FileMediaObject{ - Path: config.AvatarFile, - }) - if err != nil { + if dbKvGet("ezbr_initialized") != "yes" { + err = mx.RegisterUser(registration.SenderLocalpart) + if mxe, ok := err.(*mxlib.MxError); !ok || mxe.ErrCode != "M_USER_IN_USE" { return err } + + _, st := os.Stat(config.AvatarFile) + if !os.IsNotExist(st) { + err = mx.ProfileAvatar(ezbrMxId(), &connector.FileMediaObject{ + Path: config.AvatarFile, + }) + if err != nil { + return err + } + } + err = mx.ProfileDisplayname(ezbrMxId(), fmt.Sprintf("Easybridge (%s)", EASYBRIDGE_SYSTEM_PROTOCOL)) if err != nil { return err } + + dbKvPut("ezbr_initialized", "yes") } router := mux.NewRouter()