perf: 优化推送预览

This commit is contained in:
kuaifan 2024-10-27 05:31:04 +08:00
parent 36cb8290f4
commit 19a1ae9bec
3 changed files with 14 additions and 18 deletions

View File

@ -679,18 +679,14 @@ class WebSocketDialogMsg extends AbstractModel
} }
/** /**
* 返回引用消息(如果是文本消息则截取) * 返回引用消息(如果是文本只取预览)
* @param int $strlen
* @return array|mixed * @return array|mixed
*/ */
public function quoteTextMsg($strlen = 30) public function quoteTextMsg()
{ {
$msg = $this->msg; $msg = $this->msg;
if ($this->type === 'text') { if ($this->type === 'text') {
$msg['text'] = $this->previewTextMsg($msg['text']); $msg['text'] = $this->previewTextMsg($msg['text']);
if (mb_strlen($msg['text']) > $strlen) {
$msg['text'] = mb_substr($msg['text'], 0, $strlen - 3) . "...";
}
} }
return $msg; return $msg;
} }
@ -710,6 +706,10 @@ class WebSocketDialogMsg extends AbstractModel
if (!$preserveHtml) { if (!$preserveHtml) {
$text = strip_tags($text); $text = strip_tags($text);
$text = str_replace(["&nbsp;", "&amp;", "&lt;", "&gt;"], [" ", "&", "<", ">"], $text); $text = str_replace(["&nbsp;", "&amp;", "&lt;", "&gt;"], [" ", "&", "<", ">"], $text);
$text = preg_replace("/\s+/", " ", $text);
if (mb_strlen($text) > 30) {
$text = mb_substr($text, 0, 30) . "...";
}
} }
return $text; return $text;
} }

View File

@ -270,10 +270,15 @@ import {MarkdownPreview} from "../store/markdown";
.replace(/&amp;/g, "&") .replace(/&amp;/g, "&")
.replace(/&lt;/g, "<") .replace(/&lt;/g, "<")
.replace(/&gt;/g, ">") .replace(/&gt;/g, ">")
.replace(/\s+/g, " ")
if (imgClassName) { if (imgClassName) {
text = text.replace(/\[image:(.*?)\]/g, `<img class="${imgClassName}" src="$1">`) text = text.replace(/\[image:(.*?)\]/g, `<img class="${imgClassName}" src="$1">`)
text = text.replace(/\{\{RemoteURL\}\}/g, this.apiUrl('../')) text = text.replace(/\{\{RemoteURL\}\}/g, this.apiUrl('../'))
} }
const tmpText = text.substring(0, 30)
if (tmpText.length < text.length) {
text = tmpText + '...'
}
return text return text
}, },

View File

@ -1074,22 +1074,13 @@ export default {
return; // return; //
} }
// //
const {id, dialog_id, dialog_type, type, msg, userid} = data; const {id, dialog_id, dialog_type, userid} = data;
if (userid == this.userId) { if (userid == this.userId) {
return; // return; //
} }
let body; const body = $A.getMsgSimpleDesc(data);
switch (type) {
case 'text':
body = $A.getMsgTextPreview(msg.type === 'md' ? MarkdownPreview(msg.text) : msg.text)
break;
case 'file':
body = '[' + this.$L(msg.type == 'img' ? '图片信息' : '文件信息') + ']'
break;
default:
return;
}
this.__notificationId = id; this.__notificationId = id;
//
const notificationFuncA = (title) => { const notificationFuncA = (title) => {
if (dialog_type === 'group') { if (dialog_type === 'group') {
let tempUser = this.cacheUserBasic.find(item => item.userid == userid); let tempUser = this.cacheUserBasic.find(item => item.userid == userid);