尝试增加合并消息转发功能 待验证是否可行

This commit is contained in:
Azide 2022-02-21 21:01:53 +08:00
parent 67972965ee
commit 5b9e255586
2 changed files with 25 additions and 3 deletions

View File

@ -9,10 +9,12 @@ class PlugConfig(BaseSettings):
bison_config_path: str = "" bison_config_path: str = ""
bison_use_pic: bool = False bison_use_pic: bool = False
bison_use_local: bool = False bison_use_local: bool = False
bison_use_forward_pic = True#当图片超过1张时改为合并消息发送
#bison_browser: str = "local:C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
bison_browser: str = "" bison_browser: str = ""
bison_init_filter: bool = True bison_init_filter: bool = True
bison_use_queue: bool = True bison_use_queue: bool = True
bison_outer_url: str = "http://localhost:8080/bison/" bison_outer_url: str = "http://localhost:15556/bison/"
bison_filter_log: bool = False bison_filter_log: bool = False
bison_to_me: bool = True bison_to_me: bool = True

View File

@ -1,5 +1,6 @@
from email import message
import time import time
from typing import Literal, Union from typing import List, Literal, Union
from nonebot.adapters import Message, MessageSegment from nonebot.adapters import Message, MessageSegment
from nonebot.adapters.onebot.v11.bot import Bot from nonebot.adapters.onebot.v11.bot import Bot
@ -19,6 +20,22 @@ async def _do_send(
elif user_type == "private": elif user_type == "private":
await bot.call_api("send_private_msg", user_id=user, message=msg) await bot.call_api("send_private_msg", user_id=user, message=msg)
async def _do_send_forward(
bot: "Bot", user: str, msgs: list
):
group_msg = []
bot_info = await bot.call_api("get_login_info")#猜测返回list 第一个为user_id第二个为nickname
for msg in msgs:
sub_msg = {
"type": "node",
"data": {
"name": f"{bot_info[0]}",
"uin": f"{bot_info[1]}",
"content": msg
}
}
group_msg.append(sub_msg)
await bot.call_api("send_group_forward_msg", group_id=user, message=group_msg)
async def do_send_msgs(): async def do_send_msgs():
global LAST_SEND_TIME global LAST_SEND_TIME
@ -40,7 +57,10 @@ async def do_send_msgs():
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):
if plugin_config.bison_use_queue: if plugin_config.bison_use_forward_pic and user_type!="private":
if msgs:
_do_send_forward(bot, user, msgs)
elif plugin_config.bison_use_queue:
for msg in msgs: for msg in msgs:
QUEUE.append((bot, user, user_type, msg, 2)) QUEUE.append((bot, user, user_type, msg, 2))
else: else: