forked from MirrorHub/mautrix-whatsapp
Use bridge info content struct from mautrix-go
This commit is contained in:
parent
2d90295488
commit
c42f2123fb
1 changed files with 9 additions and 28 deletions
37
portal.go
37
portal.go
|
@ -1183,37 +1183,17 @@ func (portal *Portal) sendPostBackfillDummy(lastTimestamp time.Time) {
|
||||||
msg.Insert()
|
msg.Insert()
|
||||||
}
|
}
|
||||||
|
|
||||||
type BridgeInfoSection struct {
|
func (portal *Portal) getBridgeInfo() (string, event.BridgeEventContent) {
|
||||||
ID string `json:"id"`
|
bridgeInfo := event.BridgeEventContent{
|
||||||
DisplayName string `json:"displayname,omitempty"`
|
|
||||||
AvatarURL id.ContentURIString `json:"avatar_url,omitempty"`
|
|
||||||
ExternalURL string `json:"external_url,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type BridgeInfoContent struct {
|
|
||||||
BridgeBot id.UserID `json:"bridgebot"`
|
|
||||||
Creator id.UserID `json:"creator,omitempty"`
|
|
||||||
Protocol BridgeInfoSection `json:"protocol"`
|
|
||||||
Network *BridgeInfoSection `json:"network,omitempty"`
|
|
||||||
Channel BridgeInfoSection `json:"channel"`
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
StateBridgeInfo = event.Type{Type: "m.bridge", Class: event.StateEventType}
|
|
||||||
StateHalfShotBridgeInfo = event.Type{Type: "uk.half-shot.bridge", Class: event.StateEventType}
|
|
||||||
)
|
|
||||||
|
|
||||||
func (portal *Portal) getBridgeInfo() (string, BridgeInfoContent) {
|
|
||||||
bridgeInfo := BridgeInfoContent{
|
|
||||||
BridgeBot: portal.bridge.Bot.UserID,
|
BridgeBot: portal.bridge.Bot.UserID,
|
||||||
Creator: portal.MainIntent().UserID,
|
Creator: portal.MainIntent().UserID,
|
||||||
Protocol: BridgeInfoSection{
|
Protocol: event.BridgeInfoSection{
|
||||||
ID: "whatsapp",
|
ID: "whatsapp",
|
||||||
DisplayName: "WhatsApp",
|
DisplayName: "WhatsApp",
|
||||||
AvatarURL: id.ContentURIString(portal.bridge.Config.AppService.Bot.Avatar),
|
AvatarURL: id.ContentURIString(portal.bridge.Config.AppService.Bot.Avatar),
|
||||||
ExternalURL: "https://www.whatsapp.com/",
|
ExternalURL: "https://www.whatsapp.com/",
|
||||||
},
|
},
|
||||||
Channel: BridgeInfoSection{
|
Channel: event.BridgeInfoSection{
|
||||||
ID: portal.Key.JID.String(),
|
ID: portal.Key.JID.String(),
|
||||||
DisplayName: portal.Name,
|
DisplayName: portal.Name,
|
||||||
AvatarURL: portal.AvatarURL.CUString(),
|
AvatarURL: portal.AvatarURL.CUString(),
|
||||||
|
@ -1230,11 +1210,12 @@ func (portal *Portal) UpdateBridgeInfo() {
|
||||||
}
|
}
|
||||||
portal.log.Debugln("Updating bridge info...")
|
portal.log.Debugln("Updating bridge info...")
|
||||||
stateKey, content := portal.getBridgeInfo()
|
stateKey, content := portal.getBridgeInfo()
|
||||||
_, err := portal.MainIntent().SendStateEvent(portal.MXID, StateBridgeInfo, stateKey, content)
|
_, err := portal.MainIntent().SendStateEvent(portal.MXID, event.StateBridge, stateKey, content)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
portal.log.Warnln("Failed to update m.bridge:", err)
|
portal.log.Warnln("Failed to update m.bridge:", err)
|
||||||
}
|
}
|
||||||
_, err = portal.MainIntent().SendStateEvent(portal.MXID, StateHalfShotBridgeInfo, stateKey, content)
|
// TODO remove this once https://github.com/matrix-org/matrix-doc/pull/2346 is in spec
|
||||||
|
_, err = portal.MainIntent().SendStateEvent(portal.MXID, event.StateHalfShotBridge, stateKey, content)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
portal.log.Warnln("Failed to update uk.half-shot.bridge:", err)
|
portal.log.Warnln("Failed to update uk.half-shot.bridge:", err)
|
||||||
}
|
}
|
||||||
|
@ -1319,12 +1300,12 @@ func (portal *Portal) CreateMatrixRoom(user *User, groupInfo *types.GroupInfo, i
|
||||||
Parsed: portal.GetBasePowerLevels(),
|
Parsed: portal.GetBasePowerLevels(),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Type: StateBridgeInfo,
|
Type: event.StateBridge,
|
||||||
Content: event.Content{Parsed: bridgeInfo},
|
Content: event.Content{Parsed: bridgeInfo},
|
||||||
StateKey: &bridgeInfoStateKey,
|
StateKey: &bridgeInfoStateKey,
|
||||||
}, {
|
}, {
|
||||||
// TODO remove this once https://github.com/matrix-org/matrix-doc/pull/2346 is in spec
|
// TODO remove this once https://github.com/matrix-org/matrix-doc/pull/2346 is in spec
|
||||||
Type: StateHalfShotBridgeInfo,
|
Type: event.StateHalfShotBridge,
|
||||||
Content: event.Content{Parsed: bridgeInfo},
|
Content: event.Content{Parsed: bridgeInfo},
|
||||||
StateKey: &bridgeInfoStateKey,
|
StateKey: &bridgeInfoStateKey,
|
||||||
}}
|
}}
|
||||||
|
|
Loading…
Reference in a new issue