mirror of https://github.com/matrix-org/gomatrix
support for ephemeral events and more message types (#69)
* support ephemeral events * added AudioMessage,LocationMessage,FileMessage Co-authored-by: Bernhard Tittelbach <bernhard@tittelbach.org> Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
This commit is contained in:
parent
bceb63bac6
commit
7dd5e2a05b
41
events.go
41
events.go
|
@ -102,6 +102,47 @@ type HTMLMessage struct {
|
||||||
FormattedBody string `json:"formatted_body"`
|
FormattedBody string `json:"formatted_body"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FileInfo contains info about an file - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-file
|
||||||
|
type FileInfo struct {
|
||||||
|
Mimetype string `json:"mimetype,omitempty"`
|
||||||
|
Size uint `json:"size,omitempty"` //filesize in bytes
|
||||||
|
}
|
||||||
|
|
||||||
|
// FileMessage is an m.file event - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-file
|
||||||
|
type FileMessage struct {
|
||||||
|
MsgType string `json:"msgtype"`
|
||||||
|
Body string `json:"body"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
Filename string `json:"filename"`
|
||||||
|
Info FileInfo `json:"info,omitempty"`
|
||||||
|
ThumbnailURL string `json:"thumbnail_url,omitempty"`
|
||||||
|
ThumbnailInfo ImageInfo `json:"thumbnail_info,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LocationMessage is an m.location event - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-location
|
||||||
|
type LocationMessage struct {
|
||||||
|
MsgType string `json:"msgtype"`
|
||||||
|
Body string `json:"body"`
|
||||||
|
GeoURI string `json:"geo_uri"`
|
||||||
|
ThumbnailURL string `json:"thumbnail_url,omitempty"`
|
||||||
|
ThumbnailInfo ImageInfo `json:"thumbnail_info,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// AudioInfo contains info about an file - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-audio
|
||||||
|
type AudioInfo struct {
|
||||||
|
Mimetype string `json:"mimetype,omitempty"`
|
||||||
|
Size uint `json:"size,omitempty"` //filesize in bytes
|
||||||
|
Duration uint `json:"duration,omitempty"` //audio duration in ms
|
||||||
|
}
|
||||||
|
|
||||||
|
// AudioMessage is an m.audio event - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-audio
|
||||||
|
type AudioMessage struct {
|
||||||
|
MsgType string `json:"msgtype"`
|
||||||
|
Body string `json:"body"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
Info AudioInfo `json:"info,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
var htmlRegex = regexp.MustCompile("<[^<]+?>")
|
var htmlRegex = regexp.MustCompile("<[^<]+?>")
|
||||||
|
|
||||||
// GetHTMLMessage returns an HTMLMessage with the body set to a stripped version of the provided HTML, in addition
|
// GetHTMLMessage returns an HTMLMessage with the body set to a stripped version of the provided HTML, in addition
|
||||||
|
|
|
@ -189,6 +189,9 @@ type RespSync struct {
|
||||||
Limited bool `json:"limited"`
|
Limited bool `json:"limited"`
|
||||||
PrevBatch string `json:"prev_batch"`
|
PrevBatch string `json:"prev_batch"`
|
||||||
} `json:"timeline"`
|
} `json:"timeline"`
|
||||||
|
Ephemeral struct {
|
||||||
|
Events []Event `json:"events"`
|
||||||
|
} `json:"ephemeral"`
|
||||||
} `json:"join"`
|
} `json:"join"`
|
||||||
Invite map[string]struct {
|
Invite map[string]struct {
|
||||||
State struct {
|
State struct {
|
||||||
|
|
4
sync.go
4
sync.go
|
@ -64,6 +64,10 @@ func (s *DefaultSyncer) ProcessResponse(res *RespSync, since string) (err error)
|
||||||
event.RoomID = roomID
|
event.RoomID = roomID
|
||||||
s.notifyListeners(&event)
|
s.notifyListeners(&event)
|
||||||
}
|
}
|
||||||
|
for _, event := range roomData.Ephemeral.Events {
|
||||||
|
event.RoomID = roomID
|
||||||
|
s.notifyListeners(&event)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for roomID, roomData := range res.Rooms.Invite {
|
for roomID, roomData := range res.Rooms.Invite {
|
||||||
room := s.getOrCreateRoom(roomID)
|
room := s.getOrCreateRoom(roomID)
|
||||||
|
|
Loading…
Reference in New Issue