更多的依赖注入

This commit is contained in:
HibiKier 2022-10-15 22:13:41 +08:00
parent cb0938721c
commit b057a05520
2 changed files with 106 additions and 1 deletions

View File

@ -294,6 +294,7 @@ PS: **ARM平台** 请使用全量版 同时 **如果你的机器 RAM < 1G 可能
* 商品添加使用前方法和使用后方法类似hook使用方法具体查看文档或签到商品文件中注册的例子 * 商品添加使用前方法和使用后方法类似hook使用方法具体查看文档或签到商品文件中注册的例子
* 新增用户使用道具,花费金币(包括插件)及用途记录 * 新增用户使用道具,花费金币(包括插件)及用途记录
* 更细致的金币使用依赖注入 * 更细致的金币使用依赖注入
* 更多的依赖注入(包含图片获取等等..
* 色图插件p站反向代理失效 [@pull/1139](https://github.com/HibiKier/zhenxun_bot/pull/1139) * 色图插件p站反向代理失效 [@pull/1139](https://github.com/HibiKier/zhenxun_bot/pull/1139)
### 2022/10/9 ### 2022/10/9

View File

@ -1,9 +1,12 @@
from nonebot.adapters.onebot.v11 import GroupMessageEvent from typing import List, Callable
from nonebot.adapters.onebot.v11 import GroupMessageEvent, MessageEvent
from nonebot.internal.matcher import Matcher from nonebot.internal.matcher import Matcher
from nonebot.internal.params import Depends from nonebot.internal.params import Depends
from models.user_shop_gold_log import UserShopGoldLog from models.user_shop_gold_log import UserShopGoldLog
from models.bag_user import BagUser from models.bag_user import BagUser
from utils.message_builder import at from utils.message_builder import at
from utils.utils import get_message_at, get_message_face, get_message_img, get_message_text
def cost_gold(gold: int): def cost_gold(gold: int):
@ -22,3 +25,104 @@ def cost_gold(gold: int):
return Depends(dependency) return Depends(dependency)
def ImageList() -> List[str]:
"""
说明:
获取图片列表
"""
async def dependency(event: MessageEvent):
return get_message_img(event.message)
return Depends(dependency)
def AtList() -> List[str]:
"""
说明:
获取at列表
"""
async def dependency(event: MessageEvent):
return get_message_at(event.message)
return Depends(dependency)
def FaceList() -> List[str]:
"""
说明:
获取face列表
"""
async def dependency(event: MessageEvent):
return get_message_face(event.message)
return Depends(dependency)
def PlaintText() -> str:
"""
说明:
获取纯文本
"""
async def dependency(event: MessageEvent):
return get_message_text(event.message)
return Depends(dependency)
async def _match(matcher: Matcher, event: MessageEvent, msg: str, func: Callable):
_list = func(event.message)
if not _list and msg:
await matcher.finish(msg)
return _list
def MatchImageList(msg: str) -> List[str]:
"""
说明:
获取图片列表且不能为空为空时提示并结束事件
参数:
:param msg: 提示文本
"""
async def dependency(matcher: Matcher, event: MessageEvent):
return await _match(matcher, event, msg, get_message_img)
return Depends(dependency)
def MatchAtList(msg: str) -> List[str]:
"""
说明:
获取at列表且不能为空为空时提示并结束事件
参数:
:param msg: 提示文本
"""
async def dependency(matcher: Matcher, event: MessageEvent):
return await _match(matcher, event, msg, get_message_at)
return Depends(dependency)
def MatchFaceList(msg: str) -> List[str]:
"""
说明:
获取face列表且不能为空为空时提示并结束事件
参数:
:param msg: 提示文本
"""
async def dependency(matcher: Matcher, event: MessageEvent):
return await _match(matcher, event, msg, get_message_face)
return Depends(dependency)
def MatchPlaintText(msg: str) -> str:
"""
说明:
获取纯文本且不能为空为空时提示并结束事件
参数:
:param msg: 提示文本
"""
async def dependency(matcher: Matcher, event: MessageEvent):
return await _match(matcher, event, msg, get_message_text)
return Depends(dependency)