Skip to content

Commit

Permalink
尝试兼容lagrange的转发消息(但是gocq没测过)
Browse files Browse the repository at this point in the history
  • Loading branch information
LambdaYH committed Mar 4, 2024
1 parent 5a7bb03 commit 8643a52
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 48 deletions.
86 changes: 39 additions & 47 deletions nonebot_plugin_bottle/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import random
import asyncio
from typing import Union
from typing import Union, Any, List

from nonebot.typing import T_State
from nonebot.matcher import Matcher
Expand Down Expand Up @@ -134,6 +134,40 @@ async def verify(matcher: Matcher, event: GroupMessageEvent) -> None:
cancel = set(["取消", "cancel"])


async def try_send_forward(event: MessageEvent, bot: Bot, messages: List[Any]):
new_messages = []
for message in messages:
if isinstance(message, str):
new_messages.append(Message(message))
elif isinstance(message, MessageSegment):
new_messages.append(Message(message))
elif isinstance(message, Message):
new_messages.append(message)
forward_messages = [
MessageSegment(
type="node",
data={
"user_id": str(event.self_id),
"nickname": "Bottle",
"name": "Bottle",
"uin": str(event.self_id),
"content": message,
},
)
for message in new_messages
]
if isinstance(event, GroupMessageEvent):
await bot.send_group_forward_msg(
group_id=event.group_id,
messages=forward_messages,
)
else:
await bot.send_private_forward_msg(
user_id=event.user_id,
messages=forward_messages,
)


@throw.handle()
async def _(
matcher: Matcher,
Expand Down Expand Up @@ -271,14 +305,7 @@ async def _(
)

if whether_collapse(bottle, bottle_content):
await bot.send_group_forward_msg(
group_id=event.group_id,
messages=[
MessageSegment.node_custom(
user_id=event.self_id, nickname="Bottle", content=bottle_message
)
],
)
await try_send_forward(event, bot, [bottle_message])
else:
message_id = event.message_id
await get.send(MessageSegment.reply(message_id) + bottle_message)
Expand Down Expand Up @@ -494,14 +521,7 @@ async def _(
)

if whether_collapse(bottle, check_msg):
await bot.send_group_forward_msg(
group_id=event.group_id,
messages=[
MessageSegment.node_custom(
user_id=event.self_id, nickname="Bottle", content=check_msg
)
],
)
await try_send_forward(event, bot, [check_msg])
else:
message_id = event.message_id
await check_bottle.finish(MessageSegment.reply(message_id) + check_msg)
Expand Down Expand Up @@ -579,15 +599,7 @@ async def _(
)

# 发送合并转发消息
await bot.send_group_forward_msg(
group_id=event.group_id,
messages=[
MessageSegment.node_custom(
user_id=event.self_id, nickname="bottle", content=msg
)
for msg in messages
],
)
await try_send_forward(event, bot, messages)
else:
await listb.finish(total_bottles_info + "\n".join(bottles_info[:10]))
ba.add("cooldown", event.user_id)
Expand Down Expand Up @@ -668,27 +680,7 @@ async def _(
msg_list.append(comment_str)
else:
msg_list.append("漂流瓶暂无回复")

if isinstance(event, GroupMessageEvent):
await bot.send_forward_msg(
group_id=event.group_id,
messages=[
MessageSegment.node_custom(
user_id=event.self_id, nickname="Bottle", content=msg
)
for msg in msg_list
],
)
else:
await bot.send_forward_msg(
user_id=event.user_id,
messages=[
MessageSegment.node_custom(
user_id=event.self_id, nickname="Bottle", content=msg
)
for msg in msg_list
],
)
await try_send_forward(event, bot, msg_list)


@ban.handle()
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "nonebot_plugin_bottle"
version = "2.0.0.6"
version = "2.0.0.7"
description = "Bottle post plugin in Nonebot"
authors = ["Todysheep <[email protected]>"]
license = "GNU GPLv3"
Expand Down

0 comments on commit 8643a52

Please sign in to comment.