Skip to content

EconomyValue-依赖注入模式 API 文档

本质为 标准 API 的二次封装,用于依赖注入

~.api.depends.factory

依赖注入模式工厂

python
class DependsSwitch:
    @staticmethod
    def account_data(
        *,
        currency_id: str | None = None,
    ) -> Callable[..., Awaitable[UserAccountData]]:
        """获得账户数据

        Args:
            currency_id (str | None, optional): 货币ID. Defaults to None.

        Returns:
            Callable[..., Awaitable[UserAccountData]]: 可供NoneBot调用的依赖函数类
        """
        ...

    @staticmethod
    def currency_data(
        *,
        currency_id: str | None = None,
    ) -> Callable[..., Awaitable[CurrencyData | None]]:
        """
        获取货币数据依赖函数

        Args:
            currency_id (str | None, optional): 货币ID. Defaults to None.

        Returns:
            Callable[..., Awaitable[CurrencyData | None]]: 可供NoneBot调用的依赖函数类
        """
        ...

    @staticmethod
    def transaction_data(
        *,
        limit: int = 10,
        timerange: tuple[float, float] | None = None,
    ) -> Callable[..., Awaitable[list[TransactionData]]]:
        """
        获取交易记录

        Args:
            limit (int, optional): 交易记录数量限制. Defaults to 10.
            timerange (tuple[float, float] | None, optional): 时间范围. Defaults to None.

        Returns:
            Callable[..., Awaitable[list[TransactionData]]]: 可供NoneBot调用的依赖函数类
        """
        ...

    @staticmethod
    def account_executor(
        *,
        currency_id: str | None = None,
    ) -> Callable[..., Awaitable[AccountExecutor]]:
        """
        Args:
            currency_id (str | None, optional): 货币ID. Defaults to None.

        Returns:
            Callable[..., Awaitable[AccountExecutor]]: 账号数据操作对象
        """
        ...

示例使用

python
from nonebot import on_command, require
from nonebot.adapters import Event
from nonebot.params import Depends

require("nonebot_plugin_value")
from nonebot_plugin_value.api.depends.factory import DependsSwitch, UserAccountData
from nonebot_plugin_value.api import AccountExecutor

test = on_command("test")
add_balance = on_command("add_balance")

@test.handle()
async def _(user_data: UserAccountData = Depends(DependsSwitch.account_data())):
    await test.finish(user_data.balance)

@add_balance.handle()
async def _(event:Event, executor: AccountExecutor = Depends(DependsSwitch.account_executor())):
    await executor.add_balance(event, 100)
    await add_balance.finish("添加成功")

MIT License 发布 ,角色设定/提示词内容使用 CC-BY-NC-SA-4.0 协议授权