diff options
author | Alex Auvolat <alex@adnab.me> | 2020-02-28 17:32:09 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2020-02-28 17:32:09 +0100 |
commit | 3880bd170144b913fe52a1ef1f3687551d797973 (patch) | |
tree | dec8ec5b734a0a04b4e47ffbe9807c529c5942cb | |
parent | 3bb8a78d073563c309195581780254b0e6f9dbe6 (diff) | |
download | easybridge-3880bd170144b913fe52a1ef1f3687551d797973.tar.gz easybridge-3880bd170144b913fe52a1ef1f3687551d797973.zip |
Add easybridge account config widget in system rooms
-rw-r--r-- | main.go | 1 | ||||
-rw-r--r-- | util.go | 20 |
2 files changed, 20 insertions, 1 deletions
@@ -18,6 +18,7 @@ type ConfigFile struct { LogLevel string `json:"log_level"` ASBindAddr string `json:"appservice_bind_addr"` WebBindAddr string `json:"web_bind_addr"` + WebURL string `json:"web_url"` Registration string `json:"registration"` Server string `json:"homeserver_url"` DbType string `json:"db_type"` @@ -20,7 +20,25 @@ func ezbrMxId() string { } func ezbrSystemRoom(user_mx_id string) (string, error) { - return dbGetMxPmRoom(EASYBRIDGE_SYSTEM_PROTOCOL, UserID("Easybridge"), ezbrMxId(), user_mx_id, "easybridge") + mx_room_id, err := dbGetMxPmRoom(EASYBRIDGE_SYSTEM_PROTOCOL, UserID("Easybridge"), ezbrMxId(), user_mx_id, "easybridge") + if err != nil { + return "", err + } + + widget_kv_key := "ezbr_widget_on:" + mx_room_id + if config.WebURL != "" && dbKvTestAndSet(widget_kv_key, "yes") { + widget := map[string]interface{}{ + "type": "m.easybridge", + "url": config.WebURL, + "name": "Easybridge account configuration dashboard", + } + err = mx.PutStateAs(mx_room_id, "im.vector.modular.widgets", "ezbr_widget", widget, ezbrMxId()) + if err != nil { + dbKvPut(widget_kv_key, "") + } + } + + return mx_room_id, nil } func ezbrSystemSend(user_mx_id string, msg string) { |