Skip to content

Commit

Permalink
🐛 skip escape for qq
Browse files Browse the repository at this point in the history
  • Loading branch information
yanyongyu authored Jan 10, 2025
1 parent f780c8b commit b2c3271
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
14 changes: 8 additions & 6 deletions nonebot/adapters/qq/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,9 +285,11 @@ def _prepare_message(message: Union[str, Message, MessageSegment]) -> Message:
return _message

@staticmethod
def _extract_send_message(message: Message) -> dict[str, Any]:
def _extract_send_message(
message: Message, escape_text: bool = True
) -> dict[str, Any]:
kwargs = {}
content = message.extract_content() or None
content = message.extract_content(escape_text) or None
kwargs["content"] = content
if embed := (message["embed"] or None):
kwargs["embed"] = embed[-1].data["embed"]
Expand Down Expand Up @@ -351,7 +353,7 @@ async def send_to_dms(
guild_id=guild_id,
msg_id=msg_id,
event_id=event_id,
**self._extract_send_message(message=message),
**self._extract_send_message(message=message, escape_text=True),
**self._extract_guild_image(message=message),
)

Expand All @@ -367,7 +369,7 @@ async def send_to_channel(
channel_id=channel_id,
msg_id=msg_id,
event_id=event_id,
**self._extract_send_message(message=message),
**self._extract_send_message(message=message, escape_text=True),
**self._extract_guild_image(message=message),
)

Expand All @@ -380,7 +382,7 @@ async def send_to_c2c(
event_id: Optional[str] = None,
) -> Union[PostC2CMessagesReturn, PostC2CFilesReturn]:
message = self._prepare_message(message)
kwargs = self._extract_send_message(message=message)
kwargs = self._extract_send_message(message=message, escape_text=False)
if kwargs.get("embed"):
msg_type = 4
elif kwargs.get("ark"):
Expand Down Expand Up @@ -429,7 +431,7 @@ async def send_to_group(
event_id: Optional[str] = None,
) -> Union[PostGroupMessagesReturn, PostGroupFilesReturn]:
message = self._prepare_message(message)
kwargs = self._extract_send_message(message=message)
kwargs = self._extract_send_message(message=message, escape_text=False)
if kwargs.get("embed"):
msg_type = 4
elif kwargs.get("ark"):
Expand Down
4 changes: 2 additions & 2 deletions nonebot/adapters/qq/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -532,9 +532,9 @@ def content_type(seg: QQAttachment):
)
return msg

def extract_content(self) -> str:
def extract_content(self, escape_text: bool = True) -> str:
return "".join(
str(seg)
seg.data["text"] if not escape_text and seg.type == "text" else str(seg)
for seg in self
if seg.type
in ("text", "emoji", "mention_user", "mention_everyone", "mention_channel")
Expand Down

0 comments on commit b2c3271

Please sign in to comment.