This commit is contained in:
HibiKier 2022-02-20 11:06:04 +08:00
parent eaf6d54757
commit f038763041
11 changed files with 49 additions and 37 deletions

View File

@ -236,9 +236,15 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__
## 更新 ## 更新
### 2022/2/20 \[v0.1.3.1]
* 修复pix下载临时文件目录错误
* 修复AI天气发送图片ignore导致无法使用
* 修复纯文本被动技能提醒有时无法删除控制文本
### 2022/2/19 \[v0.1.3] (nonebot beta2) ### 2022/2/19 \[v0.1.3] (nonebot beta2)
* 由于nonebot升级版本提供更新建议 * 由于nonebot升级版本提供更新建议__该次升级将会导致nonebot.beta1以下的插件无法使用__
* 保证servicesutilsconfigspluginsbasic_plugins文件夹均为最新 * 保证servicesutilsconfigspluginsbasic_plugins文件夹均为最新
* 根目录有pyproject.toml与poetry.lock * 根目录有pyproject.toml与poetry.lock
* 执行命令: * 执行命令:
@ -248,6 +254,7 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__
* playwright install chromium * playwright install chromium
* python3 bot.py * python3 bot.py
* 适配nonebot.beta2 * 适配nonebot.beta2
* 删除图片搜索 nonebot_plugin_picsearcher * 删除图片搜索 nonebot_plugin_picsearcher
* 新增图片搜索 search_image * 新增图片搜索 search_image

View File

@ -1 +1 @@
__version__: v0.1.3 __version__: v0.1.3.1

View File

@ -11,7 +11,14 @@ async def handle_api_call(bot: Bot, api: str, data: Dict[str, Any]):
r = None r = None
if ( if (
(api == "send_msg" and data["message"] == "group_id" or api == "send_group_msg") (api == "send_msg" and data["message"] == "group_id" or api == "send_group_msg")
and (r := re.search("^\[\[_task\|(.*)]]", get_message_text(data["message"]))) and (
r := re.search(
"^\[\[_task\|(.*)]]",
data["message"]
if isinstance(data["message"], str)
else get_message_text(data["message"]),
)
)
and r.group(1) in group_manager.get_task_data().keys() and r.group(1) in group_manager.get_task_data().keys()
): ):
task = r.group(1) task = r.group(1)
@ -19,6 +26,11 @@ async def handle_api_call(bot: Bot, api: str, data: Dict[str, Any]):
if not await group_manager.check_group_task_status(group_id, task): if not await group_manager.check_group_task_status(group_id, task):
raise MockApiException(f"被动技能 {task} 处于关闭状态...") raise MockApiException(f"被动技能 {task} 处于关闭状态...")
else: else:
msg = str(data["message"][0]) if isinstance(data["message"], str):
msg = msg.replace(f"[[_task|{task}]]", "") msg = data["message"]
data["message"][0] = MessageSegment.text(msg) msg = msg.replace(f"[[_task|{task}]]", "")
data["message"] = msg
else:
msg = str(data["message"][0])
msg = msg.replace(f"[[_task|{task}]]", "")
data["message"][0] = MessageSegment.text(msg)

View File

@ -6,11 +6,10 @@ from nonebot.adapters.onebot.v11 import (
MessageEvent, MessageEvent,
) )
from nonebot.rule import to_me from nonebot.rule import to_me
from nonebot.params import CommandArg
from models.friend_user import FriendUser from models.friend_user import FriendUser
from models.group_member_info import GroupInfoUser from models.group_member_info import GroupInfoUser
from services.log import logger from services.log import logger
from utils.utils import get_message_img from utils.utils import get_message_img, get_message_text
from .data_source import get_chat_result, hello, no_result from .data_source import get_chat_result, hello, no_result
from configs.config import NICKNAME, Config from configs.config import NICKNAME, Config
@ -42,8 +41,8 @@ ai = on_message(rule=to_me(), priority=8)
@ai.handle() @ai.handle()
async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()): async def _(bot: Bot, event: MessageEvent):
msg = arg.extract_plain_text().strip() msg = get_message_text(event.json())
img = get_message_img(event.json()) img = get_message_img(event.json())
if "CQ:xml" in str(event.get_message()): if "CQ:xml" in str(event.get_message()):
return return

View File

@ -1,7 +1,7 @@
from httpx import AsyncClient from httpx import AsyncClient
from datetime import datetime from datetime import datetime
from nonebot.log import logger from nonebot.log import logger
from nonebot.adapters.cqhttp import Bot from nonebot.adapters.onebot.v11 import Bot
from configs.config import NICKNAME from configs.config import NICKNAME

View File

@ -1,13 +1,12 @@
from nonebot import on_message, on_regex from nonebot import on_message, on_regex
from configs.path_config import IMAGE_PATH from configs.path_config import IMAGE_PATH
from utils.message_builder import image from utils.message_builder import image
from utils.utils import is_number from utils.utils import is_number, get_message_text
from services.log import logger from services.log import logger
from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent, Message from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent
from utils.utils import FreqLimiter, cn2py from utils.utils import FreqLimiter, cn2py
from configs.config import Config from configs.config import Config
from utils.manager import withdraw_message_manager from utils.manager import withdraw_message_manager
from nonebot.params import CommandArg
from .rule import rule from .rule import rule
import random import random
import os import os
@ -58,8 +57,8 @@ _path = IMAGE_PATH / "image_management"
@send_img.handle() @send_img.handle()
async def _(event: MessageEvent, arg: Message = CommandArg()): async def _(event: MessageEvent):
msg = arg.extract_plain_text().strip().split() msg = get_message_text(event.json()).split()
gallery = msg[0] gallery = msg[0]
if gallery not in Config.get_config("image_management", "IMAGE_DIR_LIST"): if gallery not in Config.get_config("image_management", "IMAGE_DIR_LIST"):
return return

View File

@ -227,8 +227,8 @@ async def _(event: MessageEvent):
# 重置开箱 # 重置开箱
@scheduler.scheduled_job( @scheduler.scheduled_job(
"cron", "cron",
hour=0, hour=10,
minute=1, minute=22,
) )
async def _(): async def _():
await update_count_daily() await update_count_daily()

View File

@ -238,7 +238,7 @@ async def get_image(img_url: str, user_id: int) -> Optional[str]:
TEMP_PATH / f"pix_{user_id}_{img_url[-10:-4]}.jpg", "wb" TEMP_PATH / f"pix_{user_id}_{img_url[-10:-4]}.jpg", "wb"
) as f: ) as f:
await f.write(response.content) await f.write(response.content)
return f"pix_{user_id}_{img_url[-10:-4]}.jpg" return TEMP_PATH / f"pix_{user_id}_{img_url[-10:-4]}.jpg"
except TimeoutError: except TimeoutError:
logger.warning(f"PIX{img_url} 图片下载超时...") logger.warning(f"PIX{img_url} 图片下载超时...")
pass pass

View File

@ -149,11 +149,11 @@ async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()):
f"title{title}\n" f"title{title}\n"
f"author{author}\n" f"author{author}\n"
f"PID{pid}\nUID{uid}\n" f"PID{pid}\nUID{uid}\n"
f"{image(_img, 'temp')}" f"{image(_img)}"
) )
) )
else: else:
msg_id = await pix.send(image(_img, 'temp')) msg_id = await pix.send(image(_img))
logger.info( logger.info(
f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})" f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
f" 查看PIX图库PID: {pid}" f" 查看PIX图库PID: {pid}"

View File

@ -1,10 +1,10 @@
from nonebot import on_regex from nonebot import on_regex
from .data_source import get_weather_of_city, get_city_list from .data_source import get_weather_of_city, get_city_list
from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent, Message from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent
from jieba import posseg from jieba import posseg
from services.log import logger from services.log import logger
from nonebot.params import CommandArg from nonebot.params import RegexGroup
import re from typing import Tuple, Any
__zx_plugin_name__ = "天气查询" __zx_plugin_name__ = "天气查询"
@ -27,19 +27,12 @@ __plugin_settings__ = {
} }
weather = on_regex(r".{0,10}?的?天气.{0,10}", priority=5, block=True) weather = on_regex(r".{0,10}?(.*)的?天气.*?.{0,10}", priority=5, block=True)
@weather.handle() @weather.handle()
async def _(event: MessageEvent, arg: Message = CommandArg()): async def _(event: MessageEvent, reg_group: Tuple[Any, ...] = RegexGroup()):
msg = arg.extract_plain_text().strip() msg = reg_group[0]
msg1 = re.search(r".*?(.*)市?的?天气.*?", msg)
msg2 = re.search(r".*?天气(.*).*?", msg)
msg1 = msg1.group(1)
msg2 = msg2.group(1)
msg = msg1 if msg1 else msg2
if msg[-1] == "":
msg = msg[:-1]
if msg[-1] != "": if msg[-1] != "":
msg += "" msg += ""
city = "" city = ""

View File

@ -7,8 +7,10 @@
"basic_plugins", "basic_plugins",
"configs/path_config.py", "configs/path_config.py",
"configs/utils", "configs/utils",
"bot.py" "bot.py",
"poetry.lock",
"pyproject.toml"
], ],
"add_file": ["poetry.lock", "pyproject.toml"], "add_file": [],
"delete_file": [] "delete_file": []
} }