summarize function
会话列表中的摘要:文本取原文(换行换成空格),附件用“图片”等,群提示和撤回给出文字。
通话记录在给出 self 时按 renderCallRecord,否则为“通话”。
Implementation
String summarize(DRObject message, {required NameOf nameOf, String? self, DRLocale locale = zhCN}) {
final l = locale;
String t(String key) => l.summary[key] ?? zhCN.summary[key] ?? '';
final raw = message.raw;
final recalled = raw['recalled'];
if (recalled != null && recalled != false) return renderRecall(message, self: self ?? '', nameOf: nameOf, locale: locale);
final b = _body(message);
switch (raw['type']) {
case 'text':
return '${b['text'] ?? ''}'.replaceAll(_spaces, ' ').trim();
case 'image':
return t('image');
case 'voice':
return t('voice');
case 'video':
return t('video');
case 'file':
return formatTemplate(t('file'), {'name': '${b['name'] ?? ''}'}).trim();
case 'location':
return formatTemplate(t('location'), {'name': '${b['name'] ?? ''}'}).trim();
case 'tip':
return renderTip(message, nameOf: nameOf, self: self, locale: locale);
case 'call':
return self != null && self.isNotEmpty ? renderCallRecord(message, self: self, locale: locale) : t('call');
case 'custom':
return t('custom');
default:
return t('unknown');
}
}