hicli/sync: fix caching media edits in encrypted rooms

Signed-off-by: Sumner Evans <me@sumnerevans.com>
This commit is contained in:
Sumner Evans 2024-12-21 13:30:11 -07:00
parent 4c4744eba8
commit cf857e459e
No known key found for this signature in database

View file

@ -395,12 +395,7 @@ func (h *HiClient) addMediaCache(
}
func (h *HiClient) cacheMedia(ctx context.Context, evt *event.Event, rowID database.EventRowID) {
switch evt.Type {
case event.EventMessage, event.EventSticker:
content, ok := evt.Content.Parsed.(*event.MessageEventContent)
if !ok {
return
}
cacheMessageEventContent := func(content *event.MessageEventContent) {
if content.File != nil {
h.addMediaCache(ctx, rowID, content.File.URL, content.File, content.Info, content.GetFileName())
} else if content.URL != "" {
@ -427,6 +422,19 @@ func (h *HiClient) cacheMedia(ctx context.Context, evt *event.Event, rowID datab
h.addMediaCache(ctx, rowID, preview.ImageURL, nil, info, "")
}
}
}
switch evt.Type {
case event.EventMessage, event.EventSticker:
content, ok := evt.Content.Parsed.(*event.MessageEventContent)
if !ok {
return
}
cacheMessageEventContent(content)
if content.NewContent != nil {
cacheMessageEventContent(content.NewContent)
}
case event.StateRoomAvatar:
_ = evt.Content.ParseRaw(evt.Type)
content, ok := evt.Content.Parsed.(*event.RoomAvatarEventContent)