更多的依赖注入

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使用方法具体查看文档或签到商品文件中注册的例子
* 新增用户使用道具,花费金币(包括插件)及用途记录
* 更细致的金币使用依赖注入
* 更多的依赖注入(包含图片获取等等..
* 色图插件p站反向代理失效 [@pull/1139](https://github.com/HibiKier/zhenxun_bot/pull/1139)
### 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.params import Depends
from models.user_shop_gold_log import UserShopGoldLog
from models.bag_user import BagUser
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):
@ -22,3 +25,104 @@ def cost_gold(gold: int):
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)