修复词条At时bug与模糊查询时无法替换占位符问题

This commit is contained in:
HibiKier
2023-03-25 21:16:48 +08:00
parent f72988a71a
commit b2a2776fe3
5 changed files with 68 additions and 44 deletions
+12 -7
View File
@@ -1,4 +1,5 @@
from io import BytesIO
from typing import List
import imagehash
from nonebot.adapters.onebot.v11 import Bot, MessageEvent
@@ -6,24 +7,28 @@ from nonebot.typing import T_State
from PIL import Image
from services.log import logger
from utils.depends import ImageList
from utils.http_utils import AsyncHttpx
from utils.utils import get_message_at, get_message_img, get_message_text
from ._model import WordBank
async def check(bot: Bot, event: MessageEvent, state: T_State) -> bool:
async def check(
bot: Bot,
event: MessageEvent,
state: T_State,
) -> bool:
text = get_message_text(event.message)
img = get_message_img(event.message)
at = get_message_at(event.message)
img_list = get_message_img(event.message)
problem = text
if not text and len(img) == 1:
if not text and len(img_list) == 1:
try:
r = await AsyncHttpx.get(img[0])
r = await AsyncHttpx.get(img_list[0])
problem = str(imagehash.average_hash(Image.open(BytesIO(r.content))))
except Exception as e:
logger.warning(f"word_bank rule 获取图片失败 {type(e)}:{e}")
if at:
logger.warning(f"获取图片失败", "词条检测", e=e)
if get_message_at(event.message):
temp = ""
for seg in event.message:
if seg.type == "at":