import{_ as i,c as a,ae as n,o as t}from"./chunks/framework.BzDBnRMZ.js";const g=JSON.parse('{"title":"dev","description":"","frontmatter":{"title":"dev","order":100},"headers":[],"relativePath":"dev/api/dev.md","filePath":"zh/dev/api/dev.md","lastUpdated":null}'),h={name:"dev/api/dev.md"};function l(k,s,p,e,E,r){return t(),a("div",null,s[0]||(s[0]=[n(`

模块 nonebot_plugin_marshoai.dev


@function_call.assign('list')

async func list_functions()

源代码在GitHub上查看
python
@function_call.assign('list')
async def list_functions():
    reply = '共有如下可调用函数:\\n'
    for function in get_function_calls().values():
        reply += f'- {function.short_info}\\n'
    await UniMessage(reply).send()

@function_call.assign('info')

async func function_info(function_name: str)

源代码在GitHub上查看
python
@function_call.assign('info')
async def function_info(function_name: str):
    function = get_function_calls().get(function_name)
    if function is None:
        await UniMessage(f'未找到函数 {function_name}').send()
        return
    await UniMessage(str(function)).send()

@function_call.assign('call')

async func call_function(function_name: str, kwargs: list[str], event: Event, bot: Bot, matcher: Matcher, state: T_State)

源代码在GitHub上查看
python
@function_call.assign('call')
async def call_function(function_name: str, kwargs: list[str], event: Event, bot: Bot, matcher: Matcher, state: T_State):
    function = get_function_calls().get(function_name)
    if function is None:
        for f in get_function_calls().values():
            if f.short_name == function_name:
                function = f
                break
        else:
            await UniMessage(f'未找到函数 {function_name}').send()
            return
    await UniMessage(str(await function.with_ctx(SessionContext(event=event, bot=bot, matcher=matcher, state=state)).call(**{i.split('=', 1)[0]: i.split('=', 1)[1] for i in kwargs}))).send()

@on_file_system_event((str(Path(__file__).parent / 'plugins'), *config.marshoai_plugin_dirs), recursive=True)

func on_plugin_file_change(event)

源代码在GitHub上查看
python
@on_file_system_event((str(Path(__file__).parent / 'plugins'), *config.marshoai_plugin_dirs), recursive=True)
def on_plugin_file_change(event):
    if event.src_path.endswith('.py'):
        logger.info(f'文件变动: {event.src_path}')
        dir_list: list[str] = event.src_path.split('/')
        dir_list[-1] = dir_list[-1].split('.', 1)[0]
        dir_list.reverse()
        for plugin_name in dir_list:
            if (plugin := get_plugin(plugin_name)):
                if plugin.module_path.endswith('__init__.py'):
                    if os.path.dirname(plugin.module_path).replace('\\\\', '/') in event.src_path.replace('\\\\', '/'):
                        logger.debug(f'找到变动插件: {plugin.name},正在重新加载')
                        reload_plugin(plugin)
                        context.reset_all()
                        break
                elif plugin.module_path == event.src_path:
                    logger.debug(f'找到变动插件: {plugin.name},正在重新加载')
                    reload_plugin(plugin)
                    context.reset_all()
                    break
        else:
            logger.debug('未找到变动插件')
            return

var dir_list

`,19)]))}const y=i(h,[["render",l]]);export{g as __pageData,y as default};