perf: 优化超长文本信息

This commit is contained in:
kuaifan
2024-12-13 15:45:20 +08:00
parent 9e92c61fbf
commit 49aa1434aa
12 changed files with 227 additions and 18 deletions

View File

@@ -592,6 +592,9 @@ class WebSocketDialogMsg extends AbstractModel
case 'text':
return self::previewTextMsg($data['msg'], $preserveHtml);
case 'longtext':
return $data['msg']['desc'] ? Base::cutStr($data['msg']['desc'], 50) : ("[" . Doo::translate("长文本") . "]");
case 'vote':
$action = Doo::translate("投票");
return "[{$action}] " . self::previewTextMsg($data['msg'], $preserveHtml);
@@ -774,14 +777,24 @@ class WebSocketDialogMsg extends AbstractModel
break;
}
}
$key = str_replace([""", "&", "<", ">"], "", $key);
$key = str_replace(["\r", "\n", "\t", " "], " ", $key);
$key = preg_replace("/^\/[A-Za-z]+/", " ", $key);
$key = preg_replace("/\s+/", " ", $key);
$this->key = trim($key);
$this->key = self::filterEscape($key);
$this->save();
}
/**
* 过滤转义
* @param $content
* @return string
*/
public static function filterEscape($content)
{
$content = str_replace([""", "&", "<", ">"], "", $content);
$content = str_replace(["\r", "\n", "\t", " "], " ", $content);
$content = preg_replace("/^\/[A-Za-z]+/", " ", $content);
$content = preg_replace("/\s+/", " ", $content);
return trim($content);
}
/**
* 返回引用消息(如果是文本只取预览)
* @return array|mixed