diff options
-rw-r--r-- | account.go | 2 | ||||
-rw-r--r-- | server.go | 27 |
2 files changed, 18 insertions, 11 deletions
@@ -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()) } } } @@ -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() |