import{_ as n,o as s,c as a,e}from"./app-gnbtOU7f.js";const t={},p=e(`
轻雪插件是轻雪内置的一部分功能,运行在主进程中,可以很高程度地扩展轻雪的功能
一个.py
文件或一个包含__init__.py
的文件夹即可被识别为插件
首先创建一个文件夹,例如watchdog_plugin
,并在其中创建一个__init__.py
文件,即可创建一个插件
__init__.py
from liteyuki.plugin import PluginMetadata, PluginType
from .watch_dog import *
__plugin_meta__ = PluginMetadata(
name="NoneDog",
version="1.0.0",
description="A simple plugin for nonebot developer",
type=PluginType.SERVICE
)
...
轻雪主进程不涉及聊天部分,因此插件主要是一些后台任务或者与聊天机器人的通信 以下我们会编写一个简单的插件,用于开发NoneBot时进行文件系统变更重载 watch_dog.py
import os
from liteyuki.dev import observer
from liteyuki import get_bot, logger
from watchdog.events import FileSystemEvent
liteyuki = get_bot()
exclude_extensions = (".pyc", ".pyo")
@observer.on_file_system_event(
directories=("src/nonebot_plugins",),
event_filter=lambda event: not event.src_path.endswith(exclude_extensions) and ("__pycache__" not in event.src_path) and os.path.isfile(event.src_path)
)
def restart_nonebot_process(event: FileSystemEvent):
logger.debug(f"File {event.src_path} changed, reloading nonebot...")
liteyuki.restart_process("nonebot")
- 在配置文件中的
liteyuki.plugins
中添加你的插件路径,例如watchdog_plugin
,重启轻雪即可加载插件。
- 使用开发工具快速运行插件,无需手动创建实例
- 创建入口文件,例如
main.py
,并在其中写入以下代码
from liteyuki.dev.plugin import run_plugins
run_plugins("watchdog_plugin")
然后运行python main.py
即可启动插件
启用插件后,我们在src/nonebot_plugins下创建一个文件,例如test.py
,并在其中写入一些代码,保存后轻雪会自动重载NoneBot进程
`,19),o=[p];function i(c,l){return s(),a("div",null,o)}const d=n(t,[["render",i],["__file","dev_lyplugin.html.vue"]]),r=JSON.parse('{"path":"/dev/dev_lyplugin.html","title":"轻雪插件开发","lang":"zh-CN","frontmatter":{"title":"轻雪插件开发","icon":"laptop-code","order":3,"category":"开发","description":"简介 轻雪插件是轻雪内置的一部分功能,运行在主进程中,可以很高程度地扩展轻雪的功能 开始 创建插件 一个.py文件或一个包含__init__.py的文件夹即可被识别为插件 首先创建一个文件夹,例如watchdog_plugin,并在其中创建一个__init__.py文件,即可创建一个插件 __init__.py 编写逻辑部分 轻雪主进程不涉及聊天部分,...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://vuepress-theme-hope-docs-demo.netlify.app/en/dev/dev_lyplugin.html"}],["meta",{"property":"og:url","content":"https://vuepress-theme-hope-docs-demo.netlify.app/dev/dev_lyplugin.html"}],["meta",{"property":"og:site_name","content":"LiteyukiBot 轻雪机器人"}],["meta",{"property":"og:title","content":"轻雪插件开发"}],["meta",{"property":"og:description","content":"简介 轻雪插件是轻雪内置的一部分功能,运行在主进程中,可以很高程度地扩展轻雪的功能 开始 创建插件 一个.py文件或一个包含__init__.py的文件夹即可被识别为插件 首先创建一个文件夹,例如watchdog_plugin,并在其中创建一个__init__.py文件,即可创建一个插件 __init__.py 编写逻辑部分 轻雪主进程不涉及聊天部分,..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-29T06:23:13.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-29T06:23:13.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"轻雪插件开发\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-29T06:23:13.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"简介","slug":"简介","link":"#简介","children":[]},{"level":2,"title":"开始","slug":"开始","link":"#开始","children":[{"level":3,"title":"创建插件","slug":"创建插件","link":"#创建插件","children":[]},{"level":3,"title":"编写逻辑部分","slug":"编写逻辑部分","link":"#编写逻辑部分","children":[]},{"level":3,"title":"加载插件","slug":"加载插件","link":"#加载插件","children":[]}]}],"git":{"createdTime":1723411596000,"updatedTime":1724912593000,"contributors":[{"name":"snowy","email":"snowykami@outlook.com","commits":6}]},"readingTime":{"minutes":1.68,"words":504},"filePathRelative":"dev/dev_lyplugin.md","localizedDate":"2024年8月11日","autoDesc":true}');export{d as comp,r as data};