summarize function

String summarize(
  1. DRObject message, {
  2. required NameOf nameOf,
  3. String? self,
  4. DRLocale locale = zhCN,
})

会话列表中的摘要:文本取原文(换行换成空格),附件用“图片”等,群提示和撤回给出文字。 通话记录在给出 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');
  }
}