mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-05 11:26:43 +08:00
update func sig
This commit is contained in:
parent
3d9523f5f3
commit
0aaaa86c24
@ -24,7 +24,7 @@ class Post:
|
||||
pics: list[Union[str, bytes]] = field(default_factory=list)
|
||||
extra_msg: list[Message] = field(default_factory=list)
|
||||
|
||||
_message: Optional[list] = None
|
||||
_message: Optional[list[Message]] = None
|
||||
|
||||
def _use_pic(self):
|
||||
if not self.override_use_pic is None:
|
||||
@ -107,10 +107,10 @@ class Post:
|
||||
self.pics = self.pics[matrix[0] * matrix[1] :]
|
||||
self.pics.insert(0, target_io.getvalue())
|
||||
|
||||
async def generate_messages(self):
|
||||
async def generate_messages(self) -> list[Message]:
|
||||
if self._message is None:
|
||||
await self._pic_merge()
|
||||
msgs = []
|
||||
msg_segments: list[MessageSegment] = []
|
||||
text = ""
|
||||
if self.text:
|
||||
if self._use_pic():
|
||||
@ -123,20 +123,21 @@ class Post:
|
||||
if self.target_name:
|
||||
text += " {}".format(self.target_name)
|
||||
if self._use_pic():
|
||||
msgs.append(await parse_text(text))
|
||||
msg_segments.append(await parse_text(text))
|
||||
if not self.target_type == "rss" and self.url:
|
||||
msgs.append(MessageSegment.text(self.url))
|
||||
msg_segments.append(MessageSegment.text(self.url))
|
||||
else:
|
||||
if self.url:
|
||||
text += " \n详情: {}".format(self.url)
|
||||
msgs.append(MessageSegment.text(text))
|
||||
msg_segments.append(MessageSegment.text(text))
|
||||
for pic in self.pics:
|
||||
# if isinstance(pic, bytes):
|
||||
# pic = 'base64://' + base64.b64encode(pic).decode()
|
||||
# msgs.append(Message("[CQ:image,file={url}]".format(url=pic)))
|
||||
msgs.append(MessageSegment.image(pic))
|
||||
msg_segments.append(MessageSegment.image(pic))
|
||||
if self.compress:
|
||||
msgs = [reduce(lambda x, y: x.append(y), msgs, Message())]
|
||||
msgs = [reduce(lambda x, y: x.append(y), msg_segments, Message())]
|
||||
else:
|
||||
msgs = list(
|
||||
map(lambda msg_segment: Message([msg_segment]), msg_segments)
|
||||
)
|
||||
msgs.extend(self.extra_msg)
|
||||
self._message = msgs
|
||||
assert len(self._message) > 0, f"message list empty, {self}"
|
||||
|
@ -64,7 +64,9 @@ async def _send_msgs_dispatch(
|
||||
await _do_send(bot, user, user_type, msg)
|
||||
|
||||
|
||||
async def send_msgs(bot: Bot, user, user_type: Literal["private", "group"], msgs: list):
|
||||
async def send_msgs(
|
||||
bot: Bot, user, user_type: Literal["private", "group"], msgs: list[Message]
|
||||
):
|
||||
if not plugin_config.bison_use_pic_merge or user_type == "private":
|
||||
for msg in msgs:
|
||||
await _send_msgs_dispatch(bot, user, user_type, msg)
|
||||
|
@ -1,13 +1,11 @@
|
||||
import asyncio
|
||||
|
||||
import pytest
|
||||
from nonebug import App
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_send_no_queue(app: App):
|
||||
import nonebot
|
||||
from nonebot.adapters.onebot.v11.bot import Bot
|
||||
from nonebot.adapters.onebot.v11.message import Message
|
||||
from nonebot_bison.plugin_config import plugin_config
|
||||
from nonebot_bison.send import send_msgs
|
||||
|
||||
@ -16,16 +14,16 @@ async def test_send_no_queue(app: App):
|
||||
bot = ctx.create_bot(base=Bot)
|
||||
assert isinstance(bot, Bot)
|
||||
ctx.should_call_api(
|
||||
"send_group_msg", {"group_id": "1233", "message": "msg1"}, True
|
||||
"send_group_msg", {"group_id": "1233", "message": Message("msg1")}, True
|
||||
)
|
||||
ctx.should_call_api(
|
||||
"send_group_msg", {"group_id": "1233", "message": "msg2"}, True
|
||||
"send_group_msg", {"group_id": "1233", "message": Message("msg2")}, True
|
||||
)
|
||||
ctx.should_call_api(
|
||||
"send_private_msg", {"user_id": "666", "message": "priv"}, True
|
||||
"send_private_msg", {"user_id": "666", "message": Message("priv")}, True
|
||||
)
|
||||
await send_msgs(bot, "1233", "group", ["msg1", "msg2"])
|
||||
await send_msgs(bot, "666", "private", ["priv"])
|
||||
await send_msgs(bot, "1233", "group", [Message("msg1"), Message("msg2")])
|
||||
await send_msgs(bot, "666", "private", [Message("priv")])
|
||||
assert ctx.wait_list.empty()
|
||||
|
||||
|
||||
@ -33,9 +31,10 @@ async def test_send_no_queue(app: App):
|
||||
async def test_send_queue(app: App):
|
||||
import nonebot
|
||||
from nonebot.adapters.onebot.v11.bot import Bot
|
||||
from nonebot.adapters.onebot.v11.message import Message
|
||||
from nonebot_bison import send
|
||||
from nonebot_bison.plugin_config import plugin_config
|
||||
from nonebot_bison.send import LAST_SEND_TIME, do_send_msgs, send_msgs
|
||||
from nonebot_bison.send import do_send_msgs, send_msgs
|
||||
|
||||
async with app.test_api() as ctx:
|
||||
new_bot = ctx.create_bot(base=Bot)
|
||||
@ -48,7 +47,7 @@ async def test_send_queue(app: App):
|
||||
"send_group_msg", {"group_id": "1233", "message": "test msg"}, True
|
||||
)
|
||||
await bot.call_api("send_group_msg", group_id="1233", message="test msg")
|
||||
await send_msgs(bot, "1233", "group", ["msg"])
|
||||
await send_msgs(bot, "1233", "group", [Message("msg")])
|
||||
ctx.should_call_api(
|
||||
"send_group_msg", {"group_id": "1233", "message": "msg"}, True
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user