53 lines
1.7 KiB
Dart
53 lines
1.7 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:loopin/models/summary_type.dart';
|
|
import 'package:tencent_cloud_chat_sdk/enum/message_elem_type.dart';
|
|
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message.dart';
|
|
|
|
String parseMessageSummary(V2TimMessage msg) {
|
|
switch (msg.elemType) {
|
|
case MessageElemType.V2TIM_ELEM_TYPE_TEXT:
|
|
return msg.textElem?.text ?? '[文本消息]';
|
|
case MessageElemType.V2TIM_ELEM_TYPE_IMAGE:
|
|
return '[图片]';
|
|
case MessageElemType.V2TIM_ELEM_TYPE_SOUND:
|
|
return '[语音]';
|
|
case MessageElemType.V2TIM_ELEM_TYPE_VIDEO:
|
|
return '[视频]';
|
|
case MessageElemType.V2TIM_ELEM_TYPE_FILE:
|
|
return '[文件]'; // 先不做
|
|
case MessageElemType.V2TIM_ELEM_TYPE_LOCATION:
|
|
return '[位置]'; // 先不做
|
|
case MessageElemType.V2TIM_ELEM_TYPE_FACE:
|
|
return '[表情]';
|
|
case MessageElemType.V2TIM_ELEM_TYPE_CUSTOM:
|
|
return _parseCustomMessage(msg);
|
|
case MessageElemType.V2TIM_ELEM_TYPE_MERGER:
|
|
return '[合并转发消息]';
|
|
case MessageElemType.V2TIM_ELEM_TYPE_GROUP_TIPS:
|
|
return '[群提示]';
|
|
default:
|
|
return '[未知消息类型1]';
|
|
}
|
|
}
|
|
|
|
String _parseCustomMessage(V2TimMessage? msg) {
|
|
if (msg == null) return '[null]';
|
|
final sum = msg.cloudCustomData;
|
|
try {
|
|
switch (sum) {
|
|
case SummaryType.hongbao:
|
|
final hbData = jsonDecode(msg.customElem!.data!);
|
|
return '[红包]${hbData['remark']}';
|
|
case SummaryType.shareTuangou:
|
|
return '[分享商品]';
|
|
case SummaryType.shareVideo:
|
|
return '[分享视频]';
|
|
default:
|
|
return '[未知消息类型2]';
|
|
}
|
|
} catch (_) {
|
|
return '[未知消息类型3]';
|
|
}
|
|
}
|