renderRecall function

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

撤回提示:本人撤回的“你撤回了一条消息”,群主或管理员撤回别人的标出操作人,服务端和平台撤回的不显示操作人。 没有撤回的返回空字符串。

Implementation

String renderRecall(DRObject message, {required String self, required NameOf nameOf, DRLocale locale = zhCN}) {
  final l = locale;
  String t(String key) => l.recall[key] ?? zhCN.recall[key] ?? '';
  final r = asMap(message.raw['recalled']);
  if (r == null) return '';
  final by = asString(r['by']);
  if (r['role'] == 'server' || r['role'] == 'platform' || by == null || by.isEmpty) return t('byServer');
  final sender = asString(message.raw['sender']);
  if (by == sender) return by == self ? t('self') : formatTemplate(t('sender'), {'name': nameOf(by)});
  final actor = by == self ? l.you : nameOf(by);
  final name = sender != null ? (sender == self ? l.you : nameOf(sender)) : l.deletedUser;
  return formatTemplate(t('byAdmin'), {'actor': actor, 'name': name});
}