💥 为消息体增加bot_self_id以适配多账户 (#472)

This commit is contained in:
Wuyi无疑 2023-03-26 18:57:08 +08:00
parent 7a26ed7947
commit 8f299585f5
3 changed files with 15 additions and 4 deletions

View File

@ -27,6 +27,7 @@ async def get_gs_msg(ev):
user_id = str(ev.user_id) user_id = str(ev.user_id)
msg_id = str(ev.message_id) msg_id = str(ev.message_id)
group_id = str(ev.group_id) group_id = str(ev.group_id)
self_id = str(ev.self_id)
messages = ev.message messages = ev.message
message: List[Message] = [] message: List[Message] = []
msg_id = '' msg_id = ''
@ -65,6 +66,7 @@ async def get_gs_msg(ev):
user_type = 'group' if group_id else 'direct' user_type = 'group' if group_id else 'direct'
msg = MessageReceive( msg = MessageReceive(
bot_id=bot_id, bot_id=bot_id,
bot_self_id=self_id,
user_type=sp_user_type if sp_user_type else user_type, user_type=sp_user_type if sp_user_type else user_type,
group_id=group_id, group_id=group_id,
user_id=user_id, user_id=user_id,

View File

@ -43,7 +43,10 @@ class GsClient:
# 解析消息 # 解析消息
if msg.bot_id == 'NoneBot2': if msg.bot_id == 'NoneBot2':
continue continue
bot = hoshino_bot bot = hoshino_bot
# self_ids = hoshino.get_self_ids()
content = '' content = ''
image: Optional[str] = None image: Optional[str] = None
node = [] node = []
@ -74,11 +77,14 @@ class GsClient:
image, image,
node, node,
file, file,
msg.bot_self_id,
msg.target_id, msg.target_id,
msg.target_type, msg.target_type,
) )
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
except RuntimeError:
pass
except ConnectionClosedError: except ConnectionClosedError:
logger.warning(f'与[gsuid-core]断开连接! Bot_ID: {BOT_ID}') logger.warning(f'与[gsuid-core]断开连接! Bot_ID: {BOT_ID}')
self.is_alive = False self.is_alive = False
@ -127,6 +133,7 @@ async def onebot_send(
image: Optional[str], image: Optional[str],
node: Optional[List[Dict]], node: Optional[List[Dict]],
file: Optional[str], file: Optional[str],
bot_self_id: Optional[str],
target_id: Optional[str], target_id: Optional[str],
target_type: Optional[str], target_type: Optional[str],
): ):
@ -156,14 +163,14 @@ async def onebot_send(
del_file(path) del_file(path)
else: else:
if target_type == 'group': if target_type == 'group':
await bot.call_action( await bot.send_group_msg(
'send_group_msg', self_id=bot_self_id,
group_id=target_id, group_id=target_id,
message=result_msg, message=result_msg,
) )
else: else:
await bot.call_action( await bot.send_private_msg(
'send_private_msg', self_id=bot_self_id,
user_id=target_id, user_id=target_id,
message=result_msg, message=result_msg,
) )

View File

@ -10,6 +10,7 @@ class Message(Struct):
class MessageReceive(Struct): class MessageReceive(Struct):
bot_id: str = 'Bot' bot_id: str = 'Bot'
bot_self_id: str = ''
msg_id: str = '' msg_id: str = ''
user_type: Literal['group', 'direct', 'channel', 'sub_channel'] = 'group' user_type: Literal['group', 'direct', 'channel', 'sub_channel'] = 'group'
group_id: Optional[str] = None group_id: Optional[str] = None
@ -31,6 +32,7 @@ class MessageContent(Struct):
class MessageSend(Struct): class MessageSend(Struct):
bot_id: str = 'Bot' bot_id: str = 'Bot'
bot_self_id: str = ''
msg_id: str = '' msg_id: str = ''
target_type: Optional[str] = None target_type: Optional[str] = None
target_id: Optional[str] = None target_id: Optional[str] = None