Skip to content

Commit 1bcf214

Browse files
committed
🐛 complete replt
1 parent 7e83633 commit 1bcf214

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

nonebot_plugin_gemini/__init__.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@
4848
async def get_uni_reply(reply: Reply, event: Event, bot: Bot) -> UniMessage:
4949
if reply.msg is None:
5050
raise ValueError("回复为空")
51-
51+
5252
if isinstance(reply.msg, str):
53-
return UniMessage(Text(reply.msg))
53+
return UniMessage([Text(reply.msg)])
5454
elif isinstance(reply.msg, Message):
5555
return await UniMessage.generate(message=reply.msg, event=event, bot=bot)
5656

@@ -70,6 +70,8 @@ async def to_image_data(image: Image) -> Union[BytesIO, bytes]:
7070
if image.url is not None:
7171
async with aiohttp.ClientSession() as session:
7272
async with session.get(image.url) as resp:
73+
if resp.status != 200:
74+
raise ValueError(f"无法获取图片数据: {resp.status}")
7375
return await resp.read()
7476

7577
raise ValueError("无法获取图片数据")
@@ -80,15 +82,24 @@ async def to_image_data(image: Image) -> Union[BytesIO, bytes]:
8082

8183

8284
@chat.handle()
83-
async def _(event: Event, bot: Bot, message: Message = CommandArg(), raw_message: Message = EventMessage()):
85+
async def _(
86+
event: Event,
87+
bot: Bot,
88+
message: Message = CommandArg(),
89+
raw_message: Message = EventMessage(),
90+
):
8491
uni_message = await UniMessage.generate(message=message, event=event, bot=bot)
85-
uni_message_raw = await UniMessage.generate(message=raw_message, event=event, bot=bot)
92+
uni_message_raw = await UniMessage.generate(
93+
message=raw_message, event=event, bot=bot
94+
)
8695

8796
msg = []
8897
reply = uni_message_raw[Reply, 0] if Reply in uni_message_raw else None
8998

9099
if reply is not None and reply.msg is not None:
91-
uni_message = await get_uni_reply(reply, event, bot) + uni_message
100+
uni_message = (await get_uni_reply(reply, event, bot)).include(
101+
Image, Text
102+
) + uni_message
92103

93104
for seg in uni_message:
94105
if isinstance(seg, Text) and seg.text.strip() != "":
@@ -125,7 +136,9 @@ async def start_conversation(
125136
if args.extract_plain_text() != "":
126137
matcher.set_arg(key="msg", message=args)
127138

128-
state["gemini_chat_session"] = GeminiChatSession(GOOGLE_API_KEY, plugin_config.proxy)
139+
state["gemini_chat_session"] = GeminiChatSession(
140+
GOOGLE_API_KEY, plugin_config.proxy
141+
)
129142

130143

131144
@conversation.got("msg", prompt="对话开始")

0 commit comments

Comments
 (0)