Skip to content

Commit 030e883

Browse files
authored
fix(message): 落库保留消息中的 @艾特; 同步前端
1 parent 2025c97 commit 030e883

8 files changed

Lines changed: 29 additions & 26 deletions

File tree

core/bot/event.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
SILENT_TYPES,
2424
)
2525
from core.message.parsers import IdentityHelper
26+
from core.message.parsers.base import MessageUtils
2627

2728
log = get_logger(FRAMEWORK, '事件处理')
2829

@@ -213,7 +214,9 @@ async def _on_event(self, event):
213214
msg_id = event.message_id or ''
214215
uid = event.user_id or ''
215216
gid = event.group_id or ''
216-
content = event.content or ''
217+
content = MessageUtils.sanitize_content(event.raw_content, keep_at=True) or event.content or ''
218+
if event.image_url and f'<{event.image_url}>' not in content:
219+
content = f'{content}<{event.image_url}>' if content else f'<{event.image_url}>'
217220
raw_json = json.dumps(event.raw, ensure_ascii=False)
218221
bot.log_service.add_sync('message', {
219222
'message_id': msg_id, 'user_id': uid,

core/message/parsers/base.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ class MessageUtils:
1414
_AT_PATTERN = re.compile(r'<@!?[A-Za-z0-9]+>')
1515

1616
@staticmethod
17-
def sanitize_content(content):
18-
"""内容清洗: face 标签→[face id=X], @圈人信息剔除, 去除首尾空白"""
17+
def sanitize_content(content, *, keep_at=False):
18+
"""内容清洗: face 标签→[face id=X], @圈人信息剔除(keep_at=True 保留), 去首尾空白"""
1919
if not content:
2020
return ''
2121
text = str(content)
2222
if '<faceType' in text:
2323
text = MessageUtils._FACE_PATTERN.sub(r'[face id=\1]', text)
24-
if '<@' in text:
24+
if not keep_at and '<@' in text:
2525
text = MessageUtils._AT_PATTERN.sub('', text)
2626
return text.strip()
2727

web/dist/assets/Config.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)