Przeglądaj źródła

Get Matrix msgtype from WhatsApp type instead of mimetype

Tulir Asokan 3 lat temu
rodzic
commit
f8d6f712bd
1 zmienionych plików z 11 dodań i 13 usunięć
  1. 11 13
      portal.go

+ 11 - 13
portal.go

@@ -2349,25 +2349,23 @@ func (portal *Portal) convertMediaMessageContent(intent *appservice.IntentAPI, m
 		}
 	}
 
-	_, isSticker := msg.(*waProto.StickerMessage)
-	switch strings.ToLower(strings.Split(msg.GetMimetype(), "/")[0]) {
-	case "image":
-		if !isSticker {
-			content.MsgType = event.MsgImage
-		}
-	case "video":
+	eventType := event.EventMessage
+	switch msg.(type) {
+	case *waProto.ImageMessage:
+		content.MsgType = event.MsgImage
+	case *waProto.StickerMessage:
+		eventType = event.EventSticker
+	case *waProto.VideoMessage:
 		content.MsgType = event.MsgVideo
-	case "audio":
+	case *waProto.AudioMessage:
 		content.MsgType = event.MsgAudio
+	case *waProto.DocumentMessage:
+		content.MsgType = event.MsgFile
 	default:
+		portal.log.Warnfln("Unexpected media type %T in convertMediaMessageContent", msg)
 		content.MsgType = event.MsgFile
 	}
 
-	eventType := event.EventMessage
-	if isSticker {
-		eventType = event.EventSticker
-	}
-
 	audioMessage, ok := msg.(*waProto.AudioMessage)
 	if ok {
 		var waveform []int