`,15),h=[l];function e(k,p,d,o,r,E){return a(),i("div",null,h)}const y=s(t,[["render",e]]);export{g as __pageData,y as default};
diff --git a/assets/deploy_config.md.QRt04bcu.lean.js b/assets/deploy_config.md.QRt04bcu.lean.js
new file mode 100644
index 00000000..6aa65ef0
--- /dev/null
+++ b/assets/deploy_config.md.QRt04bcu.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"配置","description":"","frontmatter":{"title":"配置","order":2},"headers":[],"relativePath":"deploy/config.md","filePath":"zh/deploy/config.md","lastUpdated":1725101868000}'),t={name:"deploy/config.md"},l=n("",15),h=[l];function e(k,p,d,o,r,E){return a(),i("div",null,h)}const y=s(t,[["render",e]]);export{g as __pageData,y as default};
diff --git a/assets/deploy_fandq.md.BC91M77d.js b/assets/deploy_fandq.md.BC91M77d.js
new file mode 100644
index 00000000..2188f79d
--- /dev/null
+++ b/assets/deploy_fandq.md.BC91M77d.js
@@ -0,0 +1 @@
+import{_ as e,c as o,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"答疑","description":"","frontmatter":{"title":"答疑","order":3},"headers":[],"relativePath":"deploy/fandq.md","filePath":"zh/deploy/fandq.md","lastUpdated":1725101868000}'),r={name:"deploy/fandq.md"},n=a('
',10),l=[n];function i(c,h,d,p,s,u){return t(),o("div",null,l)}const g=e(r,[["render",i]]);export{m as __pageData,g as default};
diff --git a/assets/deploy_fandq.md.BC91M77d.lean.js b/assets/deploy_fandq.md.BC91M77d.lean.js
new file mode 100644
index 00000000..a562a899
--- /dev/null
+++ b/assets/deploy_fandq.md.BC91M77d.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as o,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"答疑","description":"","frontmatter":{"title":"答疑","order":3},"headers":[],"relativePath":"deploy/fandq.md","filePath":"zh/deploy/fandq.md","lastUpdated":1725101868000}'),r={name:"deploy/fandq.md"},n=a("",10),l=[n];function i(c,h,d,p,s,u){return t(),o("div",null,l)}const g=e(r,[["render",i]]);export{m as __pageData,g as default};
diff --git a/assets/deploy_install.md.DaqD6Ylg.js b/assets/deploy_install.md.DaqD6Ylg.js
new file mode 100644
index 00000000..89582db0
--- /dev/null
+++ b/assets/deploy_install.md.DaqD6Ylg.js
@@ -0,0 +1,8 @@
+import{_ as i,c as e,o as t,a4 as s}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"安装","description":"","frontmatter":{"title":"安装","order":1},"headers":[],"relativePath":"deploy/install.md","filePath":"zh/deploy/install.md","lastUpdated":1725102337000}'),a={name:"deploy/install.md"},o=s(`
`,15),l=[o];function n(c,d,r,h,p,k){return t(),e("div",null,l)}const b=i(a,[["render",n]]);export{g as __pageData,b as default};
diff --git a/assets/deploy_install.md.DaqD6Ylg.lean.js b/assets/deploy_install.md.DaqD6Ylg.lean.js
new file mode 100644
index 00000000..a906e68a
--- /dev/null
+++ b/assets/deploy_install.md.DaqD6Ylg.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as e,o as t,a4 as s}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"安装","description":"","frontmatter":{"title":"安装","order":1},"headers":[],"relativePath":"deploy/install.md","filePath":"zh/deploy/install.md","lastUpdated":1725102337000}'),a={name:"deploy/install.md"},o=s("",15),l=[o];function n(c,d,r,h,p,k){return t(),e("div",null,l)}const b=i(a,[["render",n]]);export{g as __pageData,b as default};
diff --git a/assets/dev_api_api.md.BjidfGYh.js b/assets/dev_api_api.md.BjidfGYh.js
new file mode 100644
index 00000000..48fc044b
--- /dev/null
+++ b/assets/dev_api_api.md.BjidfGYh.js
@@ -0,0 +1 @@
+import{_ as e,c as a,o as t,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"dev/api/api.md","filePath":"zh/dev/api/api.md","lastUpdated":null}'),o={name:"dev/api/api.md"},r=i('
',3),l=[r];function s(_,n,d,c,p,u){return t(),a("div",null,l)}const m=e(o,[["render",s]]);export{v as __pageData,m as default};
diff --git a/assets/dev_api_api.md.BjidfGYh.lean.js b/assets/dev_api_api.md.BjidfGYh.lean.js
new file mode 100644
index 00000000..14cc681a
--- /dev/null
+++ b/assets/dev_api_api.md.BjidfGYh.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as a,o as t,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"dev/api/api.md","filePath":"zh/dev/api/api.md","lastUpdated":null}'),o={name:"dev/api/api.md"},r=i("",3),l=[r];function s(_,n,d,c,p,u){return t(),a("div",null,l)}const m=e(o,[["render",s]]);export{v as __pageData,m as default};
diff --git a/assets/dev_api_bot_bot.md.CmVyYr_O.js b/assets/dev_api_bot_bot.md.CmVyYr_O.js
new file mode 100644
index 00000000..10bd7e8c
--- /dev/null
+++ b/assets/dev_api_bot_bot.md.CmVyYr_O.js
@@ -0,0 +1,211 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"dev/api/bot/bot.md","filePath":"zh/dev/api/bot/bot.md","lastUpdated":null}'),t={name:"dev/api/bot/bot.md"},l=n(`
`,85),e=[l];function h(p,k,r,d,g,o){return a(),i("div",null,e)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/dev_api_bot_bot.md.CmVyYr_O.lean.js b/assets/dev_api_bot_bot.md.CmVyYr_O.lean.js
new file mode 100644
index 00000000..379d36c7
--- /dev/null
+++ b/assets/dev_api_bot_bot.md.CmVyYr_O.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"dev/api/bot/bot.md","filePath":"zh/dev/api/bot/bot.md","lastUpdated":null}'),t={name:"dev/api/bot/bot.md"},l=n("",85),e=[l];function h(p,k,r,d,g,o){return a(),i("div",null,e)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/dev_api_bot_index.md.DudPhKae.js b/assets/dev_api_bot_index.md.DudPhKae.js
new file mode 100644
index 00000000..e8aaceca
--- /dev/null
+++ b/assets/dev_api_bot_index.md.DudPhKae.js
@@ -0,0 +1,211 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"dev/api/bot/index.md","filePath":"zh/dev/api/bot/index.md","lastUpdated":null}'),t={name:"dev/api/bot/index.md"},l=n(`
`,85),e=[l];function h(p,k,r,d,g,o){return a(),i("div",null,e)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/dev_api_bot_index.md.DudPhKae.lean.js b/assets/dev_api_bot_index.md.DudPhKae.lean.js
new file mode 100644
index 00000000..f5927c92
--- /dev/null
+++ b/assets/dev_api_bot_index.md.DudPhKae.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"dev/api/bot/index.md","filePath":"zh/dev/api/bot/index.md","lastUpdated":null}'),t={name:"dev/api/bot/index.md"},l=n("",85),e=[l];function h(p,k,r,d,g,o){return a(),i("div",null,e)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/dev_api_bot_lifespan.md.B4hpMOqt.js b/assets/dev_api_bot_lifespan.md.B4hpMOqt.js
new file mode 100644
index 00000000..70578a4c
--- /dev/null
+++ b/assets/dev_api_bot_lifespan.md.B4hpMOqt.js
@@ -0,0 +1,114 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const F=JSON.parse('{"title":"liteyuki.bot.lifespan","description":"","frontmatter":{"title":"liteyuki.bot.lifespan"},"headers":[],"relativePath":"dev/api/bot/lifespan.md","filePath":"zh/dev/api/bot/lifespan.md","lastUpdated":null}'),t={name:"dev/api/bot/lifespan.md"},e=n(`
`,67),l=[e];function p(h,k,r,o,d,g){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{F as __pageData,c as default};
diff --git a/assets/dev_api_bot_lifespan.md.B4hpMOqt.lean.js b/assets/dev_api_bot_lifespan.md.B4hpMOqt.lean.js
new file mode 100644
index 00000000..a4bc1b67
--- /dev/null
+++ b/assets/dev_api_bot_lifespan.md.B4hpMOqt.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const F=JSON.parse('{"title":"liteyuki.bot.lifespan","description":"","frontmatter":{"title":"liteyuki.bot.lifespan"},"headers":[],"relativePath":"dev/api/bot/lifespan.md","filePath":"zh/dev/api/bot/lifespan.md","lastUpdated":null}'),t={name:"dev/api/bot/lifespan.md"},e=n("",67),l=[e];function p(h,k,r,o,d,g){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{F as __pageData,c as default};
diff --git a/assets/dev_api_comm_channel.md.CNJvRyvp.js b/assets/dev_api_comm_channel.md.CNJvRyvp.js
new file mode 100644
index 00000000..258b4b00
--- /dev/null
+++ b/assets/dev_api_comm_channel.md.CNJvRyvp.js
@@ -0,0 +1,196 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.comm.channel","description":"","frontmatter":{"title":"liteyuki.comm.channel"},"headers":[],"relativePath":"dev/api/comm/channel.md","filePath":"zh/dev/api/comm/channel.md","lastUpdated":null}'),t={name:"dev/api/comm/channel.md"},l=n(`
def send(self, data: T):
+ """
+ 发送数据,发送函数为同步函数,没有异步的必要
+ Args:
+ data: 数据
+ """
+ if self.type_check:
+ _type = self._get_generic_type()
+ if _type is not None and (not self._validate_structure(data, _type)):
+ raise TypeError(f'Data must be an instance of {_type}, {type(data)} found')
+ if self._closed:
+ raise RuntimeError('Cannot send to a closed channel_')
+ self.conn_send.send(data)
`,78),h=[l];function e(k,p,r,d,E,g){return a(),i("div",null,h)}const F=s(t,[["render",e]]);export{c as __pageData,F as default};
diff --git a/assets/dev_api_comm_channel.md.CNJvRyvp.lean.js b/assets/dev_api_comm_channel.md.CNJvRyvp.lean.js
new file mode 100644
index 00000000..a3bbd77e
--- /dev/null
+++ b/assets/dev_api_comm_channel.md.CNJvRyvp.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.comm.channel","description":"","frontmatter":{"title":"liteyuki.comm.channel"},"headers":[],"relativePath":"dev/api/comm/channel.md","filePath":"zh/dev/api/comm/channel.md","lastUpdated":null}'),t={name:"dev/api/comm/channel.md"},l=n("",78),h=[l];function e(k,p,r,d,E,g){return a(),i("div",null,h)}const F=s(t,[["render",e]]);export{c as __pageData,F as default};
diff --git a/assets/dev_api_comm_comm.md.UNalIkKO.js b/assets/dev_api_comm_comm.md.UNalIkKO.js
new file mode 100644
index 00000000..b8763d6e
--- /dev/null
+++ b/assets/dev_api_comm_comm.md.UNalIkKO.js
@@ -0,0 +1 @@
+import{_ as o,c as a,o as c,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"dev/api/comm/comm.md","filePath":"zh/dev/api/comm/comm.md","lastUpdated":null}'),m={name:"dev/api/comm/comm.md"},i=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),n=e("p",null,[e("strong",null,"说明"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),s=[i,n];function l(r,d,_,p,u,h){return c(),a("div",null,s)}const v=o(m,[["render",l]]);export{k as __pageData,v as default};
diff --git a/assets/dev_api_comm_comm.md.UNalIkKO.lean.js b/assets/dev_api_comm_comm.md.UNalIkKO.lean.js
new file mode 100644
index 00000000..b8763d6e
--- /dev/null
+++ b/assets/dev_api_comm_comm.md.UNalIkKO.lean.js
@@ -0,0 +1 @@
+import{_ as o,c as a,o as c,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"dev/api/comm/comm.md","filePath":"zh/dev/api/comm/comm.md","lastUpdated":null}'),m={name:"dev/api/comm/comm.md"},i=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),n=e("p",null,[e("strong",null,"说明"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),s=[i,n];function l(r,d,_,p,u,h){return c(),a("div",null,s)}const v=o(m,[["render",l]]);export{k as __pageData,v as default};
diff --git a/assets/dev_api_comm_event.md.C9P63b1v.js b/assets/dev_api_comm_event.md.C9P63b1v.js
new file mode 100644
index 00000000..b6bd9132
--- /dev/null
+++ b/assets/dev_api_comm_event.md.C9P63b1v.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as e,a4 as i}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.event","description":"","frontmatter":{"title":"liteyuki.comm.event"},"headers":[],"relativePath":"dev/api/comm/event.md","filePath":"zh/dev/api/comm/event.md","lastUpdated":null}'),s={name:"dev/api/comm/event.md"},n=i('
',6),l=[n];function r(h,o,d,k,p,c){return e(),t("div",null,l)}const _=a(s,[["render",r]]);export{y as __pageData,_ as default};
diff --git a/assets/dev_api_comm_event.md.C9P63b1v.lean.js b/assets/dev_api_comm_event.md.C9P63b1v.lean.js
new file mode 100644
index 00000000..01c19a4c
--- /dev/null
+++ b/assets/dev_api_comm_event.md.C9P63b1v.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as e,a4 as i}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.event","description":"","frontmatter":{"title":"liteyuki.comm.event"},"headers":[],"relativePath":"dev/api/comm/event.md","filePath":"zh/dev/api/comm/event.md","lastUpdated":null}'),s={name:"dev/api/comm/event.md"},n=i("",6),l=[n];function r(h,o,d,k,p,c){return e(),t("div",null,l)}const _=a(s,[["render",r]]);export{y as __pageData,_ as default};
diff --git a/assets/dev_api_comm_index.md.Bztx56-h.js b/assets/dev_api_comm_index.md.Bztx56-h.js
new file mode 100644
index 00000000..d450b16e
--- /dev/null
+++ b/assets/dev_api_comm_index.md.Bztx56-h.js
@@ -0,0 +1 @@
+import{_ as a,c as o,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"dev/api/comm/index.md","filePath":"zh/dev/api/comm/index.md","lastUpdated":null}'),n={name:"dev/api/comm/index.md"},c=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),s=e("p",null,[e("strong",null,"说明"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),l=[c,s];function r(d,m,_,p,u,h){return i(),o("div",null,l)}const x=a(n,[["render",r]]);export{k as __pageData,x as default};
diff --git a/assets/dev_api_comm_index.md.Bztx56-h.lean.js b/assets/dev_api_comm_index.md.Bztx56-h.lean.js
new file mode 100644
index 00000000..d450b16e
--- /dev/null
+++ b/assets/dev_api_comm_index.md.Bztx56-h.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as o,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"dev/api/comm/index.md","filePath":"zh/dev/api/comm/index.md","lastUpdated":null}'),n={name:"dev/api/comm/index.md"},c=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),s=e("p",null,[e("strong",null,"说明"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),l=[c,s];function r(d,m,_,p,u,h){return i(),o("div",null,l)}const x=a(n,[["render",r]]);export{k as __pageData,x as default};
diff --git a/assets/dev_api_comm_rpc.md.Ctatb5Fy.js b/assets/dev_api_comm_rpc.md.Ctatb5Fy.js
new file mode 100644
index 00000000..bec5b865
--- /dev/null
+++ b/assets/dev_api_comm_rpc.md.Ctatb5Fy.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.comm.rpc","description":"","frontmatter":{"title":"liteyuki.comm.rpc"},"headers":[],"relativePath":"dev/api/comm/rpc.md","filePath":"zh/dev/api/comm/rpc.md","lastUpdated":null}'),e={name:"dev/api/comm/rpc.md"},n=t('
',8),l=[n];function p(h,r,o,c,k,d){return a(),i("div",null,l)}const m=s(e,[["render",p]]);export{u as __pageData,m as default};
diff --git a/assets/dev_api_comm_rpc.md.Ctatb5Fy.lean.js b/assets/dev_api_comm_rpc.md.Ctatb5Fy.lean.js
new file mode 100644
index 00000000..20e1b452
--- /dev/null
+++ b/assets/dev_api_comm_rpc.md.Ctatb5Fy.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.comm.rpc","description":"","frontmatter":{"title":"liteyuki.comm.rpc"},"headers":[],"relativePath":"dev/api/comm/rpc.md","filePath":"zh/dev/api/comm/rpc.md","lastUpdated":null}'),e={name:"dev/api/comm/rpc.md"},n=t("",8),l=[n];function p(h,r,o,c,k,d){return a(),i("div",null,l)}const m=s(e,[["render",p]]);export{u as __pageData,m as default};
diff --git a/assets/dev_api_comm_socks_channel.md.i5OohqUe.js b/assets/dev_api_comm_socks_channel.md.i5OohqUe.js
new file mode 100644
index 00000000..4c61f886
--- /dev/null
+++ b/assets/dev_api_comm_socks_channel.md.i5OohqUe.js
@@ -0,0 +1,26 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.comm.socks_channel","description":"","frontmatter":{"title":"liteyuki.comm.socks_channel"},"headers":[],"relativePath":"dev/api/comm/socks_channel.md","filePath":"zh/dev/api/comm/socks_channel.md","lastUpdated":null}'),n={name:"dev/api/comm/socks_channel.md"},t=e(`
`,21),l=[t];function h(p,k,o,r,d,c){return i(),a("div",null,l)}const y=s(n,[["render",h]]);export{u as __pageData,y as default};
diff --git a/assets/dev_api_comm_socks_channel.md.i5OohqUe.lean.js b/assets/dev_api_comm_socks_channel.md.i5OohqUe.lean.js
new file mode 100644
index 00000000..53c26e10
--- /dev/null
+++ b/assets/dev_api_comm_socks_channel.md.i5OohqUe.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.comm.socks_channel","description":"","frontmatter":{"title":"liteyuki.comm.socks_channel"},"headers":[],"relativePath":"dev/api/comm/socks_channel.md","filePath":"zh/dev/api/comm/socks_channel.md","lastUpdated":null}'),n={name:"dev/api/comm/socks_channel.md"},t=e("",21),l=[t];function h(p,k,o,r,d,c){return i(),a("div",null,l)}const y=s(n,[["render",h]]);export{u as __pageData,y as default};
diff --git a/assets/dev_api_comm_storage.md.CquSLWbc.js b/assets/dev_api_comm_storage.md.CquSLWbc.js
new file mode 100644
index 00000000..b48ff03d
--- /dev/null
+++ b/assets/dev_api_comm_storage.md.CquSLWbc.js
@@ -0,0 +1,144 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.comm.storage","description":"","frontmatter":{"title":"liteyuki.comm.storage"},"headers":[],"relativePath":"dev/api/comm/storage.md","filePath":"zh/dev/api/comm/storage.md","lastUpdated":null}'),t={name:"dev/api/comm/storage.md"},e=n(`
@classmethod
+def get_instance(cls):
+ if cls._instance is None:
+ with cls._lock:
+ if cls._instance is None:
+ cls._instance = KeyValueStore()
+ return cls._instance
`,69),l=[e];function h(k,p,r,d,E,g){return a(),i("div",null,l)}const c=s(t,[["render",h]]);export{o as __pageData,c as default};
diff --git a/assets/dev_api_comm_storage.md.CquSLWbc.lean.js b/assets/dev_api_comm_storage.md.CquSLWbc.lean.js
new file mode 100644
index 00000000..0b52e792
--- /dev/null
+++ b/assets/dev_api_comm_storage.md.CquSLWbc.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.comm.storage","description":"","frontmatter":{"title":"liteyuki.comm.storage"},"headers":[],"relativePath":"dev/api/comm/storage.md","filePath":"zh/dev/api/comm/storage.md","lastUpdated":null}'),t={name:"dev/api/comm/storage.md"},e=n("",69),l=[e];function h(k,p,r,d,E,g){return a(),i("div",null,l)}const c=s(t,[["render",h]]);export{o as __pageData,c as default};
diff --git a/assets/dev_api_config.md.5YZEeFsT.js b/assets/dev_api_config.md.5YZEeFsT.js
new file mode 100644
index 00000000..9b3c1b1b
--- /dev/null
+++ b/assets/dev_api_config.md.5YZEeFsT.js
@@ -0,0 +1,77 @@
+import{_ as i,c as a,o as n,a4 as s,j as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.config","description":"","frontmatter":{"title":"liteyuki.config"},"headers":[],"relativePath":"dev/api/config.md","filePath":"zh/dev/api/config.md","lastUpdated":null}'),l={name:"dev/api/config.md"},h=s('
`,22),e=[h,k,p];function r(d,g,E,o,y,F){return n(),a("div",null,e)}const u=i(l,[["render",r]]);export{f as __pageData,u as default};
diff --git a/assets/dev_api_config.md.5YZEeFsT.lean.js b/assets/dev_api_config.md.5YZEeFsT.lean.js
new file mode 100644
index 00000000..7e4c16ea
--- /dev/null
+++ b/assets/dev_api_config.md.5YZEeFsT.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as a,o as n,a4 as s,j as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.config","description":"","frontmatter":{"title":"liteyuki.config"},"headers":[],"relativePath":"dev/api/config.md","filePath":"zh/dev/api/config.md","lastUpdated":null}'),l={name:"dev/api/config.md"},h=s("",4),k=t("p",{"a.b.c:":"",1:""},"{a:{b:{c:1}}} ->",-1),p=s("",22),e=[h,k,p];function r(d,g,E,o,y,F){return n(),a("div",null,e)}const u=i(l,[["render",r]]);export{f as __pageData,u as default};
diff --git a/assets/dev_api_core_core.md.D46kyvua.js b/assets/dev_api_core_core.md.D46kyvua.js
new file mode 100644
index 00000000..b8787b64
--- /dev/null
+++ b/assets/dev_api_core_core.md.D46kyvua.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o,j as e,a as r}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"dev/api/core/core.md","filePath":"zh/dev/api/core/core.md","lastUpdated":null}'),c={name:"dev/api/core/core.md"},i=e("h1",{id:"liteyuki-core",tabindex:"-1"},[r("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),s=[i];function l(d,n,p,_,u,h){return o(),a("div",null,s)}const k=t(c,[["render",l]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_core_core.md.D46kyvua.lean.js b/assets/dev_api_core_core.md.D46kyvua.lean.js
new file mode 100644
index 00000000..b8787b64
--- /dev/null
+++ b/assets/dev_api_core_core.md.D46kyvua.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o,j as e,a as r}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"dev/api/core/core.md","filePath":"zh/dev/api/core/core.md","lastUpdated":null}'),c={name:"dev/api/core/core.md"},i=e("h1",{id:"liteyuki-core",tabindex:"-1"},[r("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),s=[i];function l(d,n,p,_,u,h){return o(),a("div",null,s)}const k=t(c,[["render",l]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_core_index.md.BN6y5dmE.js b/assets/dev_api_core_index.md.BN6y5dmE.js
new file mode 100644
index 00000000..1f8469ab
--- /dev/null
+++ b/assets/dev_api_core_index.md.BN6y5dmE.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o as i,j as e,a as o}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"dev/api/core/index.md","filePath":"zh/dev/api/core/index.md","lastUpdated":null}'),r={name:"dev/api/core/index.md"},c=e("h1",{id:"liteyuki-core",tabindex:"-1"},[o("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),d=[c];function s(n,l,p,_,u,h){return i(),a("div",null,d)}const k=t(r,[["render",s]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_core_index.md.BN6y5dmE.lean.js b/assets/dev_api_core_index.md.BN6y5dmE.lean.js
new file mode 100644
index 00000000..1f8469ab
--- /dev/null
+++ b/assets/dev_api_core_index.md.BN6y5dmE.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o as i,j as e,a as o}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"dev/api/core/index.md","filePath":"zh/dev/api/core/index.md","lastUpdated":null}'),r={name:"dev/api/core/index.md"},c=e("h1",{id:"liteyuki-core",tabindex:"-1"},[o("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),d=[c];function s(n,l,p,_,u,h){return i(),a("div",null,d)}const k=t(r,[["render",s]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_core_manager.md.DiZst2H3.js b/assets/dev_api_core_manager.md.DiZst2H3.js
new file mode 100644
index 00000000..ae13bae2
--- /dev/null
+++ b/assets/dev_api_core_manager.md.DiZst2H3.js
@@ -0,0 +1,92 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.core.manager","description":"","frontmatter":{"title":"liteyuki.core.manager"},"headers":[],"relativePath":"dev/api/core/manager.md","filePath":"zh/dev/api/core/manager.md","lastUpdated":null}'),e={name:"dev/api/core/manager.md"},l=n(`
async def start_all(self):
+ """
+ 对外启动方法,启动所有进程,创建asyncio task
+ """
+ [asyncio.create_task(chan.start_receive_loop()) for chan in get_channels().values()]
+ [asyncio.create_task(sm.start_receive_loop()) for sm in [shared_memory]]
+ [asyncio.create_task(self._run_process(name)) for name in self.targets]
def is_process_alive(self, name: str) -> bool:
+ """
+ 检查进程是否存活
+ Args:
+ name:
+
+ Returns:
+
+ """
+ if name not in self.targets:
+ logger.warning(f'Process {name} not found.')
+ return self.processes[name].is_alive()
`,36),t=[l];function h(k,p,r,d,E,g){return a(),i("div",null,t)}const c=s(e,[["render",h]]);export{o as __pageData,c as default};
diff --git a/assets/dev_api_core_manager.md.DiZst2H3.lean.js b/assets/dev_api_core_manager.md.DiZst2H3.lean.js
new file mode 100644
index 00000000..19d57784
--- /dev/null
+++ b/assets/dev_api_core_manager.md.DiZst2H3.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.core.manager","description":"","frontmatter":{"title":"liteyuki.core.manager"},"headers":[],"relativePath":"dev/api/core/manager.md","filePath":"zh/dev/api/core/manager.md","lastUpdated":null}'),e={name:"dev/api/core/manager.md"},l=n("",36),t=[l];function h(k,p,r,d,E,g){return a(),i("div",null,t)}const c=s(e,[["render",h]]);export{o as __pageData,c as default};
diff --git a/assets/dev_api_dev_dev.md.CnxR9aZA.js b/assets/dev_api_dev_dev.md.CnxR9aZA.js
new file mode 100644
index 00000000..5a6c53e9
--- /dev/null
+++ b/assets/dev_api_dev_dev.md.CnxR9aZA.js
@@ -0,0 +1 @@
+import{_ as a,c as d,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"dev/api/dev/dev.md","filePath":"zh/dev/api/dev/dev.md","lastUpdated":null}'),s={name:"dev/api/dev/dev.md"},l=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),o=e("p",null,[e("strong",null,"说明"),t(": 该模块用于存放一些开发工具")],-1),r=[l,o];function n(c,v,p,_,u,h){return i(),d("div",null,r)}const k=a(s,[["render",n]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_dev_dev.md.CnxR9aZA.lean.js b/assets/dev_api_dev_dev.md.CnxR9aZA.lean.js
new file mode 100644
index 00000000..5a6c53e9
--- /dev/null
+++ b/assets/dev_api_dev_dev.md.CnxR9aZA.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as d,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"dev/api/dev/dev.md","filePath":"zh/dev/api/dev/dev.md","lastUpdated":null}'),s={name:"dev/api/dev/dev.md"},l=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),o=e("p",null,[e("strong",null,"说明"),t(": 该模块用于存放一些开发工具")],-1),r=[l,o];function n(c,v,p,_,u,h){return i(),d("div",null,r)}const k=a(s,[["render",n]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_dev_index.md.CbQNGO4N.js b/assets/dev_api_dev_index.md.CbQNGO4N.js
new file mode 100644
index 00000000..92b1d6de
--- /dev/null
+++ b/assets/dev_api_dev_index.md.CbQNGO4N.js
@@ -0,0 +1 @@
+import{_ as a,c as d,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"dev/api/dev/index.md","filePath":"zh/dev/api/dev/index.md","lastUpdated":null}'),n={name:"dev/api/dev/index.md"},s=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),l=e("p",null,[e("strong",null,"说明"),t(": 该模块用于存放一些开发工具")],-1),o=[s,l];function r(c,p,_,u,v,h){return i(),d("div",null,o)}const k=a(n,[["render",r]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_dev_index.md.CbQNGO4N.lean.js b/assets/dev_api_dev_index.md.CbQNGO4N.lean.js
new file mode 100644
index 00000000..92b1d6de
--- /dev/null
+++ b/assets/dev_api_dev_index.md.CbQNGO4N.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as d,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"dev/api/dev/index.md","filePath":"zh/dev/api/dev/index.md","lastUpdated":null}'),n={name:"dev/api/dev/index.md"},s=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),l=e("p",null,[e("strong",null,"说明"),t(": 该模块用于存放一些开发工具")],-1),o=[s,l];function r(c,p,_,u,v,h){return i(),d("div",null,o)}const k=a(n,[["render",r]]);export{f as __pageData,k as default};
diff --git a/assets/dev_api_dev_observer.md.rNRTx952.js b/assets/dev_api_dev_observer.md.rNRTx952.js
new file mode 100644
index 00000000..9ce86d69
--- /dev/null
+++ b/assets/dev_api_dev_observer.md.rNRTx952.js
@@ -0,0 +1,44 @@
+import{_ as s,c as i,o as e,a4 as a}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.dev.observer","description":"","frontmatter":{"title":"liteyuki.dev.observer"},"headers":[],"relativePath":"dev/api/dev/observer.md","filePath":"zh/dev/api/dev/observer.md","lastUpdated":null}'),n={name:"dev/api/dev/observer.md"},t=a(`
`,27),l=[t];function h(p,k,r,d,o,c){return e(),i("div",null,l)}const y=s(n,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/dev_api_dev_observer.md.rNRTx952.lean.js b/assets/dev_api_dev_observer.md.rNRTx952.lean.js
new file mode 100644
index 00000000..7a5c0ece
--- /dev/null
+++ b/assets/dev_api_dev_observer.md.rNRTx952.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as e,a4 as a}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.dev.observer","description":"","frontmatter":{"title":"liteyuki.dev.observer"},"headers":[],"relativePath":"dev/api/dev/observer.md","filePath":"zh/dev/api/dev/observer.md","lastUpdated":null}'),n={name:"dev/api/dev/observer.md"},t=a("",27),l=[t];function h(p,k,r,d,o,c){return e(),i("div",null,l)}const y=s(n,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/dev_api_dev_plugin.md.B8-Pj2Gj.js b/assets/dev_api_dev_plugin.md.B8-Pj2Gj.js
new file mode 100644
index 00000000..21dced2a
--- /dev/null
+++ b/assets/dev_api_dev_plugin.md.B8-Pj2Gj.js
@@ -0,0 +1,12 @@
+import{_ as i,c as s,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const E=JSON.parse('{"title":"liteyuki.dev.plugin","description":"","frontmatter":{"title":"liteyuki.dev.plugin"},"headers":[],"relativePath":"dev/api/dev/plugin.md","filePath":"zh/dev/api/dev/plugin.md","lastUpdated":null}'),n={name:"dev/api/dev/plugin.md"},l=t(`
`,8),e=[l];function p(h,k,d,r,o,u){return a(),s("div",null,e)}const y=i(n,[["render",p]]);export{E as __pageData,y as default};
diff --git a/assets/dev_api_dev_plugin.md.B8-Pj2Gj.lean.js b/assets/dev_api_dev_plugin.md.B8-Pj2Gj.lean.js
new file mode 100644
index 00000000..ac640c39
--- /dev/null
+++ b/assets/dev_api_dev_plugin.md.B8-Pj2Gj.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const E=JSON.parse('{"title":"liteyuki.dev.plugin","description":"","frontmatter":{"title":"liteyuki.dev.plugin"},"headers":[],"relativePath":"dev/api/dev/plugin.md","filePath":"zh/dev/api/dev/plugin.md","lastUpdated":null}'),n={name:"dev/api/dev/plugin.md"},l=t("",8),e=[l];function p(h,k,d,r,o,u){return a(),s("div",null,e)}const y=i(n,[["render",p]]);export{E as __pageData,y as default};
diff --git a/assets/dev_api_exception.md.BdaZK_3x.js b/assets/dev_api_exception.md.BdaZK_3x.js
new file mode 100644
index 00000000..6c3550a8
--- /dev/null
+++ b/assets/dev_api_exception.md.BdaZK_3x.js
@@ -0,0 +1 @@
+import{_ as i,c as a,o as n,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.exception","description":"","frontmatter":{"title":"liteyuki.exception"},"headers":[],"relativePath":"dev/api/exception.md","filePath":"zh/dev/api/exception.md","lastUpdated":null}'),o={name:"dev/api/exception.md"},c=e("h1",{id:"liteyuki-exception",tabindex:"-1"},[t("liteyuki.exception "),e("a",{class:"header-anchor",href:"#liteyuki-exception","aria-label":'Permalink to "liteyuki.exception"'},"")],-1),s=e("p",null,[e("strong",null,"说明"),t(": exception模块包含了liteyuki运行中的所有错误")],-1),l=e("h3",{id:"class-liteyukiexception-baseexception",tabindex:"-1"},[e("em",null,[e("strong",null,"class")]),t(),e("code",null,"LiteyukiException(BaseException)"),t(),e("a",{class:"header-anchor",href:"#class-liteyukiexception-baseexception","aria-label":'Permalink to "***class*** `LiteyukiException(BaseException)`"'},"")],-1),p=[c,s,l];function r(d,x,u,_,h,k){return n(),a("div",null,p)}const f=i(o,[["render",r]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_exception.md.BdaZK_3x.lean.js b/assets/dev_api_exception.md.BdaZK_3x.lean.js
new file mode 100644
index 00000000..6c3550a8
--- /dev/null
+++ b/assets/dev_api_exception.md.BdaZK_3x.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as a,o as n,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.exception","description":"","frontmatter":{"title":"liteyuki.exception"},"headers":[],"relativePath":"dev/api/exception.md","filePath":"zh/dev/api/exception.md","lastUpdated":null}'),o={name:"dev/api/exception.md"},c=e("h1",{id:"liteyuki-exception",tabindex:"-1"},[t("liteyuki.exception "),e("a",{class:"header-anchor",href:"#liteyuki-exception","aria-label":'Permalink to "liteyuki.exception"'},"")],-1),s=e("p",null,[e("strong",null,"说明"),t(": exception模块包含了liteyuki运行中的所有错误")],-1),l=e("h3",{id:"class-liteyukiexception-baseexception",tabindex:"-1"},[e("em",null,[e("strong",null,"class")]),t(),e("code",null,"LiteyukiException(BaseException)"),t(),e("a",{class:"header-anchor",href:"#class-liteyukiexception-baseexception","aria-label":'Permalink to "***class*** `LiteyukiException(BaseException)`"'},"")],-1),p=[c,s,l];function r(d,x,u,_,h,k){return n(),a("div",null,p)}const f=i(o,[["render",r]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_index.md.Bj6EsNxq.js b/assets/dev_api_index.md.Bj6EsNxq.js
new file mode 100644
index 00000000..14bafa91
--- /dev/null
+++ b/assets/dev_api_index.md.Bj6EsNxq.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"dev/api/index.md","filePath":"zh/dev/api/index.md","lastUpdated":null}'),o={name:"dev/api/index.md"},r=i('
',3),n=[r];function l(s,_,d,c,p,u){return a(),t("div",null,n)}const m=e(o,[["render",l]]);export{v as __pageData,m as default};
diff --git a/assets/dev_api_index.md.Bj6EsNxq.lean.js b/assets/dev_api_index.md.Bj6EsNxq.lean.js
new file mode 100644
index 00000000..8ff180e5
--- /dev/null
+++ b/assets/dev_api_index.md.Bj6EsNxq.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"dev/api/index.md","filePath":"zh/dev/api/index.md","lastUpdated":null}'),o={name:"dev/api/index.md"},r=i("",3),n=[r];function l(s,_,d,c,p,u){return a(),t("div",null,n)}const m=e(o,[["render",l]]);export{v as __pageData,m as default};
diff --git a/assets/dev_api_log.md.C1VDikdj.js b/assets/dev_api_log.md.C1VDikdj.js
new file mode 100644
index 00000000..cbfc75df
--- /dev/null
+++ b/assets/dev_api_log.md.C1VDikdj.js
@@ -0,0 +1,18 @@
+import{_ as s,c as i,o as a,a4 as h}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.log","description":"","frontmatter":{"title":"liteyuki.log"},"headers":[],"relativePath":"dev/api/log.md","filePath":"zh/dev/api/log.md","lastUpdated":null}'),t={name:"dev/api/log.md"},k=h(`
`,8),l=[k];function n(p,e,E,r,g,d){return a(),i("div",null,l)}const o=s(t,[["render",n]]);export{y as __pageData,o as default};
diff --git a/assets/dev_api_log.md.C1VDikdj.lean.js b/assets/dev_api_log.md.C1VDikdj.lean.js
new file mode 100644
index 00000000..319d6e52
--- /dev/null
+++ b/assets/dev_api_log.md.C1VDikdj.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as h}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.log","description":"","frontmatter":{"title":"liteyuki.log"},"headers":[],"relativePath":"dev/api/log.md","filePath":"zh/dev/api/log.md","lastUpdated":null}'),t={name:"dev/api/log.md"},k=h("",8),l=[k];function n(p,e,E,r,g,d){return a(),i("div",null,l)}const o=s(t,[["render",n]]);export{y as __pageData,o as default};
diff --git a/assets/dev_api_message_event.md.AxntDJi3.js b/assets/dev_api_message_event.md.AxntDJi3.js
new file mode 100644
index 00000000..30b497f1
--- /dev/null
+++ b/assets/dev_api_message_event.md.AxntDJi3.js
@@ -0,0 +1,36 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.message.event","description":"","frontmatter":{"title":"liteyuki.message.event"},"headers":[],"relativePath":"dev/api/message/event.md","filePath":"zh/dev/api/message/event.md","lastUpdated":null}'),n={name:"dev/api/message/event.md"},t=e(`
`,12),h=[t];function l(k,p,r,d,E,g){return a(),i("div",null,h)}const F=s(n,[["render",l]]);export{o as __pageData,F as default};
diff --git a/assets/dev_api_message_event.md.AxntDJi3.lean.js b/assets/dev_api_message_event.md.AxntDJi3.lean.js
new file mode 100644
index 00000000..ba320c11
--- /dev/null
+++ b/assets/dev_api_message_event.md.AxntDJi3.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.message.event","description":"","frontmatter":{"title":"liteyuki.message.event"},"headers":[],"relativePath":"dev/api/message/event.md","filePath":"zh/dev/api/message/event.md","lastUpdated":null}'),n={name:"dev/api/message/event.md"},t=e("",12),h=[t];function l(k,p,r,d,E,g){return a(),i("div",null,h)}const F=s(n,[["render",l]]);export{o as __pageData,F as default};
diff --git a/assets/dev_api_message_index.md.B1MCWTHF.js b/assets/dev_api_message_index.md.B1MCWTHF.js
new file mode 100644
index 00000000..8820aa4d
--- /dev/null
+++ b/assets/dev_api_message_index.md.B1MCWTHF.js
@@ -0,0 +1 @@
+import{_ as a,c as s,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message","description":"","frontmatter":{"title":"liteyuki.message","collapsed":true},"headers":[],"relativePath":"dev/api/message/index.md","filePath":"zh/dev/api/message/index.md","lastUpdated":null}'),o={name:"dev/api/message/index.md"},l=e("h1",{id:"liteyuki-message",tabindex:"-1"},[t("liteyuki.message "),e("a",{class:"header-anchor",href:"#liteyuki-message","aria-label":'Permalink to "liteyuki.message"'},"")],-1),n=e("p",null,[e("strong",null,"说明"),t(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),r=e("p",null,[t("@Time : 2024/8/19 下午10:44 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),t(" @File : "),e("strong",null,"init"),t(".py.py @Software: PyCharm")],-1),d=[l,n,r];function m(c,u,p,_,h,k){return i(),s("div",null,d)}const f=a(o,[["render",m]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_message_index.md.B1MCWTHF.lean.js b/assets/dev_api_message_index.md.B1MCWTHF.lean.js
new file mode 100644
index 00000000..8820aa4d
--- /dev/null
+++ b/assets/dev_api_message_index.md.B1MCWTHF.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as s,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message","description":"","frontmatter":{"title":"liteyuki.message","collapsed":true},"headers":[],"relativePath":"dev/api/message/index.md","filePath":"zh/dev/api/message/index.md","lastUpdated":null}'),o={name:"dev/api/message/index.md"},l=e("h1",{id:"liteyuki-message",tabindex:"-1"},[t("liteyuki.message "),e("a",{class:"header-anchor",href:"#liteyuki-message","aria-label":'Permalink to "liteyuki.message"'},"")],-1),n=e("p",null,[e("strong",null,"说明"),t(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),r=e("p",null,[t("@Time : 2024/8/19 下午10:44 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),t(" @File : "),e("strong",null,"init"),t(".py.py @Software: PyCharm")],-1),d=[l,n,r];function m(c,u,p,_,h,k){return i(),s("div",null,d)}const f=a(o,[["render",m]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_message_matcher.md.CrqC3-lV.js b/assets/dev_api_message_matcher.md.CrqC3-lV.js
new file mode 100644
index 00000000..41017bb9
--- /dev/null
+++ b/assets/dev_api_message_matcher.md.CrqC3-lV.js
@@ -0,0 +1,35 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.matcher","description":"","frontmatter":{"title":"liteyuki.message.matcher"},"headers":[],"relativePath":"dev/api/message/matcher.md","filePath":"zh/dev/api/message/matcher.md","lastUpdated":null}'),n={name:"dev/api/message/matcher.md"},t=e(`
def add_matcher(matcher: Matcher):
+ for i, m in enumerate(_matcher_list):
+ if m.priority < matcher.priority:
+ _matcher_list.insert(i, matcher)
+ break
+ else:
+ _matcher_list.append(matcher)
`,9),l=[n];function h(k,r,p,o,d,y){return a(),i("div",null,l)}const E=s(t,[["render",h]]);export{c as __pageData,E as default};
diff --git a/assets/dev_api_message_on.md.BdoE0DiT.lean.js b/assets/dev_api_message_on.md.BdoE0DiT.lean.js
new file mode 100644
index 00000000..9f091c2b
--- /dev/null
+++ b/assets/dev_api_message_on.md.BdoE0DiT.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.message.on","description":"","frontmatter":{"title":"liteyuki.message.on"},"headers":[],"relativePath":"dev/api/message/on.md","filePath":"zh/dev/api/message/on.md","lastUpdated":null}'),t={name:"dev/api/message/on.md"},n=e("",9),l=[n];function h(k,r,p,o,d,y){return a(),i("div",null,l)}const E=s(t,[["render",h]]);export{c as __pageData,E as default};
diff --git a/assets/dev_api_message_rule.md.UByA3TJk.js b/assets/dev_api_message_rule.md.UByA3TJk.js
new file mode 100644
index 00000000..448d8a68
--- /dev/null
+++ b/assets/dev_api_message_rule.md.UByA3TJk.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as e,a4 as a}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.rule","description":"","frontmatter":{"title":"liteyuki.message.rule"},"headers":[],"relativePath":"dev/api/message/rule.md","filePath":"zh/dev/api/message/rule.md","lastUpdated":null}'),t={name:"dev/api/message/rule.md"},n=a('
@Rule\nasync def is_su_rule(event: MessageEvent) -> bool:\n return str(event.user_id) in _superusers
',20),l=[n];function h(r,p,k,d,o,g){return e(),i("div",null,l)}const c=s(t,[["render",h]]);export{y as __pageData,c as default};
diff --git a/assets/dev_api_message_rule.md.UByA3TJk.lean.js b/assets/dev_api_message_rule.md.UByA3TJk.lean.js
new file mode 100644
index 00000000..6c42cfdb
--- /dev/null
+++ b/assets/dev_api_message_rule.md.UByA3TJk.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as e,a4 as a}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.rule","description":"","frontmatter":{"title":"liteyuki.message.rule"},"headers":[],"relativePath":"dev/api/message/rule.md","filePath":"zh/dev/api/message/rule.md","lastUpdated":null}'),t={name:"dev/api/message/rule.md"},n=a("",20),l=[n];function h(r,p,k,d,o,g){return e(),i("div",null,l)}const c=s(t,[["render",h]]);export{y as __pageData,c as default};
diff --git a/assets/dev_api_message_session.md.ZRjlTcix.js b/assets/dev_api_message_session.md.ZRjlTcix.js
new file mode 100644
index 00000000..fbc33cd3
--- /dev/null
+++ b/assets/dev_api_message_session.md.ZRjlTcix.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o,j as e,a as s}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.session","description":"","frontmatter":{"title":"liteyuki.message.session"},"headers":[],"relativePath":"dev/api/message/session.md","filePath":"zh/dev/api/message/session.md","lastUpdated":null}'),i={name:"dev/api/message/session.md"},n=e("h1",{id:"liteyuki-message-session",tabindex:"-1"},[s("liteyuki.message.session "),e("a",{class:"header-anchor",href:"#liteyuki-message-session","aria-label":'Permalink to "liteyuki.message.session"'},"")],-1),l=e("p",null,[e("strong",null,"说明"),s(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),r=e("p",null,[s("@Time : 2024/8/19 下午10:47 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),s(" @File : session.py @Software: PyCharm")],-1),m=[n,l,r];function d(c,u,_,p,h,k){return o(),a("div",null,m)}const f=t(i,[["render",d]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_message_session.md.ZRjlTcix.lean.js b/assets/dev_api_message_session.md.ZRjlTcix.lean.js
new file mode 100644
index 00000000..fbc33cd3
--- /dev/null
+++ b/assets/dev_api_message_session.md.ZRjlTcix.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o,j as e,a as s}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.session","description":"","frontmatter":{"title":"liteyuki.message.session"},"headers":[],"relativePath":"dev/api/message/session.md","filePath":"zh/dev/api/message/session.md","lastUpdated":null}'),i={name:"dev/api/message/session.md"},n=e("h1",{id:"liteyuki-message-session",tabindex:"-1"},[s("liteyuki.message.session "),e("a",{class:"header-anchor",href:"#liteyuki-message-session","aria-label":'Permalink to "liteyuki.message.session"'},"")],-1),l=e("p",null,[e("strong",null,"说明"),s(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),r=e("p",null,[s("@Time : 2024/8/19 下午10:47 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),s(" @File : session.py @Software: PyCharm")],-1),m=[n,l,r];function d(c,u,_,p,h,k){return o(),a("div",null,m)}const f=t(i,[["render",d]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_mkdoc.md.BPGO1Znu.js b/assets/dev_api_mkdoc.md.BPGO1Znu.js
new file mode 100644
index 00000000..fb3c086d
--- /dev/null
+++ b/assets/dev_api_mkdoc.md.BPGO1Znu.js
@@ -0,0 +1,161 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.mkdoc","description":"","frontmatter":{"title":"liteyuki.mkdoc"},"headers":[],"relativePath":"dev/api/mkdoc.md","filePath":"zh/dev/api/mkdoc.md","lastUpdated":null}'),n={name:"dev/api/mkdoc.md"},h=t(`
`,65),k=[h];function l(p,e,r,E,d,g){return a(),i("div",null,k)}const o=s(n,[["render",l]]);export{y as __pageData,o as default};
diff --git a/assets/dev_api_mkdoc.md.BPGO1Znu.lean.js b/assets/dev_api_mkdoc.md.BPGO1Znu.lean.js
new file mode 100644
index 00000000..4fdbc177
--- /dev/null
+++ b/assets/dev_api_mkdoc.md.BPGO1Znu.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.mkdoc","description":"","frontmatter":{"title":"liteyuki.mkdoc"},"headers":[],"relativePath":"dev/api/mkdoc.md","filePath":"zh/dev/api/mkdoc.md","lastUpdated":null}'),n={name:"dev/api/mkdoc.md"},h=t("",65),k=[h];function l(p,e,r,E,d,g){return a(),i("div",null,k)}const o=s(n,[["render",l]]);export{y as __pageData,o as default};
diff --git a/assets/dev_api_plugin_index.md.3yEbVRtX.js b/assets/dev_api_plugin_index.md.3yEbVRtX.js
new file mode 100644
index 00000000..19b266db
--- /dev/null
+++ b/assets/dev_api_plugin_index.md.3yEbVRtX.js
@@ -0,0 +1,7 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"dev/api/plugin/index.md","filePath":"zh/dev/api/plugin/index.md","lastUpdated":null}'),e={name:"dev/api/plugin/index.md"},n=a(`
`,5),l=[n];function p(d,r,h,o,u,g){return t(),s("div",null,l)}const _=i(e,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/dev_api_plugin_index.md.3yEbVRtX.lean.js b/assets/dev_api_plugin_index.md.3yEbVRtX.lean.js
new file mode 100644
index 00000000..3d82d5a8
--- /dev/null
+++ b/assets/dev_api_plugin_index.md.3yEbVRtX.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"dev/api/plugin/index.md","filePath":"zh/dev/api/plugin/index.md","lastUpdated":null}'),e={name:"dev/api/plugin/index.md"},n=a("",5),l=[n];function p(d,r,h,o,u,g){return t(),s("div",null,l)}const _=i(e,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/dev_api_plugin_load.md.Bb_Kxjiz.js b/assets/dev_api_plugin_load.md.Bb_Kxjiz.js
new file mode 100644
index 00000000..68363d79
--- /dev/null
+++ b/assets/dev_api_plugin_load.md.Bb_Kxjiz.js
@@ -0,0 +1,83 @@
+import{_ as h,D as l,c as t,j as i,a as s,I as k,w as p,a4 as a,o as e}from"./chunks/framework.C3o_UkTa.js";const B=JSON.parse('{"title":"liteyuki.plugin.load","description":"","frontmatter":{"title":"liteyuki.plugin.load"},"headers":[],"relativePath":"dev/api/plugin/load.md","filePath":"zh/dev/api/plugin/load.md","lastUpdated":null}'),E={name:"dev/api/plugin/load.md"},d=a(`
def load_plugins(*plugin_dir: str, ignore_warning: bool=True) -> set[Plugin]:
+ """导入文件夹下多个插件
+
+ 参数:
+ plugin_dir: 文件夹路径
+ ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
+ """
+ plugins = set()
+ for dir_path in plugin_dir:
+ if not os.path.exists(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' does not exist.")
+ continue
+ if not os.listdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is empty.")
+ continue
+ if not os.path.isdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is not a directory.")
+ continue
+ for f in os.listdir(dir_path):
+ path = Path(os.path.join(dir_path, f))
+ module_name = None
+ if os.path.isfile(path) and f.endswith('.py') and (f != '__init__.py'):
+ module_name = f'{path_to_module_name(Path(dir_path))}.{f[:-3]}'
+ elif os.path.isdir(path) and os.path.exists(os.path.join(path, '__init__.py')):
+ module_name = path_to_module_name(path)
+ if module_name:
+ load_plugin(module_name)
+ if _plugins.get(module_name):
+ plugins.add(_plugins[module_name])
+ return plugins
def format_display_name(display_name: str, plugin_type: PluginType) -> str:
+ """
+ 设置插件名称颜色,根据不同类型插件设置颜色
+ Args:
+ display_name: 插件名称
+ plugin_type: 插件类型
+
+ Returns:
+ str: 设置后的插件名称 <y>name</y>
+ """
+ color = 'y'
+ match plugin_type:
+ case PluginType.APPLICATION:
+ color = 'm'
+ case PluginType.TEST:
+ color = 'g'
+ case PluginType.MODULE:
+ color = 'e'
+ case PluginType.SERVICE:
+ color = 'c'
+ return f'<{color}>{display_name} [{plugin_type.name}]</{color}>'
`,1);function y(F,o,u,_,C,c){const n=l("y");return e(),t("div",null,[d,i("p",null,[r,s(": str: 设置后的插件名称 "),k(n,null,{default:p(()=>[s("name")]),_:1})]),g])}const A=h(E,[["render",y]]);export{B as __pageData,A as default};
diff --git a/assets/dev_api_plugin_load.md.Bb_Kxjiz.lean.js b/assets/dev_api_plugin_load.md.Bb_Kxjiz.lean.js
new file mode 100644
index 00000000..d931572e
--- /dev/null
+++ b/assets/dev_api_plugin_load.md.Bb_Kxjiz.lean.js
@@ -0,0 +1 @@
+import{_ as h,D as l,c as t,j as i,a as s,I as k,w as p,a4 as a,o as e}from"./chunks/framework.C3o_UkTa.js";const B=JSON.parse('{"title":"liteyuki.plugin.load","description":"","frontmatter":{"title":"liteyuki.plugin.load"},"headers":[],"relativePath":"dev/api/plugin/load.md","filePath":"zh/dev/api/plugin/load.md","lastUpdated":null}'),E={name:"dev/api/plugin/load.md"},d=a("",17),r=i("strong",null,"返回",-1),g=a("",1);function y(F,o,u,_,C,c){const n=l("y");return e(),t("div",null,[d,i("p",null,[r,s(": str: 设置后的插件名称 "),k(n,null,{default:p(()=>[s("name")]),_:1})]),g])}const A=h(E,[["render",y]]);export{B as __pageData,A as default};
diff --git a/assets/dev_api_plugin_manager.md.wxoQsnAr.js b/assets/dev_api_plugin_manager.md.wxoQsnAr.js
new file mode 100644
index 00000000..b12f6a14
--- /dev/null
+++ b/assets/dev_api_plugin_manager.md.wxoQsnAr.js
@@ -0,0 +1 @@
+import{_ as t,c as i,o as n,j as e,a}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.plugin.manager","description":"","frontmatter":{"title":"liteyuki.plugin.manager"},"headers":[],"relativePath":"dev/api/plugin/manager.md","filePath":"zh/dev/api/plugin/manager.md","lastUpdated":null}'),r={name:"dev/api/plugin/manager.md"},l=e("h1",{id:"liteyuki-plugin-manager",tabindex:"-1"},[a("liteyuki.plugin.manager "),e("a",{class:"header-anchor",href:"#liteyuki-plugin-manager","aria-label":'Permalink to "liteyuki.plugin.manager"'},"")],-1),o=e("p",null,[e("strong",null,"说明"),a(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),s=e("p",null,[a("@Time : 2024/7/23 下午11:59 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),a(" @File : manager.py @Software: PyCharm")],-1),m=[l,o,s];function u(p,d,c,g,_,h){return n(),i("div",null,m)}const f=t(r,[["render",u]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_plugin_manager.md.wxoQsnAr.lean.js b/assets/dev_api_plugin_manager.md.wxoQsnAr.lean.js
new file mode 100644
index 00000000..b12f6a14
--- /dev/null
+++ b/assets/dev_api_plugin_manager.md.wxoQsnAr.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as i,o as n,j as e,a}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.plugin.manager","description":"","frontmatter":{"title":"liteyuki.plugin.manager"},"headers":[],"relativePath":"dev/api/plugin/manager.md","filePath":"zh/dev/api/plugin/manager.md","lastUpdated":null}'),r={name:"dev/api/plugin/manager.md"},l=e("h1",{id:"liteyuki-plugin-manager",tabindex:"-1"},[a("liteyuki.plugin.manager "),e("a",{class:"header-anchor",href:"#liteyuki-plugin-manager","aria-label":'Permalink to "liteyuki.plugin.manager"'},"")],-1),o=e("p",null,[e("strong",null,"说明"),a(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),s=e("p",null,[a("@Time : 2024/7/23 下午11:59 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),a(" @File : manager.py @Software: PyCharm")],-1),m=[l,o,s];function u(p,d,c,g,_,h){return n(),i("div",null,m)}const f=t(r,[["render",u]]);export{y as __pageData,f as default};
diff --git a/assets/dev_api_plugin_model.md.CXJI2586.js b/assets/dev_api_plugin_model.md.CXJI2586.js
new file mode 100644
index 00000000..3277fda7
--- /dev/null
+++ b/assets/dev_api_plugin_model.md.CXJI2586.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as e,a4 as r}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugin.model","description":"","frontmatter":{"title":"liteyuki.plugin.model"},"headers":[],"relativePath":"dev/api/plugin/model.md","filePath":"zh/dev/api/plugin/model.md","lastUpdated":null}'),o={name:"dev/api/plugin/model.md"},s=r('
',25),i=[s];function l(n,d,h,c,u,m){return e(),t("div",null,i)}const k=a(o,[["render",l]]);export{g as __pageData,k as default};
diff --git a/assets/dev_api_plugin_model.md.CXJI2586.lean.js b/assets/dev_api_plugin_model.md.CXJI2586.lean.js
new file mode 100644
index 00000000..720d096d
--- /dev/null
+++ b/assets/dev_api_plugin_model.md.CXJI2586.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as e,a4 as r}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugin.model","description":"","frontmatter":{"title":"liteyuki.plugin.model"},"headers":[],"relativePath":"dev/api/plugin/model.md","filePath":"zh/dev/api/plugin/model.md","lastUpdated":null}'),o={name:"dev/api/plugin/model.md"},s=r("",25),i=[s];function l(n,d,h,c,u,m){return e(),t("div",null,i)}const k=a(o,[["render",l]]);export{g as __pageData,k as default};
diff --git a/assets/dev_api_plugin_plugin.md.CSWk8lsR.js b/assets/dev_api_plugin_plugin.md.CSWk8lsR.js
new file mode 100644
index 00000000..a9a207f1
--- /dev/null
+++ b/assets/dev_api_plugin_plugin.md.CSWk8lsR.js
@@ -0,0 +1,7 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"dev/api/plugin/plugin.md","filePath":"zh/dev/api/plugin/plugin.md","lastUpdated":null}'),n={name:"dev/api/plugin/plugin.md"},e=a(`
`,5),l=[e];function p(d,r,h,u,o,g){return t(),s("div",null,l)}const _=i(n,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/dev_api_plugin_plugin.md.CSWk8lsR.lean.js b/assets/dev_api_plugin_plugin.md.CSWk8lsR.lean.js
new file mode 100644
index 00000000..298b85a0
--- /dev/null
+++ b/assets/dev_api_plugin_plugin.md.CSWk8lsR.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"dev/api/plugin/plugin.md","filePath":"zh/dev/api/plugin/plugin.md","lastUpdated":null}'),n={name:"dev/api/plugin/plugin.md"},e=a("",5),l=[e];function p(d,r,h,u,o,g){return t(),s("div",null,l)}const _=i(n,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/dev_api_plugins_liteecho.md.CPFGVTjw.js b/assets/dev_api_plugins_liteecho.md.CPFGVTjw.js
new file mode 100644
index 00000000..bfc526a3
--- /dev/null
+++ b/assets/dev_api_plugins_liteecho.md.CPFGVTjw.js
@@ -0,0 +1 @@
+import{_ as e,c as i,o as s,a4 as t}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugins.liteecho","description":"","frontmatter":{"title":"liteyuki.plugins.liteecho"},"headers":[],"relativePath":"dev/api/plugins/liteecho.md","filePath":"zh/dev/api/plugins/liteecho.md","lastUpdated":null}'),a={name:"dev/api/plugins/liteecho.md"},l=t('
',6),n=[l];function h(o,p,r,k,c,d){return s(),i("div",null,n)}const y=e(a,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/dev_api_plugins_liteecho.md.CPFGVTjw.lean.js b/assets/dev_api_plugins_liteecho.md.CPFGVTjw.lean.js
new file mode 100644
index 00000000..b26d7d24
--- /dev/null
+++ b/assets/dev_api_plugins_liteecho.md.CPFGVTjw.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as i,o as s,a4 as t}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugins.liteecho","description":"","frontmatter":{"title":"liteyuki.plugins.liteecho"},"headers":[],"relativePath":"dev/api/plugins/liteecho.md","filePath":"zh/dev/api/plugins/liteecho.md","lastUpdated":null}'),a={name:"dev/api/plugins/liteecho.md"},l=t("",6),n=[l];function h(o,p,r,k,c,d){return s(),i("div",null,n)}const y=e(a,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/dev_api_plugins_plugin_loader_index.md.BKOtyJlM.js b/assets/dev_api_plugins_plugin_loader_index.md.BKOtyJlM.js
new file mode 100644
index 00000000..4a03e860
--- /dev/null
+++ b/assets/dev_api_plugins_plugin_loader_index.md.BKOtyJlM.js
@@ -0,0 +1,8 @@
+import{_ as i,c as s,o as a,a4 as l}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"dev/api/plugins/plugin_loader/index.md","filePath":"zh/dev/api/plugins/plugin_loader/index.md","lastUpdated":null}'),n={name:"dev/api/plugins/plugin_loader/index.md"},t=l(`
def default_plugins_loader():
+ """
+ 默认插件加载器,应在初始化时调用
+ """
+ for plugin in get_config('liteyuki.plugins', []):
+ load_plugin(plugin)
+ for plugin_dir in get_config('liteyuki.plugin_dirs', ['src/liteyuki_plugins']):
+ load_plugins(plugin_dir)
`,6),e=[t];function p(r,h,o,d,k,u){return a(),s("div",null,e)}const y=i(n,[["render",p]]);export{_ as __pageData,y as default};
diff --git a/assets/dev_api_plugins_plugin_loader_index.md.BKOtyJlM.lean.js b/assets/dev_api_plugins_plugin_loader_index.md.BKOtyJlM.lean.js
new file mode 100644
index 00000000..ceb14766
--- /dev/null
+++ b/assets/dev_api_plugins_plugin_loader_index.md.BKOtyJlM.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as a,a4 as l}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"dev/api/plugins/plugin_loader/index.md","filePath":"zh/dev/api/plugins/plugin_loader/index.md","lastUpdated":null}'),n={name:"dev/api/plugins/plugin_loader/index.md"},t=l("",6),e=[t];function p(r,h,o,d,k,u){return a(),s("div",null,e)}const y=i(n,[["render",p]]);export{_ as __pageData,y as default};
diff --git a/assets/dev_api_plugins_plugin_loader_plugin_loader.md.Bfz2lNbM.js b/assets/dev_api_plugins_plugin_loader_plugin_loader.md.Bfz2lNbM.js
new file mode 100644
index 00000000..5d1ee82f
--- /dev/null
+++ b/assets/dev_api_plugins_plugin_loader_plugin_loader.md.Bfz2lNbM.js
@@ -0,0 +1,8 @@
+import{_ as i,c as s,o as a,a4 as l}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"dev/api/plugins/plugin_loader/plugin_loader.md","filePath":"zh/dev/api/plugins/plugin_loader/plugin_loader.md","lastUpdated":null}'),n={name:"dev/api/plugins/plugin_loader/plugin_loader.md"},t=l(`
def default_plugins_loader():
+ """
+ 默认插件加载器,应在初始化时调用
+ """
+ for plugin in get_config('liteyuki.plugins', []):
+ load_plugin(plugin)
+ for plugin_dir in get_config('liteyuki.plugin_dirs', ['src/liteyuki_plugins']):
+ load_plugins(plugin_dir)
`,6),e=[t];function p(r,o,h,d,k,u){return a(),s("div",null,e)}const y=i(n,[["render",p]]);export{_ as __pageData,y as default};
diff --git a/assets/dev_api_plugins_plugin_loader_plugin_loader.md.Bfz2lNbM.lean.js b/assets/dev_api_plugins_plugin_loader_plugin_loader.md.Bfz2lNbM.lean.js
new file mode 100644
index 00000000..595ebc12
--- /dev/null
+++ b/assets/dev_api_plugins_plugin_loader_plugin_loader.md.Bfz2lNbM.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as a,a4 as l}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"dev/api/plugins/plugin_loader/plugin_loader.md","filePath":"zh/dev/api/plugins/plugin_loader/plugin_loader.md","lastUpdated":null}'),n={name:"dev/api/plugins/plugin_loader/plugin_loader.md"},t=l("",6),e=[t];function p(r,o,h,d,k,u){return a(),s("div",null,e)}const y=i(n,[["render",p]]);export{_ as __pageData,y as default};
diff --git a/assets/dev_api_utils.md.BfOyfADO.js b/assets/dev_api_utils.md.BfOyfADO.js
new file mode 100644
index 00000000..6dac9d07
--- /dev/null
+++ b/assets/dev_api_utils.md.BfOyfADO.js
@@ -0,0 +1,70 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.utils","description":"","frontmatter":{"title":"liteyuki.utils"},"headers":[],"relativePath":"dev/api/utils.md","filePath":"zh/dev/api/utils.md","lastUpdated":null}'),t={name:"dev/api/utils.md"},l=n(`
`,30),p=[l];function h(e,k,r,o,d,E){return a(),i("div",null,p)}const y=s(t,[["render",h]]);export{c as __pageData,y as default};
diff --git a/assets/dev_api_utils.md.BfOyfADO.lean.js b/assets/dev_api_utils.md.BfOyfADO.lean.js
new file mode 100644
index 00000000..05db92ed
--- /dev/null
+++ b/assets/dev_api_utils.md.BfOyfADO.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.utils","description":"","frontmatter":{"title":"liteyuki.utils"},"headers":[],"relativePath":"dev/api/utils.md","filePath":"zh/dev/api/utils.md","lastUpdated":null}'),t={name:"dev/api/utils.md"},l=n("",30),p=[l];function h(e,k,r,o,d,E){return a(),i("div",null,p)}const y=s(t,[["render",h]]);export{c as __pageData,y as default};
diff --git a/assets/dev_comm.md.BaLcrxQn.js b/assets/dev_comm.md.BaLcrxQn.js
new file mode 100644
index 00000000..845d9cff
--- /dev/null
+++ b/assets/dev_comm.md.BaLcrxQn.js
@@ -0,0 +1,43 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"进程通信","description":"","frontmatter":{"title":"进程通信","order":4},"headers":[],"relativePath":"dev/comm.md","filePath":"zh/dev/comm.md","lastUpdated":1725102337000}'),e={name:"dev/comm.md"},h=n(`
0000-00-00 00:00:00 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:00 [ℹ️信息] Active receive: I am liteyuki main process active
+0000-00-00 00:00:03 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:03 [ℹ️信息] Active receive: I am liteyuki main process active
+...
`,20),l=[h];function t(p,k,r,d,E,o){return a(),i("div",null,l)}const y=s(e,[["render",t]]);export{g as __pageData,y as default};
diff --git a/assets/dev_comm.md.BaLcrxQn.lean.js b/assets/dev_comm.md.BaLcrxQn.lean.js
new file mode 100644
index 00000000..106f26d4
--- /dev/null
+++ b/assets/dev_comm.md.BaLcrxQn.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"进程通信","description":"","frontmatter":{"title":"进程通信","order":4},"headers":[],"relativePath":"dev/comm.md","filePath":"zh/dev/comm.md","lastUpdated":1725102337000}'),e={name:"dev/comm.md"},h=n("",20),l=[h];function t(p,k,r,d,E,o){return a(),i("div",null,l)}const y=s(e,[["render",t]]);export{g as __pageData,y as default};
diff --git a/assets/dev_lyfunc.md.DGSAE6Uz.js b/assets/dev_lyfunc.md.DGSAE6Uz.js
new file mode 100644
index 00000000..9359c45a
--- /dev/null
+++ b/assets/dev_lyfunc.md.DGSAE6Uz.js
@@ -0,0 +1,20 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const F=JSON.parse('{"title":"轻雪函数","description":"","frontmatter":{"title":"轻雪函数","order":2},"headers":[],"relativePath":"dev/lyfunc.md","filePath":"zh/dev/lyfunc.md","lastUpdated":1725101868000}'),t={name:"dev/lyfunc.md"},l=n(`
`,19),e=[l];function h(p,k,d,r,o,c){return a(),i("div",null,e)}const y=s(t,[["render",h]]);export{F as __pageData,y as default};
diff --git a/assets/dev_lyfunc.md.DGSAE6Uz.lean.js b/assets/dev_lyfunc.md.DGSAE6Uz.lean.js
new file mode 100644
index 00000000..b82a4077
--- /dev/null
+++ b/assets/dev_lyfunc.md.DGSAE6Uz.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const F=JSON.parse('{"title":"轻雪函数","description":"","frontmatter":{"title":"轻雪函数","order":2},"headers":[],"relativePath":"dev/lyfunc.md","filePath":"zh/dev/lyfunc.md","lastUpdated":1725101868000}'),t={name:"dev/lyfunc.md"},l=n("",19),e=[l];function h(p,k,d,r,o,c){return a(),i("div",null,e)}const y=s(t,[["render",h]]);export{F as __pageData,y as default};
diff --git a/assets/dev_plugin.md.7WyHaDzB.js b/assets/dev_plugin.md.7WyHaDzB.js
new file mode 100644
index 00000000..8413211a
--- /dev/null
+++ b/assets/dev_plugin.md.7WyHaDzB.js
@@ -0,0 +1,32 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"轻雪插件开发","description":"","frontmatter":{"title":"轻雪插件开发","order":3},"headers":[],"relativePath":"dev/plugin.md","filePath":"zh/dev/plugin.md","lastUpdated":1725101868000}'),t={name:"dev/plugin.md"},h=n(`
`,19),l=[h];function p(e,k,d,r,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default};
diff --git a/assets/dev_plugin.md.7WyHaDzB.lean.js b/assets/dev_plugin.md.7WyHaDzB.lean.js
new file mode 100644
index 00000000..7247ade3
--- /dev/null
+++ b/assets/dev_plugin.md.7WyHaDzB.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"轻雪插件开发","description":"","frontmatter":{"title":"轻雪插件开发","order":3},"headers":[],"relativePath":"dev/plugin.md","filePath":"zh/dev/plugin.md","lastUpdated":1725101868000}'),t={name:"dev/plugin.md"},h=n("",19),l=[h];function p(e,k,d,r,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default};
diff --git a/assets/dev_resource.md.DU3Q8OBq.js b/assets/dev_resource.md.DU3Q8OBq.js
new file mode 100644
index 00000000..5956b2ca
--- /dev/null
+++ b/assets/dev_resource.md.DU3Q8OBq.js
@@ -0,0 +1,13 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"资源包开发","description":"","frontmatter":{"title":"资源包开发","order":1},"headers":[],"relativePath":"dev/resource.md","filePath":"zh/dev/resource.md","lastUpdated":1725102337000}'),l={name:"dev/resource.md"},t=e(`
`,12),n=[t];function p(c,h,d,o,r,k){return i(),a("div",null,n)}const y=s(l,[["render",p]]);export{m as __pageData,y as default};
diff --git a/assets/dev_resource.md.DU3Q8OBq.lean.js b/assets/dev_resource.md.DU3Q8OBq.lean.js
new file mode 100644
index 00000000..5733c363
--- /dev/null
+++ b/assets/dev_resource.md.DU3Q8OBq.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"资源包开发","description":"","frontmatter":{"title":"资源包开发","order":1},"headers":[],"relativePath":"dev/resource.md","filePath":"zh/dev/resource.md","lastUpdated":1725102337000}'),l={name:"dev/resource.md"},t=e("",12),n=[t];function p(c,h,d,o,r,k){return i(),a("div",null,n)}const y=s(l,[["render",p]]);export{m as __pageData,y as default};
diff --git a/assets/en_deploy_config.md.CB-Epa0p.js b/assets/en_deploy_config.md.CB-Epa0p.js
new file mode 100644
index 00000000..76c01eed
--- /dev/null
+++ b/assets/en_deploy_config.md.CB-Epa0p.js
@@ -0,0 +1,29 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"Configurations","description":"","frontmatter":{"title":"Configurations","order":2},"headers":[],"relativePath":"en/deploy/config.md","filePath":"en/deploy/config.md","lastUpdated":1725101868000}'),e={name:"en/deploy/config.md"},n=t(`
LiteyukiBot supports yaml, json, and toml as configuration files, depending on your personal preference.
When you first run LiteyukiBot, it will generate config.yml and the config directory. You can modify the configuration items and restart LiteyukiBot. In most cases, you only need to modify the superusers and nickname fields.
When starting, LiteyukiBot will load all configuration files in the project directory config.yml/yaml/json/toml and the config directory. You can create multiple configuration files in the config directory, and LiteyukiBot will automatically merge these configuration files.
# NoneBot configuration
+nonebot:
+ command_start: [ "/", "" ] # Command prefix, if there is no "" empty command header, please enable alconna_use_command_start to ensure alconna parsing is normal
+ host: 127.0.0.1 # Listening address, default is local, if you want to receive external requests, please fill in
+ port: 20216 # Binding port
+ nickname: [ "liteyuki" ] # Bot nickname list
+ superusers: [ "1919810" ] # Superuser list
+liteyuki:
+ log_level: "INFO" # Log level
+ log_icon: true # Whether to display the log level icon (some console fonts are not available)
+ auto_report: true # Whether to automatically report problems to Liteyuki server
+ auto_update: true # Whether to automatically update Liteyuki, check for updates at 4 am every day
+ plugins: [ ] # Liteyuki plugin list
+ plugin_dirs: [ ] # Liteyuki plugin directory list
The following is the default value. If you need to customize it, please add it manually
yaml
# Advanced configuration
+nonebot:
+ onebot_access_token: "" # OneBot access token
+ default_language: "zh-CN" # Default language
+ alconna_auto_completion: false # alconna auto completion
+ safe_mode: false # Safe mode, if true, the bot will not load any plugins
+ # other nonebot configurations
+ custom_config_1: "custom_value1"
+ custom_config_2: "custom_value2"
+
+# development configuration
+liteyuki:
+ allow_update: true # Whether to allow Liteyuki to update
+ debug: false # Debug mode, if true, Liteyuki will output more detailed logs
+ dev_mode: false # development mode, if true, Liteyuki will load all plugins in the development directory
+...
yaml
Example: Configuration of OneBot implementation side connected to NoneBot
In production environments, it is recommended to use reverse WebSocket The fields provided by different implementation sides may be different, but basically the same. Here is a reference value
Fields
Value
Description
protocol
Reverse WebSocket
Liteyuki-NoneBot as server
address
ws://127.0.0.1:20216/onebot/v11/ws
The address depends on the configuration file, the default is \`
AccessToken
""
If you have configured AccessToken for Liteyuki, please fill in the same value here
To use other communication methods, please visit OneBot Adapter for detailed information
Liteyuki is not limited to the OneBot adapter and NoneBot2. You can use any adapter supported by NoneBot2 or use the Liteyuki message delivery plugin
`,16),l=[n];function o(h,p,k,r,d,c){return a(),i("div",null,l)}const y=s(e,[["render",o]]);export{u as __pageData,y as default};
diff --git a/assets/en_deploy_config.md.CB-Epa0p.lean.js b/assets/en_deploy_config.md.CB-Epa0p.lean.js
new file mode 100644
index 00000000..9aabda2e
--- /dev/null
+++ b/assets/en_deploy_config.md.CB-Epa0p.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"Configurations","description":"","frontmatter":{"title":"Configurations","order":2},"headers":[],"relativePath":"en/deploy/config.md","filePath":"en/deploy/config.md","lastUpdated":1725101868000}'),e={name:"en/deploy/config.md"},n=t("",16),l=[n];function o(h,p,k,r,d,c){return a(),i("div",null,l)}const y=s(e,[["render",o]]);export{u as __pageData,y as default};
diff --git a/assets/en_deploy_fandq.md.lp1l61Jw.js b/assets/en_deploy_fandq.md.lp1l61Jw.js
new file mode 100644
index 00000000..57a031fa
--- /dev/null
+++ b/assets/en_deploy_fandq.md.lp1l61Jw.js
@@ -0,0 +1 @@
+import{_ as e,c as o,o as t,a4 as n}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"title":"FAQ","order":3},"headers":[],"relativePath":"en/deploy/fandq.md","filePath":"en/deploy/fandq.md","lastUpdated":1725101868000}'),a={name:"en/deploy/fandq.md"},r=n('
There are too many python interpreters on my computer, how do I know which one to use?
You can specify which python interpreter to use by using the full path to the python executable, for example, /path/to/python main.py
Use virtual environments to avoid conflicts between different python interpreters
Why does the bot not respond after I start it?
Please check the configuration file command_start or superusers, make sure you have permission to use the command and send it correctly
Make sure the command header does not conflict with nickname{}, for example, a command is help, but the Bot nickname has a help, then it will be parsed as a nickname instead of a command
Please install Git correctly and deploy Liteyuki using cloning instead of direct download
How to log in to chat platforms such as Telegram?
If you have this question, it means you don't know much about this project. This project does not implement the login function, only the message processing and response. The login function is provided by the implementation side (protocol side). The implementation side itself does not handle response logic. It processes and reports messages to Liteyuki according to the OneBot standard. You need to use an implementation side that complies with the OneBot standard to connect to Liteyuki and report messages to Liteyuki. Some recommended implementation sides have been listed below
Playwright installation failed
Enter playwright install to install the browser
Some plugins report errors after installation and cannot be started
Please refer to the plugin documentation first, confirm that the necessary configuration items of the plugin are intact, and if the problem persists, please contact the plugin author or start Liteyuki in safe mode safe_mode: true. In safe mode, you can use npm uninstall to uninstall problematic plugins
',12),i=[r];function l(s,d,c,h,p,u){return t(),o("div",null,i)}const g=e(a,[["render",l]]);export{f as __pageData,g as default};
diff --git a/assets/en_deploy_fandq.md.lp1l61Jw.lean.js b/assets/en_deploy_fandq.md.lp1l61Jw.lean.js
new file mode 100644
index 00000000..42f2b007
--- /dev/null
+++ b/assets/en_deploy_fandq.md.lp1l61Jw.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as o,o as t,a4 as n}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"title":"FAQ","order":3},"headers":[],"relativePath":"en/deploy/fandq.md","filePath":"en/deploy/fandq.md","lastUpdated":1725101868000}'),a={name:"en/deploy/fandq.md"},r=n("",12),i=[r];function l(s,d,c,h,p,u){return t(),o("div",null,i)}const g=e(a,[["render",l]]);export{f as __pageData,g as default};
diff --git a/assets/en_deploy_install.md.BnEnd6Nu.js b/assets/en_deploy_install.md.BnEnd6Nu.js
new file mode 100644
index 00000000..67e29946
--- /dev/null
+++ b/assets/en_deploy_install.md.BnEnd6Nu.js
@@ -0,0 +1,8 @@
+import{_ as e,c as t,o as i,a4 as a}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"Install","description":"","frontmatter":{"title":"Install","order":1},"headers":[],"relativePath":"en/deploy/install.md","filePath":"en/deploy/install.md","lastUpdated":1725102337000}'),s={name:"en/deploy/install.md"},o=a(`
It is recommended to use a virtual environment to run Liteyuki to avoid dependency conflicts. You can use python -m venv .venv to create a virtual environment, and then use .venv\\Scripts\\activate to activate the virtual environment (use source .venv/bin/activate to activate on Linux).
Run container docker run -p 20216:20216 -v $(pwd):/liteyukibot -v $(pwd)/.cache:/root/.cache liteyukibot
TIP
If you are using Windows, please use the absolute project directory /path/to/LiteyukiBot instead of $(pwd) If you have modified the port number, please replace 20216:20216 with your port number
Windows system version minimum Windows10+/Windows Server 2019+
Linux system requires Python3.10+, recommended Ubuntu 20.04+
CPU: at least 1vCPU
Memory: Bot without other plugins will occupy 300~500MB, including chromium and node processes, other plugins depend on specific plugins, recommended 1GB or more
Disk: at least 1GB of space
WARNING
If there are multiple environments on the device, please use path/to/python -m pip install -r requirements.txt to install dependencies, path/to/python is the path to your Python executable
WARNING
Liteyuki's update function depends on Git. If you do not have Git installed and run the source code directly, you will not be able to use the update function
`,15),n=[o];function l(r,c,d,h,p,u){return i(),t("div",null,n)}const y=e(s,[["render",l]]);export{m as __pageData,y as default};
diff --git a/assets/en_deploy_install.md.BnEnd6Nu.lean.js b/assets/en_deploy_install.md.BnEnd6Nu.lean.js
new file mode 100644
index 00000000..f412935a
--- /dev/null
+++ b/assets/en_deploy_install.md.BnEnd6Nu.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as i,a4 as a}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"Install","description":"","frontmatter":{"title":"Install","order":1},"headers":[],"relativePath":"en/deploy/install.md","filePath":"en/deploy/install.md","lastUpdated":1725102337000}'),s={name:"en/deploy/install.md"},o=a("",15),n=[o];function l(r,c,d,h,p,u){return i(),t("div",null,n)}const y=e(s,[["render",l]]);export{m as __pageData,y as default};
diff --git a/assets/en_dev_api_api.md.D-5_3fUd.js b/assets/en_dev_api_api.md.D-5_3fUd.js
new file mode 100644
index 00000000..13d486e0
--- /dev/null
+++ b/assets/en_dev_api_api.md.D-5_3fUd.js
@@ -0,0 +1 @@
+import{_ as e,c as a,o as t,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"en/dev/api/api.md","filePath":"en/dev/api/api.md","lastUpdated":null}'),o={name:"en/dev/api/api.md"},r=i('
',3),n=[r];function l(s,_,c,d,p,u){return t(),a("div",null,n)}const f=e(o,[["render",l]]);export{v as __pageData,f as default};
diff --git a/assets/en_dev_api_api.md.D-5_3fUd.lean.js b/assets/en_dev_api_api.md.D-5_3fUd.lean.js
new file mode 100644
index 00000000..9a013d86
--- /dev/null
+++ b/assets/en_dev_api_api.md.D-5_3fUd.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as a,o as t,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"en/dev/api/api.md","filePath":"en/dev/api/api.md","lastUpdated":null}'),o={name:"en/dev/api/api.md"},r=i("",3),n=[r];function l(s,_,c,d,p,u){return t(),a("div",null,n)}const f=e(o,[["render",l]]);export{v as __pageData,f as default};
diff --git a/assets/en_dev_api_bot_bot.md.D0tmeTXy.js b/assets/en_dev_api_bot_bot.md.D0tmeTXy.js
new file mode 100644
index 00000000..1a468851
--- /dev/null
+++ b/assets/en_dev_api_bot_bot.md.D0tmeTXy.js
@@ -0,0 +1,211 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"en/dev/api/bot/bot.md","filePath":"en/dev/api/bot/bot.md","lastUpdated":null}'),t={name:"en/dev/api/bot/bot.md"},e=n(`
`,85),l=[e];function h(p,k,r,d,o,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/en_dev_api_bot_bot.md.D0tmeTXy.lean.js b/assets/en_dev_api_bot_bot.md.D0tmeTXy.lean.js
new file mode 100644
index 00000000..582bfaa1
--- /dev/null
+++ b/assets/en_dev_api_bot_bot.md.D0tmeTXy.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"en/dev/api/bot/bot.md","filePath":"en/dev/api/bot/bot.md","lastUpdated":null}'),t={name:"en/dev/api/bot/bot.md"},e=n("",85),l=[e];function h(p,k,r,d,o,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/en_dev_api_bot_index.md.LrWFTh2D.js b/assets/en_dev_api_bot_index.md.LrWFTh2D.js
new file mode 100644
index 00000000..27bf00de
--- /dev/null
+++ b/assets/en_dev_api_bot_index.md.LrWFTh2D.js
@@ -0,0 +1,211 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"en/dev/api/bot/index.md","filePath":"en/dev/api/bot/index.md","lastUpdated":null}'),t={name:"en/dev/api/bot/index.md"},e=n(`
`,85),l=[e];function h(p,k,r,d,o,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/en_dev_api_bot_index.md.LrWFTh2D.lean.js b/assets/en_dev_api_bot_index.md.LrWFTh2D.lean.js
new file mode 100644
index 00000000..59d1aab4
--- /dev/null
+++ b/assets/en_dev_api_bot_index.md.LrWFTh2D.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.bot","description":"","frontmatter":{"title":"liteyuki.bot","collapsed":true},"headers":[],"relativePath":"en/dev/api/bot/index.md","filePath":"en/dev/api/bot/index.md","lastUpdated":null}'),t={name:"en/dev/api/bot/index.md"},e=n("",85),l=[e];function h(p,k,r,d,o,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/assets/en_dev_api_bot_lifespan.md.EgH0pEuD.js b/assets/en_dev_api_bot_lifespan.md.EgH0pEuD.js
new file mode 100644
index 00000000..cd82bb55
--- /dev/null
+++ b/assets/en_dev_api_bot_lifespan.md.EgH0pEuD.js
@@ -0,0 +1,114 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.bot.lifespan","description":"","frontmatter":{"title":"liteyuki.bot.lifespan"},"headers":[],"relativePath":"en/dev/api/bot/lifespan.md","filePath":"en/dev/api/bot/lifespan.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/bot/lifespan.md"},e=n(`
`,67),l=[e];function p(h,k,r,o,d,g){return a(),i("div",null,l)}const E=s(t,[["render",p]]);export{u as __pageData,E as default};
diff --git a/assets/en_dev_api_bot_lifespan.md.EgH0pEuD.lean.js b/assets/en_dev_api_bot_lifespan.md.EgH0pEuD.lean.js
new file mode 100644
index 00000000..188301be
--- /dev/null
+++ b/assets/en_dev_api_bot_lifespan.md.EgH0pEuD.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.bot.lifespan","description":"","frontmatter":{"title":"liteyuki.bot.lifespan"},"headers":[],"relativePath":"en/dev/api/bot/lifespan.md","filePath":"en/dev/api/bot/lifespan.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/bot/lifespan.md"},e=n("",67),l=[e];function p(h,k,r,o,d,g){return a(),i("div",null,l)}const E=s(t,[["render",p]]);export{u as __pageData,E as default};
diff --git a/assets/en_dev_api_comm_channel.md.BLjPtV1B.js b/assets/en_dev_api_comm_channel.md.BLjPtV1B.js
new file mode 100644
index 00000000..4354d4b0
--- /dev/null
+++ b/assets/en_dev_api_comm_channel.md.BLjPtV1B.js
@@ -0,0 +1,196 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.channel","description":"","frontmatter":{"title":"liteyuki.comm.channel"},"headers":[],"relativePath":"en/dev/api/comm/channel.md","filePath":"en/dev/api/comm/channel.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/comm/channel.md"},l=n(`
def send(self, data: T):
+ """
+ 发送数据,发送函数为同步函数,没有异步的必要
+ Args:
+ data: 数据
+ """
+ if self.type_check:
+ _type = self._get_generic_type()
+ if _type is not None and (not self._validate_structure(data, _type)):
+ raise TypeError(f'Data must be an instance of {_type}, {type(data)} found')
+ if self._closed:
+ raise RuntimeError('Cannot send to a closed channel_')
+ self.conn_send.send(data)
`,78),h=[l];function e(k,p,r,d,E,g){return a(),i("div",null,h)}const o=s(t,[["render",e]]);export{y as __pageData,o as default};
diff --git a/assets/en_dev_api_comm_channel.md.BLjPtV1B.lean.js b/assets/en_dev_api_comm_channel.md.BLjPtV1B.lean.js
new file mode 100644
index 00000000..90218063
--- /dev/null
+++ b/assets/en_dev_api_comm_channel.md.BLjPtV1B.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.channel","description":"","frontmatter":{"title":"liteyuki.comm.channel"},"headers":[],"relativePath":"en/dev/api/comm/channel.md","filePath":"en/dev/api/comm/channel.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/comm/channel.md"},l=n("",78),h=[l];function e(k,p,r,d,E,g){return a(),i("div",null,h)}const o=s(t,[["render",e]]);export{y as __pageData,o as default};
diff --git a/assets/en_dev_api_comm_comm.md.nImwmKaA.js b/assets/en_dev_api_comm_comm.md.nImwmKaA.js
new file mode 100644
index 00000000..2a250ce4
--- /dev/null
+++ b/assets/en_dev_api_comm_comm.md.nImwmKaA.js
@@ -0,0 +1 @@
+import{_ as o,c as a,o as c,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"en/dev/api/comm/comm.md","filePath":"en/dev/api/comm/comm.md","lastUpdated":null}'),m={name:"en/dev/api/comm/comm.md"},n=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),i=e("p",null,[e("strong",null,"Description"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),s=[n,i];function l(r,d,_,p,u,h){return c(),a("div",null,s)}const v=o(m,[["render",l]]);export{k as __pageData,v as default};
diff --git a/assets/en_dev_api_comm_comm.md.nImwmKaA.lean.js b/assets/en_dev_api_comm_comm.md.nImwmKaA.lean.js
new file mode 100644
index 00000000..2a250ce4
--- /dev/null
+++ b/assets/en_dev_api_comm_comm.md.nImwmKaA.lean.js
@@ -0,0 +1 @@
+import{_ as o,c as a,o as c,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"en/dev/api/comm/comm.md","filePath":"en/dev/api/comm/comm.md","lastUpdated":null}'),m={name:"en/dev/api/comm/comm.md"},n=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),i=e("p",null,[e("strong",null,"Description"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),s=[n,i];function l(r,d,_,p,u,h){return c(),a("div",null,s)}const v=o(m,[["render",l]]);export{k as __pageData,v as default};
diff --git a/assets/en_dev_api_comm_event.md.B8tSNpPu.js b/assets/en_dev_api_comm_event.md.B8tSNpPu.js
new file mode 100644
index 00000000..4676b31c
--- /dev/null
+++ b/assets/en_dev_api_comm_event.md.B8tSNpPu.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as i}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.event","description":"","frontmatter":{"title":"liteyuki.comm.event"},"headers":[],"relativePath":"en/dev/api/comm/event.md","filePath":"en/dev/api/comm/event.md","lastUpdated":1725101868000}'),s={name:"en/dev/api/comm/event.md"},n=i('
',6),l=[n];function o(r,h,d,p,k,c){return a(),t("div",null,l)}const _=e(s,[["render",o]]);export{y as __pageData,_ as default};
diff --git a/assets/en_dev_api_comm_event.md.B8tSNpPu.lean.js b/assets/en_dev_api_comm_event.md.B8tSNpPu.lean.js
new file mode 100644
index 00000000..1d958823
--- /dev/null
+++ b/assets/en_dev_api_comm_event.md.B8tSNpPu.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as i}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.event","description":"","frontmatter":{"title":"liteyuki.comm.event"},"headers":[],"relativePath":"en/dev/api/comm/event.md","filePath":"en/dev/api/comm/event.md","lastUpdated":1725101868000}'),s={name:"en/dev/api/comm/event.md"},n=i("",6),l=[n];function o(r,h,d,p,k,c){return a(),t("div",null,l)}const _=e(s,[["render",o]]);export{y as __pageData,_ as default};
diff --git a/assets/en_dev_api_comm_index.md.DXB5jsIP.js b/assets/en_dev_api_comm_index.md.DXB5jsIP.js
new file mode 100644
index 00000000..0cedc518
--- /dev/null
+++ b/assets/en_dev_api_comm_index.md.DXB5jsIP.js
@@ -0,0 +1 @@
+import{_ as a,c as o,o as n,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"en/dev/api/comm/index.md","filePath":"en/dev/api/comm/index.md","lastUpdated":null}'),i={name:"en/dev/api/comm/index.md"},c=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),s=e("p",null,[e("strong",null,"Description"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),l=[c,s];function r(d,m,_,p,u,h){return n(),o("div",null,l)}const x=a(i,[["render",r]]);export{k as __pageData,x as default};
diff --git a/assets/en_dev_api_comm_index.md.DXB5jsIP.lean.js b/assets/en_dev_api_comm_index.md.DXB5jsIP.lean.js
new file mode 100644
index 00000000..0cedc518
--- /dev/null
+++ b/assets/en_dev_api_comm_index.md.DXB5jsIP.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as o,o as n,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const k=JSON.parse('{"title":"liteyuki.comm","description":"","frontmatter":{"title":"liteyuki.comm","collapsed":true},"headers":[],"relativePath":"en/dev/api/comm/index.md","filePath":"en/dev/api/comm/index.md","lastUpdated":null}'),i={name:"en/dev/api/comm/index.md"},c=e("h1",{id:"liteyuki-comm",tabindex:"-1"},[t("liteyuki.comm "),e("a",{class:"header-anchor",href:"#liteyuki-comm","aria-label":'Permalink to "liteyuki.comm"'},"")],-1),s=e("p",null,[e("strong",null,"Description"),t(": 该模块用于轻雪主进程和Nonebot子进程之间的通信 依赖关系 event -> _ storage -> channel_ rpc -> channel_, storage")],-1),l=[c,s];function r(d,m,_,p,u,h){return n(),o("div",null,l)}const x=a(i,[["render",r]]);export{k as __pageData,x as default};
diff --git a/assets/en_dev_api_comm_rpc.md.Db5NdJbe.js b/assets/en_dev_api_comm_rpc.md.Db5NdJbe.js
new file mode 100644
index 00000000..206b511e
--- /dev/null
+++ b/assets/en_dev_api_comm_rpc.md.Db5NdJbe.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.comm.rpc","description":"","frontmatter":{"title":"liteyuki.comm.rpc"},"headers":[],"relativePath":"en/dev/api/comm/rpc.md","filePath":"en/dev/api/comm/rpc.md","lastUpdated":null}'),e={name:"en/dev/api/comm/rpc.md"},n=t('
',8),l=[n];function p(r,h,o,c,k,d){return a(),i("div",null,l)}const m=s(e,[["render",p]]);export{u as __pageData,m as default};
diff --git a/assets/en_dev_api_comm_rpc.md.Db5NdJbe.lean.js b/assets/en_dev_api_comm_rpc.md.Db5NdJbe.lean.js
new file mode 100644
index 00000000..cb032b57
--- /dev/null
+++ b/assets/en_dev_api_comm_rpc.md.Db5NdJbe.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"liteyuki.comm.rpc","description":"","frontmatter":{"title":"liteyuki.comm.rpc"},"headers":[],"relativePath":"en/dev/api/comm/rpc.md","filePath":"en/dev/api/comm/rpc.md","lastUpdated":null}'),e={name:"en/dev/api/comm/rpc.md"},n=t("",8),l=[n];function p(r,h,o,c,k,d){return a(),i("div",null,l)}const m=s(e,[["render",p]]);export{u as __pageData,m as default};
diff --git a/assets/en_dev_api_comm_socks_channel.md.kerI5Mmv.js b/assets/en_dev_api_comm_socks_channel.md.kerI5Mmv.js
new file mode 100644
index 00000000..21b1634c
--- /dev/null
+++ b/assets/en_dev_api_comm_socks_channel.md.kerI5Mmv.js
@@ -0,0 +1,26 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.comm.socks_channel","description":"","frontmatter":{"title":"liteyuki.comm.socks_channel"},"headers":[],"relativePath":"en/dev/api/comm/socks_channel.md","filePath":"en/dev/api/comm/socks_channel.md","lastUpdated":null}'),n={name:"en/dev/api/comm/socks_channel.md"},t=e(`
`,21),l=[t];function h(p,o,k,r,c,d){return i(),a("div",null,l)}const y=s(n,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_api_comm_socks_channel.md.kerI5Mmv.lean.js b/assets/en_dev_api_comm_socks_channel.md.kerI5Mmv.lean.js
new file mode 100644
index 00000000..c0f66f79
--- /dev/null
+++ b/assets/en_dev_api_comm_socks_channel.md.kerI5Mmv.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.comm.socks_channel","description":"","frontmatter":{"title":"liteyuki.comm.socks_channel"},"headers":[],"relativePath":"en/dev/api/comm/socks_channel.md","filePath":"en/dev/api/comm/socks_channel.md","lastUpdated":null}'),n={name:"en/dev/api/comm/socks_channel.md"},t=e("",21),l=[t];function h(p,o,k,r,c,d){return i(),a("div",null,l)}const y=s(n,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_api_comm_storage.md.CyNGUlpk.js b/assets/en_dev_api_comm_storage.md.CyNGUlpk.js
new file mode 100644
index 00000000..b42e0ade
--- /dev/null
+++ b/assets/en_dev_api_comm_storage.md.CyNGUlpk.js
@@ -0,0 +1,144 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.storage","description":"","frontmatter":{"title":"liteyuki.comm.storage"},"headers":[],"relativePath":"en/dev/api/comm/storage.md","filePath":"en/dev/api/comm/storage.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/comm/storage.md"},e=n(`
@classmethod
+def get_instance(cls):
+ if cls._instance is None:
+ with cls._lock:
+ if cls._instance is None:
+ cls._instance = KeyValueStore()
+ return cls._instance
`,69),l=[e];function h(k,p,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",h]]);export{y as __pageData,c as default};
diff --git a/assets/en_dev_api_comm_storage.md.CyNGUlpk.lean.js b/assets/en_dev_api_comm_storage.md.CyNGUlpk.lean.js
new file mode 100644
index 00000000..5dd4febd
--- /dev/null
+++ b/assets/en_dev_api_comm_storage.md.CyNGUlpk.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.comm.storage","description":"","frontmatter":{"title":"liteyuki.comm.storage"},"headers":[],"relativePath":"en/dev/api/comm/storage.md","filePath":"en/dev/api/comm/storage.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/comm/storage.md"},e=n("",69),l=[e];function h(k,p,r,d,E,o){return a(),i("div",null,l)}const c=s(t,[["render",h]]);export{y as __pageData,c as default};
diff --git a/assets/en_dev_api_config.md.paJM3SZQ.js b/assets/en_dev_api_config.md.paJM3SZQ.js
new file mode 100644
index 00000000..3ceea153
--- /dev/null
+++ b/assets/en_dev_api_config.md.paJM3SZQ.js
@@ -0,0 +1,77 @@
+import{_ as i,c as a,o as n,a4 as s,j as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.config","description":"","frontmatter":{"title":"liteyuki.config"},"headers":[],"relativePath":"en/dev/api/config.md","filePath":"en/dev/api/config.md","lastUpdated":1725101868000}'),l={name:"en/dev/api/config.md"},h=s('
`,22),e=[h,k,p];function r(d,o,g,E,y,F){return n(),a("div",null,e)}const u=i(l,[["render",r]]);export{f as __pageData,u as default};
diff --git a/assets/en_dev_api_config.md.paJM3SZQ.lean.js b/assets/en_dev_api_config.md.paJM3SZQ.lean.js
new file mode 100644
index 00000000..0848354b
--- /dev/null
+++ b/assets/en_dev_api_config.md.paJM3SZQ.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as a,o as n,a4 as s,j as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.config","description":"","frontmatter":{"title":"liteyuki.config"},"headers":[],"relativePath":"en/dev/api/config.md","filePath":"en/dev/api/config.md","lastUpdated":1725101868000}'),l={name:"en/dev/api/config.md"},h=s("",4),k=t("p",{"a.b.c:":"",1:""},"{a:{b:{c:1}}} ->",-1),p=s("",22),e=[h,k,p];function r(d,o,g,E,y,F){return n(),a("div",null,e)}const u=i(l,[["render",r]]);export{f as __pageData,u as default};
diff --git a/assets/en_dev_api_core_core.md.DspKdKLc.js b/assets/en_dev_api_core_core.md.DspKdKLc.js
new file mode 100644
index 00000000..3e686739
--- /dev/null
+++ b/assets/en_dev_api_core_core.md.DspKdKLc.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o,j as e,a as r}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"en/dev/api/core/core.md","filePath":"en/dev/api/core/core.md","lastUpdated":null}'),c={name:"en/dev/api/core/core.md"},i=e("h1",{id:"liteyuki-core",tabindex:"-1"},[r("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),s=[i];function l(n,d,p,_,u,h){return o(),a("div",null,s)}const k=t(c,[["render",l]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_core_core.md.DspKdKLc.lean.js b/assets/en_dev_api_core_core.md.DspKdKLc.lean.js
new file mode 100644
index 00000000..3e686739
--- /dev/null
+++ b/assets/en_dev_api_core_core.md.DspKdKLc.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o,j as e,a as r}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"en/dev/api/core/core.md","filePath":"en/dev/api/core/core.md","lastUpdated":null}'),c={name:"en/dev/api/core/core.md"},i=e("h1",{id:"liteyuki-core",tabindex:"-1"},[r("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),s=[i];function l(n,d,p,_,u,h){return o(),a("div",null,s)}const k=t(c,[["render",l]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_core_index.md.Cu0gmuqG.js b/assets/en_dev_api_core_index.md.Cu0gmuqG.js
new file mode 100644
index 00000000..b2698a5c
--- /dev/null
+++ b/assets/en_dev_api_core_index.md.Cu0gmuqG.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o as i,j as e,a as o}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"en/dev/api/core/index.md","filePath":"en/dev/api/core/index.md","lastUpdated":null}'),r={name:"en/dev/api/core/index.md"},c=e("h1",{id:"liteyuki-core",tabindex:"-1"},[o("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),n=[c];function d(s,l,p,_,u,h){return i(),a("div",null,n)}const k=t(r,[["render",d]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_core_index.md.Cu0gmuqG.lean.js b/assets/en_dev_api_core_index.md.Cu0gmuqG.lean.js
new file mode 100644
index 00000000..b2698a5c
--- /dev/null
+++ b/assets/en_dev_api_core_index.md.Cu0gmuqG.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o as i,j as e,a as o}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.core","description":"","frontmatter":{"title":"liteyuki.core","collapsed":true},"headers":[],"relativePath":"en/dev/api/core/index.md","filePath":"en/dev/api/core/index.md","lastUpdated":null}'),r={name:"en/dev/api/core/index.md"},c=e("h1",{id:"liteyuki-core",tabindex:"-1"},[o("liteyuki.core "),e("a",{class:"header-anchor",href:"#liteyuki-core","aria-label":'Permalink to "liteyuki.core"'},"")],-1),n=[c];function d(s,l,p,_,u,h){return i(),a("div",null,n)}const k=t(r,[["render",d]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_core_manager.md.Bs82V5ER.js b/assets/en_dev_api_core_manager.md.Bs82V5ER.js
new file mode 100644
index 00000000..31a32f16
--- /dev/null
+++ b/assets/en_dev_api_core_manager.md.Bs82V5ER.js
@@ -0,0 +1,92 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.core.manager","description":"","frontmatter":{"title":"liteyuki.core.manager"},"headers":[],"relativePath":"en/dev/api/core/manager.md","filePath":"en/dev/api/core/manager.md","lastUpdated":1725101868000}'),e={name:"en/dev/api/core/manager.md"},t=n(`
async def start_all(self):
+ """
+ 对外启动方法,启动所有进程,创建asyncio task
+ """
+ [asyncio.create_task(chan.start_receive_loop()) for chan in get_channels().values()]
+ [asyncio.create_task(sm.start_receive_loop()) for sm in [shared_memory]]
+ [asyncio.create_task(self._run_process(name)) for name in self.targets]
def is_process_alive(self, name: str) -> bool:
+ """
+ 检查进程是否存活
+ Args:
+ name:
+
+ Returns:
+
+ """
+ if name not in self.targets:
+ logger.warning(f'Process {name} not found.')
+ return self.processes[name].is_alive()
`,36),l=[t];function h(k,p,r,d,E,g){return a(),i("div",null,l)}const c=s(e,[["render",h]]);export{o as __pageData,c as default};
diff --git a/assets/en_dev_api_core_manager.md.Bs82V5ER.lean.js b/assets/en_dev_api_core_manager.md.Bs82V5ER.lean.js
new file mode 100644
index 00000000..ef9e36c4
--- /dev/null
+++ b/assets/en_dev_api_core_manager.md.Bs82V5ER.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.core.manager","description":"","frontmatter":{"title":"liteyuki.core.manager"},"headers":[],"relativePath":"en/dev/api/core/manager.md","filePath":"en/dev/api/core/manager.md","lastUpdated":1725101868000}'),e={name:"en/dev/api/core/manager.md"},t=n("",36),l=[t];function h(k,p,r,d,E,g){return a(),i("div",null,l)}const c=s(e,[["render",h]]);export{o as __pageData,c as default};
diff --git a/assets/en_dev_api_dev_dev.md.C7bp0nFK.js b/assets/en_dev_api_dev_dev.md.C7bp0nFK.js
new file mode 100644
index 00000000..04e9f053
--- /dev/null
+++ b/assets/en_dev_api_dev_dev.md.C7bp0nFK.js
@@ -0,0 +1 @@
+import{_ as a,c as d,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"en/dev/api/dev/dev.md","filePath":"en/dev/api/dev/dev.md","lastUpdated":null}'),s={name:"en/dev/api/dev/dev.md"},n=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),o=e("p",null,[e("strong",null,"Description"),t(": 该模块用于存放一些开发工具")],-1),l=[n,o];function r(c,p,v,_,u,h){return i(),d("div",null,l)}const k=a(s,[["render",r]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_dev_dev.md.C7bp0nFK.lean.js b/assets/en_dev_api_dev_dev.md.C7bp0nFK.lean.js
new file mode 100644
index 00000000..04e9f053
--- /dev/null
+++ b/assets/en_dev_api_dev_dev.md.C7bp0nFK.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as d,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"en/dev/api/dev/dev.md","filePath":"en/dev/api/dev/dev.md","lastUpdated":null}'),s={name:"en/dev/api/dev/dev.md"},n=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),o=e("p",null,[e("strong",null,"Description"),t(": 该模块用于存放一些开发工具")],-1),l=[n,o];function r(c,p,v,_,u,h){return i(),d("div",null,l)}const k=a(s,[["render",r]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_dev_index.md.B_Clatcv.js b/assets/en_dev_api_dev_index.md.B_Clatcv.js
new file mode 100644
index 00000000..bbe1ae4a
--- /dev/null
+++ b/assets/en_dev_api_dev_index.md.B_Clatcv.js
@@ -0,0 +1 @@
+import{_ as a,c as i,o as d,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"en/dev/api/dev/index.md","filePath":"en/dev/api/dev/index.md","lastUpdated":null}'),n={name:"en/dev/api/dev/index.md"},s=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),o=e("p",null,[e("strong",null,"Description"),t(": 该模块用于存放一些开发工具")],-1),l=[s,o];function r(c,p,_,u,v,h){return d(),i("div",null,l)}const k=a(n,[["render",r]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_dev_index.md.B_Clatcv.lean.js b/assets/en_dev_api_dev_index.md.B_Clatcv.lean.js
new file mode 100644
index 00000000..bbe1ae4a
--- /dev/null
+++ b/assets/en_dev_api_dev_index.md.B_Clatcv.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as i,o as d,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"liteyuki.dev","description":"","frontmatter":{"title":"liteyuki.dev","collapsed":true},"headers":[],"relativePath":"en/dev/api/dev/index.md","filePath":"en/dev/api/dev/index.md","lastUpdated":null}'),n={name:"en/dev/api/dev/index.md"},s=e("h1",{id:"liteyuki-dev",tabindex:"-1"},[t("liteyuki.dev "),e("a",{class:"header-anchor",href:"#liteyuki-dev","aria-label":'Permalink to "liteyuki.dev"'},"")],-1),o=e("p",null,[e("strong",null,"Description"),t(": 该模块用于存放一些开发工具")],-1),l=[s,o];function r(c,p,_,u,v,h){return d(),i("div",null,l)}const k=a(n,[["render",r]]);export{f as __pageData,k as default};
diff --git a/assets/en_dev_api_dev_observer.md.DfB9VffK.js b/assets/en_dev_api_dev_observer.md.DfB9VffK.js
new file mode 100644
index 00000000..0bd0c411
--- /dev/null
+++ b/assets/en_dev_api_dev_observer.md.DfB9VffK.js
@@ -0,0 +1,44 @@
+import{_ as s,c as i,o as e,a4 as a}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.dev.observer","description":"","frontmatter":{"title":"liteyuki.dev.observer"},"headers":[],"relativePath":"en/dev/api/dev/observer.md","filePath":"en/dev/api/dev/observer.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/dev/observer.md"},t=a(`
`,27),l=[t];function h(p,r,k,d,o,c){return e(),i("div",null,l)}const y=s(n,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_api_dev_observer.md.DfB9VffK.lean.js b/assets/en_dev_api_dev_observer.md.DfB9VffK.lean.js
new file mode 100644
index 00000000..d67111ee
--- /dev/null
+++ b/assets/en_dev_api_dev_observer.md.DfB9VffK.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as e,a4 as a}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.dev.observer","description":"","frontmatter":{"title":"liteyuki.dev.observer"},"headers":[],"relativePath":"en/dev/api/dev/observer.md","filePath":"en/dev/api/dev/observer.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/dev/observer.md"},t=a("",27),l=[t];function h(p,r,k,d,o,c){return e(),i("div",null,l)}const y=s(n,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_api_dev_plugin.md.dVSn90qu.js b/assets/en_dev_api_dev_plugin.md.dVSn90qu.js
new file mode 100644
index 00000000..9f778026
--- /dev/null
+++ b/assets/en_dev_api_dev_plugin.md.dVSn90qu.js
@@ -0,0 +1,12 @@
+import{_ as i,c as s,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const E=JSON.parse('{"title":"liteyuki.dev.plugin","description":"","frontmatter":{"title":"liteyuki.dev.plugin"},"headers":[],"relativePath":"en/dev/api/dev/plugin.md","filePath":"en/dev/api/dev/plugin.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/dev/plugin.md"},e=t(`
`,8),l=[e];function p(h,k,r,o,d,u){return a(),s("div",null,l)}const c=i(n,[["render",p]]);export{E as __pageData,c as default};
diff --git a/assets/en_dev_api_dev_plugin.md.dVSn90qu.lean.js b/assets/en_dev_api_dev_plugin.md.dVSn90qu.lean.js
new file mode 100644
index 00000000..3363425d
--- /dev/null
+++ b/assets/en_dev_api_dev_plugin.md.dVSn90qu.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const E=JSON.parse('{"title":"liteyuki.dev.plugin","description":"","frontmatter":{"title":"liteyuki.dev.plugin"},"headers":[],"relativePath":"en/dev/api/dev/plugin.md","filePath":"en/dev/api/dev/plugin.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/dev/plugin.md"},e=t("",8),l=[e];function p(h,k,r,o,d,u){return a(),s("div",null,l)}const c=i(n,[["render",p]]);export{E as __pageData,c as default};
diff --git a/assets/en_dev_api_exception.md.DTnDyb4J.js b/assets/en_dev_api_exception.md.DTnDyb4J.js
new file mode 100644
index 00000000..e8855ad9
--- /dev/null
+++ b/assets/en_dev_api_exception.md.DTnDyb4J.js
@@ -0,0 +1 @@
+import{_ as i,c as a,o as n,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.exception","description":"","frontmatter":{"title":"liteyuki.exception"},"headers":[],"relativePath":"en/dev/api/exception.md","filePath":"en/dev/api/exception.md","lastUpdated":1725101868000}'),o={name:"en/dev/api/exception.md"},c=e("h1",{id:"liteyuki-exception",tabindex:"-1"},[t("liteyuki.exception "),e("a",{class:"header-anchor",href:"#liteyuki-exception","aria-label":'Permalink to "liteyuki.exception"'},"")],-1),s=e("p",null,[e("strong",null,"Description"),t(": exception模块包含了liteyuki运行中的所有错误")],-1),l=e("h3",{id:"class-liteyukiexception-baseexception",tabindex:"-1"},[e("em",null,[e("strong",null,"class")]),t(),e("code",null,"LiteyukiException(BaseException)"),t(),e("a",{class:"header-anchor",href:"#class-liteyukiexception-baseexception","aria-label":'Permalink to "***class*** `LiteyukiException(BaseException)`"'},"")],-1),p=[c,s,l];function r(d,x,u,_,h,k){return n(),a("div",null,p)}const f=i(o,[["render",r]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_exception.md.DTnDyb4J.lean.js b/assets/en_dev_api_exception.md.DTnDyb4J.lean.js
new file mode 100644
index 00000000..e8855ad9
--- /dev/null
+++ b/assets/en_dev_api_exception.md.DTnDyb4J.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as a,o as n,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.exception","description":"","frontmatter":{"title":"liteyuki.exception"},"headers":[],"relativePath":"en/dev/api/exception.md","filePath":"en/dev/api/exception.md","lastUpdated":1725101868000}'),o={name:"en/dev/api/exception.md"},c=e("h1",{id:"liteyuki-exception",tabindex:"-1"},[t("liteyuki.exception "),e("a",{class:"header-anchor",href:"#liteyuki-exception","aria-label":'Permalink to "liteyuki.exception"'},"")],-1),s=e("p",null,[e("strong",null,"Description"),t(": exception模块包含了liteyuki运行中的所有错误")],-1),l=e("h3",{id:"class-liteyukiexception-baseexception",tabindex:"-1"},[e("em",null,[e("strong",null,"class")]),t(),e("code",null,"LiteyukiException(BaseException)"),t(),e("a",{class:"header-anchor",href:"#class-liteyukiexception-baseexception","aria-label":'Permalink to "***class*** `LiteyukiException(BaseException)`"'},"")],-1),p=[c,s,l];function r(d,x,u,_,h,k){return n(),a("div",null,p)}const f=i(o,[["render",r]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_index.md.Da9OtAtQ.js b/assets/en_dev_api_index.md.Da9OtAtQ.js
new file mode 100644
index 00000000..725ad5dd
--- /dev/null
+++ b/assets/en_dev_api_index.md.Da9OtAtQ.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"en/dev/api/index.md","filePath":"en/dev/api/index.md","lastUpdated":null}'),o={name:"en/dev/api/index.md"},r=i('
',3),n=[r];function l(s,_,d,c,p,u){return a(),t("div",null,n)}const f=e(o,[["render",l]]);export{v as __pageData,f as default};
diff --git a/assets/en_dev_api_index.md.Da9OtAtQ.lean.js b/assets/en_dev_api_index.md.Da9OtAtQ.lean.js
new file mode 100644
index 00000000..99dfe05f
--- /dev/null
+++ b/assets/en_dev_api_index.md.Da9OtAtQ.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as i}from"./chunks/framework.C3o_UkTa.js";const v=JSON.parse('{"title":"liteyuki","description":"","frontmatter":{"title":"liteyuki","collapsed":true},"headers":[],"relativePath":"en/dev/api/index.md","filePath":"en/dev/api/index.md","lastUpdated":null}'),o={name:"en/dev/api/index.md"},r=i("",3),n=[r];function l(s,_,d,c,p,u){return a(),t("div",null,n)}const f=e(o,[["render",l]]);export{v as __pageData,f as default};
diff --git a/assets/en_dev_api_log.md.BD04gPQH.js b/assets/en_dev_api_log.md.BD04gPQH.js
new file mode 100644
index 00000000..783078bf
--- /dev/null
+++ b/assets/en_dev_api_log.md.BD04gPQH.js
@@ -0,0 +1,18 @@
+import{_ as s,c as i,o as a,a4 as h}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.log","description":"","frontmatter":{"title":"liteyuki.log"},"headers":[],"relativePath":"en/dev/api/log.md","filePath":"en/dev/api/log.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/log.md"},k=h(`
`,8),l=[k];function n(p,e,E,r,g,d){return a(),i("div",null,l)}const o=s(t,[["render",n]]);export{y as __pageData,o as default};
diff --git a/assets/en_dev_api_log.md.BD04gPQH.lean.js b/assets/en_dev_api_log.md.BD04gPQH.lean.js
new file mode 100644
index 00000000..bdda093e
--- /dev/null
+++ b/assets/en_dev_api_log.md.BD04gPQH.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as h}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.log","description":"","frontmatter":{"title":"liteyuki.log"},"headers":[],"relativePath":"en/dev/api/log.md","filePath":"en/dev/api/log.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/log.md"},k=h("",8),l=[k];function n(p,e,E,r,g,d){return a(),i("div",null,l)}const o=s(t,[["render",n]]);export{y as __pageData,o as default};
diff --git a/assets/en_dev_api_message_event.md.DkU7HnIc.js b/assets/en_dev_api_message_event.md.DkU7HnIc.js
new file mode 100644
index 00000000..bab7101d
--- /dev/null
+++ b/assets/en_dev_api_message_event.md.DkU7HnIc.js
@@ -0,0 +1,36 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.message.event","description":"","frontmatter":{"title":"liteyuki.message.event"},"headers":[],"relativePath":"en/dev/api/message/event.md","filePath":"en/dev/api/message/event.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/message/event.md"},t=e(`
`,12),h=[t];function l(k,p,r,d,E,g){return a(),i("div",null,h)}const F=s(n,[["render",l]]);export{o as __pageData,F as default};
diff --git a/assets/en_dev_api_message_event.md.DkU7HnIc.lean.js b/assets/en_dev_api_message_event.md.DkU7HnIc.lean.js
new file mode 100644
index 00000000..c887faad
--- /dev/null
+++ b/assets/en_dev_api_message_event.md.DkU7HnIc.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const o=JSON.parse('{"title":"liteyuki.message.event","description":"","frontmatter":{"title":"liteyuki.message.event"},"headers":[],"relativePath":"en/dev/api/message/event.md","filePath":"en/dev/api/message/event.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/message/event.md"},t=e("",12),h=[t];function l(k,p,r,d,E,g){return a(),i("div",null,h)}const F=s(n,[["render",l]]);export{o as __pageData,F as default};
diff --git a/assets/en_dev_api_message_index.md.DEGPA3Qg.js b/assets/en_dev_api_message_index.md.DEGPA3Qg.js
new file mode 100644
index 00000000..474679ba
--- /dev/null
+++ b/assets/en_dev_api_message_index.md.DEGPA3Qg.js
@@ -0,0 +1 @@
+import{_ as a,c as s,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message","description":"","frontmatter":{"title":"liteyuki.message","collapsed":true},"headers":[],"relativePath":"en/dev/api/message/index.md","filePath":"en/dev/api/message/index.md","lastUpdated":null}'),o={name:"en/dev/api/message/index.md"},n=e("h1",{id:"liteyuki-message",tabindex:"-1"},[t("liteyuki.message "),e("a",{class:"header-anchor",href:"#liteyuki-message","aria-label":'Permalink to "liteyuki.message"'},"")],-1),l=e("p",null,[e("strong",null,"Description"),t(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),r=e("p",null,[t("@Time : 2024/8/19 下午10:44 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),t(" @File : "),e("strong",null,"init"),t(".py.py @Software: PyCharm")],-1),d=[n,l,r];function m(c,p,u,_,h,k){return i(),s("div",null,d)}const f=a(o,[["render",m]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_message_index.md.DEGPA3Qg.lean.js b/assets/en_dev_api_message_index.md.DEGPA3Qg.lean.js
new file mode 100644
index 00000000..474679ba
--- /dev/null
+++ b/assets/en_dev_api_message_index.md.DEGPA3Qg.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as s,o as i,j as e,a as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message","description":"","frontmatter":{"title":"liteyuki.message","collapsed":true},"headers":[],"relativePath":"en/dev/api/message/index.md","filePath":"en/dev/api/message/index.md","lastUpdated":null}'),o={name:"en/dev/api/message/index.md"},n=e("h1",{id:"liteyuki-message",tabindex:"-1"},[t("liteyuki.message "),e("a",{class:"header-anchor",href:"#liteyuki-message","aria-label":'Permalink to "liteyuki.message"'},"")],-1),l=e("p",null,[e("strong",null,"Description"),t(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),r=e("p",null,[t("@Time : 2024/8/19 下午10:44 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),t(" @File : "),e("strong",null,"init"),t(".py.py @Software: PyCharm")],-1),d=[n,l,r];function m(c,p,u,_,h,k){return i(),s("div",null,d)}const f=a(o,[["render",m]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_message_matcher.md.fjcL64M7.js b/assets/en_dev_api_message_matcher.md.fjcL64M7.js
new file mode 100644
index 00000000..fcc29cc1
--- /dev/null
+++ b/assets/en_dev_api_message_matcher.md.fjcL64M7.js
@@ -0,0 +1,35 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.matcher","description":"","frontmatter":{"title":"liteyuki.message.matcher"},"headers":[],"relativePath":"en/dev/api/message/matcher.md","filePath":"en/dev/api/message/matcher.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/message/matcher.md"},t=e(`
`,18),l=[t];function h(p,k,r,o,d,c){return a(),i("div",null,l)}const E=s(n,[["render",h]]);export{y as __pageData,E as default};
diff --git a/assets/en_dev_api_message_matcher.md.fjcL64M7.lean.js b/assets/en_dev_api_message_matcher.md.fjcL64M7.lean.js
new file mode 100644
index 00000000..4b297d31
--- /dev/null
+++ b/assets/en_dev_api_message_matcher.md.fjcL64M7.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.matcher","description":"","frontmatter":{"title":"liteyuki.message.matcher"},"headers":[],"relativePath":"en/dev/api/message/matcher.md","filePath":"en/dev/api/message/matcher.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/message/matcher.md"},t=e("",18),l=[t];function h(p,k,r,o,d,c){return a(),i("div",null,l)}const E=s(n,[["render",h]]);export{y as __pageData,E as default};
diff --git a/assets/en_dev_api_message_message.md.D0iZgCWF.js b/assets/en_dev_api_message_message.md.D0iZgCWF.js
new file mode 100644
index 00000000..e489c195
--- /dev/null
+++ b/assets/en_dev_api_message_message.md.D0iZgCWF.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as i,j as e,a as s}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message","description":"","frontmatter":{"title":"liteyuki.message","collapsed":true},"headers":[],"relativePath":"en/dev/api/message/message.md","filePath":"en/dev/api/message/message.md","lastUpdated":null}'),o={name:"en/dev/api/message/message.md"},l=e("h1",{id:"liteyuki-message",tabindex:"-1"},[s("liteyuki.message "),e("a",{class:"header-anchor",href:"#liteyuki-message","aria-label":'Permalink to "liteyuki.message"'},"")],-1),r=e("p",null,[e("strong",null,"Description"),s(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),n=e("p",null,[s("@Time : 2024/8/19 下午10:44 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),s(" @File : "),e("strong",null,"init"),s(".py.py @Software: PyCharm")],-1),m=[l,r,n];function c(d,p,u,_,g,h){return i(),t("div",null,m)}const f=a(o,[["render",c]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_message_message.md.D0iZgCWF.lean.js b/assets/en_dev_api_message_message.md.D0iZgCWF.lean.js
new file mode 100644
index 00000000..e489c195
--- /dev/null
+++ b/assets/en_dev_api_message_message.md.D0iZgCWF.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as i,j as e,a as s}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message","description":"","frontmatter":{"title":"liteyuki.message","collapsed":true},"headers":[],"relativePath":"en/dev/api/message/message.md","filePath":"en/dev/api/message/message.md","lastUpdated":null}'),o={name:"en/dev/api/message/message.md"},l=e("h1",{id:"liteyuki-message",tabindex:"-1"},[s("liteyuki.message "),e("a",{class:"header-anchor",href:"#liteyuki-message","aria-label":'Permalink to "liteyuki.message"'},"")],-1),r=e("p",null,[e("strong",null,"Description"),s(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),n=e("p",null,[s("@Time : 2024/8/19 下午10:44 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),s(" @File : "),e("strong",null,"init"),s(".py.py @Software: PyCharm")],-1),m=[l,r,n];function c(d,p,u,_,g,h){return i(),t("div",null,m)}const f=a(o,[["render",c]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_message_on.md.Bpf1nKZ0.js b/assets/en_dev_api_message_on.md.Bpf1nKZ0.js
new file mode 100644
index 00000000..32e5e60c
--- /dev/null
+++ b/assets/en_dev_api_message_on.md.Bpf1nKZ0.js
@@ -0,0 +1,15 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.message.on","description":"","frontmatter":{"title":"liteyuki.message.on"},"headers":[],"relativePath":"en/dev/api/message/on.md","filePath":"en/dev/api/message/on.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/message/on.md"},n=e(`
def add_matcher(matcher: Matcher):
+ for i, m in enumerate(_matcher_list):
+ if m.priority < matcher.priority:
+ _matcher_list.insert(i, matcher)
+ break
+ else:
+ _matcher_list.append(matcher)
`,9),l=[n];function h(r,k,p,o,d,y){return a(),i("div",null,l)}const E=s(t,[["render",h]]);export{g as __pageData,E as default};
diff --git a/assets/en_dev_api_message_on.md.Bpf1nKZ0.lean.js b/assets/en_dev_api_message_on.md.Bpf1nKZ0.lean.js
new file mode 100644
index 00000000..515fe3aa
--- /dev/null
+++ b/assets/en_dev_api_message_on.md.Bpf1nKZ0.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as e}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.message.on","description":"","frontmatter":{"title":"liteyuki.message.on"},"headers":[],"relativePath":"en/dev/api/message/on.md","filePath":"en/dev/api/message/on.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/message/on.md"},n=e("",9),l=[n];function h(r,k,p,o,d,y){return a(),i("div",null,l)}const E=s(t,[["render",h]]);export{g as __pageData,E as default};
diff --git a/assets/en_dev_api_message_rule.md.L6rc-HBj.js b/assets/en_dev_api_message_rule.md.L6rc-HBj.js
new file mode 100644
index 00000000..a7dea55f
--- /dev/null
+++ b/assets/en_dev_api_message_rule.md.L6rc-HBj.js
@@ -0,0 +1 @@
+import{_ as s,c as e,o as i,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.message.rule","description":"","frontmatter":{"title":"liteyuki.message.rule"},"headers":[],"relativePath":"en/dev/api/message/rule.md","filePath":"en/dev/api/message/rule.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/message/rule.md"},n=a('
@Rule\nasync def is_su_rule(event: MessageEvent) -> bool:\n return str(event.user_id) in _superusers
',20),l=[n];function h(r,p,k,d,o,u){return i(),e("div",null,l)}const y=s(t,[["render",h]]);export{c as __pageData,y as default};
diff --git a/assets/en_dev_api_message_rule.md.L6rc-HBj.lean.js b/assets/en_dev_api_message_rule.md.L6rc-HBj.lean.js
new file mode 100644
index 00000000..91baa0c5
--- /dev/null
+++ b/assets/en_dev_api_message_rule.md.L6rc-HBj.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as e,o as i,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.message.rule","description":"","frontmatter":{"title":"liteyuki.message.rule"},"headers":[],"relativePath":"en/dev/api/message/rule.md","filePath":"en/dev/api/message/rule.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/message/rule.md"},n=a("",20),l=[n];function h(r,p,k,d,o,u){return i(),e("div",null,l)}const y=s(t,[["render",h]]);export{c as __pageData,y as default};
diff --git a/assets/en_dev_api_message_session.md.DMwGauxy.js b/assets/en_dev_api_message_session.md.DMwGauxy.js
new file mode 100644
index 00000000..c61961a8
--- /dev/null
+++ b/assets/en_dev_api_message_session.md.DMwGauxy.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o as i,j as e,a as s}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.session","description":"","frontmatter":{"title":"liteyuki.message.session"},"headers":[],"relativePath":"en/dev/api/message/session.md","filePath":"en/dev/api/message/session.md","lastUpdated":1725101868000}'),o={name:"en/dev/api/message/session.md"},n=e("h1",{id:"liteyuki-message-session",tabindex:"-1"},[s("liteyuki.message.session "),e("a",{class:"header-anchor",href:"#liteyuki-message-session","aria-label":'Permalink to "liteyuki.message.session"'},"")],-1),r=e("p",null,[e("strong",null,"Description"),s(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),l=e("p",null,[s("@Time : 2024/8/19 下午10:47 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),s(" @File : session.py @Software: PyCharm")],-1),m=[n,r,l];function c(d,p,_,u,h,k){return i(),a("div",null,m)}const f=t(o,[["render",c]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_message_session.md.DMwGauxy.lean.js b/assets/en_dev_api_message_session.md.DMwGauxy.lean.js
new file mode 100644
index 00000000..c61961a8
--- /dev/null
+++ b/assets/en_dev_api_message_session.md.DMwGauxy.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as a,o as i,j as e,a as s}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.message.session","description":"","frontmatter":{"title":"liteyuki.message.session"},"headers":[],"relativePath":"en/dev/api/message/session.md","filePath":"en/dev/api/message/session.md","lastUpdated":1725101868000}'),o={name:"en/dev/api/message/session.md"},n=e("h1",{id:"liteyuki-message-session",tabindex:"-1"},[s("liteyuki.message.session "),e("a",{class:"header-anchor",href:"#liteyuki-message-session","aria-label":'Permalink to "liteyuki.message.session"'},"")],-1),r=e("p",null,[e("strong",null,"Description"),s(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),l=e("p",null,[s("@Time : 2024/8/19 下午10:47 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),s(" @File : session.py @Software: PyCharm")],-1),m=[n,r,l];function c(d,p,_,u,h,k){return i(),a("div",null,m)}const f=t(o,[["render",c]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_mkdoc.md.EVvNGPKX.js b/assets/en_dev_api_mkdoc.md.EVvNGPKX.js
new file mode 100644
index 00000000..d63245c7
--- /dev/null
+++ b/assets/en_dev_api_mkdoc.md.EVvNGPKX.js
@@ -0,0 +1,161 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.mkdoc","description":"","frontmatter":{"title":"liteyuki.mkdoc"},"headers":[],"relativePath":"en/dev/api/mkdoc.md","filePath":"en/dev/api/mkdoc.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/mkdoc.md"},h=t(`
`,65),k=[h];function l(p,e,r,E,d,g){return a(),i("div",null,k)}const o=s(n,[["render",l]]);export{y as __pageData,o as default};
diff --git a/assets/en_dev_api_mkdoc.md.EVvNGPKX.lean.js b/assets/en_dev_api_mkdoc.md.EVvNGPKX.lean.js
new file mode 100644
index 00000000..ac1e661a
--- /dev/null
+++ b/assets/en_dev_api_mkdoc.md.EVvNGPKX.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.mkdoc","description":"","frontmatter":{"title":"liteyuki.mkdoc"},"headers":[],"relativePath":"en/dev/api/mkdoc.md","filePath":"en/dev/api/mkdoc.md","lastUpdated":1725101868000}'),n={name:"en/dev/api/mkdoc.md"},h=t("",65),k=[h];function l(p,e,r,E,d,g){return a(),i("div",null,k)}const o=s(n,[["render",l]]);export{y as __pageData,o as default};
diff --git a/assets/en_dev_api_plugin_index.md.7EqtiaFh.js b/assets/en_dev_api_plugin_index.md.7EqtiaFh.js
new file mode 100644
index 00000000..962f85ec
--- /dev/null
+++ b/assets/en_dev_api_plugin_index.md.7EqtiaFh.js
@@ -0,0 +1,7 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugin/index.md","filePath":"en/dev/api/plugin/index.md","lastUpdated":null}'),e={name:"en/dev/api/plugin/index.md"},n=a(`
`,5),l=[n];function p(d,r,o,h,u,g){return t(),s("div",null,l)}const _=i(e,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/en_dev_api_plugin_index.md.7EqtiaFh.lean.js b/assets/en_dev_api_plugin_index.md.7EqtiaFh.lean.js
new file mode 100644
index 00000000..2ffc2b54
--- /dev/null
+++ b/assets/en_dev_api_plugin_index.md.7EqtiaFh.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugin/index.md","filePath":"en/dev/api/plugin/index.md","lastUpdated":null}'),e={name:"en/dev/api/plugin/index.md"},n=a("",5),l=[n];function p(d,r,o,h,u,g){return t(),s("div",null,l)}const _=i(e,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/en_dev_api_plugin_load.md.BWXzuii9.js b/assets/en_dev_api_plugin_load.md.BWXzuii9.js
new file mode 100644
index 00000000..9e1b054d
--- /dev/null
+++ b/assets/en_dev_api_plugin_load.md.BWXzuii9.js
@@ -0,0 +1,83 @@
+import{_ as h,D as l,c as t,j as i,a as s,I as k,w as p,a4 as a,o as e}from"./chunks/framework.C3o_UkTa.js";const B=JSON.parse('{"title":"liteyuki.plugin.load","description":"","frontmatter":{"title":"liteyuki.plugin.load"},"headers":[],"relativePath":"en/dev/api/plugin/load.md","filePath":"en/dev/api/plugin/load.md","lastUpdated":1725101868000}'),E={name:"en/dev/api/plugin/load.md"},d=a(`
def load_plugins(*plugin_dir: str, ignore_warning: bool=True) -> set[Plugin]:
+ """导入文件夹下多个插件
+
+ 参数:
+ plugin_dir: 文件夹路径
+ ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
+ """
+ plugins = set()
+ for dir_path in plugin_dir:
+ if not os.path.exists(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' does not exist.")
+ continue
+ if not os.listdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is empty.")
+ continue
+ if not os.path.isdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is not a directory.")
+ continue
+ for f in os.listdir(dir_path):
+ path = Path(os.path.join(dir_path, f))
+ module_name = None
+ if os.path.isfile(path) and f.endswith('.py') and (f != '__init__.py'):
+ module_name = f'{path_to_module_name(Path(dir_path))}.{f[:-3]}'
+ elif os.path.isdir(path) and os.path.exists(os.path.join(path, '__init__.py')):
+ module_name = path_to_module_name(path)
+ if module_name:
+ load_plugin(module_name)
+ if _plugins.get(module_name):
+ plugins.add(_plugins[module_name])
+ return plugins
`,17),r=i("strong",null,"Return",-1),g=a(`Source code or View on GitHub
python
def format_display_name(display_name: str, plugin_type: PluginType) -> str:
+ """
+ 设置插件名称颜色,根据不同类型插件设置颜色
+ Args:
+ display_name: 插件名称
+ plugin_type: 插件类型
+
+ Returns:
+ str: 设置后的插件名称 <y>name</y>
+ """
+ color = 'y'
+ match plugin_type:
+ case PluginType.APPLICATION:
+ color = 'm'
+ case PluginType.TEST:
+ color = 'g'
+ case PluginType.MODULE:
+ color = 'e'
+ case PluginType.SERVICE:
+ color = 'c'
+ return f'<{color}>{display_name} [{plugin_type.name}]</{color}>'
`,1);function y(F,o,u,_,C,c){const n=l("y");return e(),t("div",null,[d,i("p",null,[r,s(": str: 设置后的插件名称 "),k(n,null,{default:p(()=>[s("name")]),_:1})]),g])}const A=h(E,[["render",y]]);export{B as __pageData,A as default};
diff --git a/assets/en_dev_api_plugin_load.md.BWXzuii9.lean.js b/assets/en_dev_api_plugin_load.md.BWXzuii9.lean.js
new file mode 100644
index 00000000..68423a1d
--- /dev/null
+++ b/assets/en_dev_api_plugin_load.md.BWXzuii9.lean.js
@@ -0,0 +1 @@
+import{_ as h,D as l,c as t,j as i,a as s,I as k,w as p,a4 as a,o as e}from"./chunks/framework.C3o_UkTa.js";const B=JSON.parse('{"title":"liteyuki.plugin.load","description":"","frontmatter":{"title":"liteyuki.plugin.load"},"headers":[],"relativePath":"en/dev/api/plugin/load.md","filePath":"en/dev/api/plugin/load.md","lastUpdated":1725101868000}'),E={name:"en/dev/api/plugin/load.md"},d=a("",17),r=i("strong",null,"Return",-1),g=a("",1);function y(F,o,u,_,C,c){const n=l("y");return e(),t("div",null,[d,i("p",null,[r,s(": str: 设置后的插件名称 "),k(n,null,{default:p(()=>[s("name")]),_:1})]),g])}const A=h(E,[["render",y]]);export{B as __pageData,A as default};
diff --git a/assets/en_dev_api_plugin_manager.md.Cq1g681t.js b/assets/en_dev_api_plugin_manager.md.Cq1g681t.js
new file mode 100644
index 00000000..562e8dc4
--- /dev/null
+++ b/assets/en_dev_api_plugin_manager.md.Cq1g681t.js
@@ -0,0 +1 @@
+import{_ as t,c as i,o as n,j as e,a}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.plugin.manager","description":"","frontmatter":{"title":"liteyuki.plugin.manager"},"headers":[],"relativePath":"en/dev/api/plugin/manager.md","filePath":"en/dev/api/plugin/manager.md","lastUpdated":1725101868000}'),r={name:"en/dev/api/plugin/manager.md"},o=e("h1",{id:"liteyuki-plugin-manager",tabindex:"-1"},[a("liteyuki.plugin.manager "),e("a",{class:"header-anchor",href:"#liteyuki-plugin-manager","aria-label":'Permalink to "liteyuki.plugin.manager"'},"")],-1),l=e("p",null,[e("strong",null,"Description"),a(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),s=e("p",null,[a("@Time : 2024/7/23 下午11:59 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),a(" @File : manager.py @Software: PyCharm")],-1),m=[o,l,s];function p(u,c,d,g,_,h){return n(),i("div",null,m)}const f=t(r,[["render",p]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_plugin_manager.md.Cq1g681t.lean.js b/assets/en_dev_api_plugin_manager.md.Cq1g681t.lean.js
new file mode 100644
index 00000000..562e8dc4
--- /dev/null
+++ b/assets/en_dev_api_plugin_manager.md.Cq1g681t.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as i,o as n,j as e,a}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"liteyuki.plugin.manager","description":"","frontmatter":{"title":"liteyuki.plugin.manager"},"headers":[],"relativePath":"en/dev/api/plugin/manager.md","filePath":"en/dev/api/plugin/manager.md","lastUpdated":1725101868000}'),r={name:"en/dev/api/plugin/manager.md"},o=e("h1",{id:"liteyuki-plugin-manager",tabindex:"-1"},[a("liteyuki.plugin.manager "),e("a",{class:"header-anchor",href:"#liteyuki-plugin-manager","aria-label":'Permalink to "liteyuki.plugin.manager"'},"")],-1),l=e("p",null,[e("strong",null,"Description"),a(": Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved")],-1),s=e("p",null,[a("@Time : 2024/7/23 下午11:59 @Author : snowykami @Email : "),e("a",{href:"mailto:snowykami@outlook.com",target:"_blank",rel:"noreferrer"},"snowykami@outlook.com"),a(" @File : manager.py @Software: PyCharm")],-1),m=[o,l,s];function p(u,c,d,g,_,h){return n(),i("div",null,m)}const f=t(r,[["render",p]]);export{y as __pageData,f as default};
diff --git a/assets/en_dev_api_plugin_model.md.CeWxdiF_.js b/assets/en_dev_api_plugin_model.md.CeWxdiF_.js
new file mode 100644
index 00000000..54bb43fd
--- /dev/null
+++ b/assets/en_dev_api_plugin_model.md.CeWxdiF_.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as e,a4 as r}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugin.model","description":"","frontmatter":{"title":"liteyuki.plugin.model"},"headers":[],"relativePath":"en/dev/api/plugin/model.md","filePath":"en/dev/api/plugin/model.md","lastUpdated":1725101868000}'),o={name:"en/dev/api/plugin/model.md"},s=r('
',25),i=[s];function l(n,d,h,c,u,m){return e(),t("div",null,i)}const k=a(o,[["render",l]]);export{g as __pageData,k as default};
diff --git a/assets/en_dev_api_plugin_model.md.CeWxdiF_.lean.js b/assets/en_dev_api_plugin_model.md.CeWxdiF_.lean.js
new file mode 100644
index 00000000..42db6f7c
--- /dev/null
+++ b/assets/en_dev_api_plugin_model.md.CeWxdiF_.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as e,a4 as r}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugin.model","description":"","frontmatter":{"title":"liteyuki.plugin.model"},"headers":[],"relativePath":"en/dev/api/plugin/model.md","filePath":"en/dev/api/plugin/model.md","lastUpdated":1725101868000}'),o={name:"en/dev/api/plugin/model.md"},s=r("",25),i=[s];function l(n,d,h,c,u,m){return e(),t("div",null,i)}const k=a(o,[["render",l]]);export{g as __pageData,k as default};
diff --git a/assets/en_dev_api_plugin_plugin.md.C9viahSZ.js b/assets/en_dev_api_plugin_plugin.md.C9viahSZ.js
new file mode 100644
index 00000000..a7325ad1
--- /dev/null
+++ b/assets/en_dev_api_plugin_plugin.md.C9viahSZ.js
@@ -0,0 +1,7 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugin/plugin.md","filePath":"en/dev/api/plugin/plugin.md","lastUpdated":null}'),n={name:"en/dev/api/plugin/plugin.md"},e=a(`
`,5),l=[e];function p(d,r,o,u,h,g){return t(),s("div",null,l)}const _=i(n,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/en_dev_api_plugin_plugin.md.C9viahSZ.lean.js b/assets/en_dev_api_plugin_plugin.md.C9viahSZ.lean.js
new file mode 100644
index 00000000..f23f1b5f
--- /dev/null
+++ b/assets/en_dev_api_plugin_plugin.md.C9viahSZ.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as t,a4 as a}from"./chunks/framework.C3o_UkTa.js";const c=JSON.parse('{"title":"liteyuki.plugin","description":"","frontmatter":{"title":"liteyuki.plugin","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugin/plugin.md","filePath":"en/dev/api/plugin/plugin.md","lastUpdated":null}'),n={name:"en/dev/api/plugin/plugin.md"},e=a("",5),l=[e];function p(d,r,o,u,h,g){return t(),s("div",null,l)}const _=i(n,[["render",p]]);export{c as __pageData,_ as default};
diff --git a/assets/en_dev_api_plugins_liteecho.md.w4kQQyNd.js b/assets/en_dev_api_plugins_liteecho.md.w4kQQyNd.js
new file mode 100644
index 00000000..7570c6e9
--- /dev/null
+++ b/assets/en_dev_api_plugins_liteecho.md.w4kQQyNd.js
@@ -0,0 +1 @@
+import{_ as e,c as i,o as s,a4 as t}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugins.liteecho","description":"","frontmatter":{"title":"liteyuki.plugins.liteecho"},"headers":[],"relativePath":"en/dev/api/plugins/liteecho.md","filePath":"en/dev/api/plugins/liteecho.md","lastUpdated":1725101868000}'),a={name:"en/dev/api/plugins/liteecho.md"},l=t('
',6),n=[l];function h(o,p,r,k,c,d){return s(),i("div",null,n)}const y=e(a,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_api_plugins_liteecho.md.w4kQQyNd.lean.js b/assets/en_dev_api_plugins_liteecho.md.w4kQQyNd.lean.js
new file mode 100644
index 00000000..365a5465
--- /dev/null
+++ b/assets/en_dev_api_plugins_liteecho.md.w4kQQyNd.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as i,o as s,a4 as t}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.plugins.liteecho","description":"","frontmatter":{"title":"liteyuki.plugins.liteecho"},"headers":[],"relativePath":"en/dev/api/plugins/liteecho.md","filePath":"en/dev/api/plugins/liteecho.md","lastUpdated":1725101868000}'),a={name:"en/dev/api/plugins/liteecho.md"},l=t("",6),n=[l];function h(o,p,r,k,c,d){return s(),i("div",null,n)}const y=e(a,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_api_plugins_plugin_loader_index.md.DYxIyTd3.js b/assets/en_dev_api_plugins_plugin_loader_index.md.DYxIyTd3.js
new file mode 100644
index 00000000..7dd7c030
--- /dev/null
+++ b/assets/en_dev_api_plugins_plugin_loader_index.md.DYxIyTd3.js
@@ -0,0 +1,8 @@
+import{_ as i,c as s,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugins/plugin_loader/index.md","filePath":"en/dev/api/plugins/plugin_loader/index.md","lastUpdated":null}'),l={name:"en/dev/api/plugins/plugin_loader/index.md"},e=n(`
def default_plugins_loader():
+ """
+ 默认插件加载器,应在初始化时调用
+ """
+ for plugin in get_config('liteyuki.plugins', []):
+ load_plugin(plugin)
+ for plugin_dir in get_config('liteyuki.plugin_dirs', ['src/liteyuki_plugins']):
+ load_plugins(plugin_dir)
`,6),t=[e];function p(r,o,h,d,k,u){return a(),s("div",null,t)}const c=i(l,[["render",p]]);export{_ as __pageData,c as default};
diff --git a/assets/en_dev_api_plugins_plugin_loader_index.md.DYxIyTd3.lean.js b/assets/en_dev_api_plugins_plugin_loader_index.md.DYxIyTd3.lean.js
new file mode 100644
index 00000000..a9752570
--- /dev/null
+++ b/assets/en_dev_api_plugins_plugin_loader_index.md.DYxIyTd3.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugins/plugin_loader/index.md","filePath":"en/dev/api/plugins/plugin_loader/index.md","lastUpdated":null}'),l={name:"en/dev/api/plugins/plugin_loader/index.md"},e=n("",6),t=[e];function p(r,o,h,d,k,u){return a(),s("div",null,t)}const c=i(l,[["render",p]]);export{_ as __pageData,c as default};
diff --git a/assets/en_dev_api_plugins_plugin_loader_plugin_loader.md.CX7_cGXK.js b/assets/en_dev_api_plugins_plugin_loader_plugin_loader.md.CX7_cGXK.js
new file mode 100644
index 00000000..de8c2875
--- /dev/null
+++ b/assets/en_dev_api_plugins_plugin_loader_plugin_loader.md.CX7_cGXK.js
@@ -0,0 +1,8 @@
+import{_ as i,c as s,o as a,a4 as l}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugins/plugin_loader/plugin_loader.md","filePath":"en/dev/api/plugins/plugin_loader/plugin_loader.md","lastUpdated":null}'),n={name:"en/dev/api/plugins/plugin_loader/plugin_loader.md"},e=l(`
def default_plugins_loader():
+ """
+ 默认插件加载器,应在初始化时调用
+ """
+ for plugin in get_config('liteyuki.plugins', []):
+ load_plugin(plugin)
+ for plugin_dir in get_config('liteyuki.plugin_dirs', ['src/liteyuki_plugins']):
+ load_plugins(plugin_dir)
`,6),t=[e];function p(r,o,h,d,k,u){return a(),s("div",null,t)}const c=i(n,[["render",p]]);export{_ as __pageData,c as default};
diff --git a/assets/en_dev_api_plugins_plugin_loader_plugin_loader.md.CX7_cGXK.lean.js b/assets/en_dev_api_plugins_plugin_loader_plugin_loader.md.CX7_cGXK.lean.js
new file mode 100644
index 00000000..a0b60bc5
--- /dev/null
+++ b/assets/en_dev_api_plugins_plugin_loader_plugin_loader.md.CX7_cGXK.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as s,o as a,a4 as l}from"./chunks/framework.C3o_UkTa.js";const _=JSON.parse('{"title":"liteyuki.plugins.plugin_loader","description":"","frontmatter":{"title":"liteyuki.plugins.plugin_loader","collapsed":true},"headers":[],"relativePath":"en/dev/api/plugins/plugin_loader/plugin_loader.md","filePath":"en/dev/api/plugins/plugin_loader/plugin_loader.md","lastUpdated":null}'),n={name:"en/dev/api/plugins/plugin_loader/plugin_loader.md"},e=l("",6),t=[e];function p(r,o,h,d,k,u){return a(),s("div",null,t)}const c=i(n,[["render",p]]);export{_ as __pageData,c as default};
diff --git a/assets/en_dev_api_utils.md.D2AasRls.js b/assets/en_dev_api_utils.md.D2AasRls.js
new file mode 100644
index 00000000..7f5ba236
--- /dev/null
+++ b/assets/en_dev_api_utils.md.D2AasRls.js
@@ -0,0 +1,70 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.utils","description":"","frontmatter":{"title":"liteyuki.utils"},"headers":[],"relativePath":"en/dev/api/utils.md","filePath":"en/dev/api/utils.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/utils.md"},l=n(`
`,30),e=[l];function p(h,k,r,o,d,E){return a(),i("div",null,e)}const u=s(t,[["render",p]]);export{g as __pageData,u as default};
diff --git a/assets/en_dev_api_utils.md.D2AasRls.lean.js b/assets/en_dev_api_utils.md.D2AasRls.lean.js
new file mode 100644
index 00000000..942c1642
--- /dev/null
+++ b/assets/en_dev_api_utils.md.D2AasRls.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"liteyuki.utils","description":"","frontmatter":{"title":"liteyuki.utils"},"headers":[],"relativePath":"en/dev/api/utils.md","filePath":"en/dev/api/utils.md","lastUpdated":1725101868000}'),t={name:"en/dev/api/utils.md"},l=n("",30),e=[l];function p(h,k,r,o,d,E){return a(),i("div",null,e)}const u=s(t,[["render",p]]);export{g as __pageData,u as default};
diff --git a/assets/en_dev_comm.md.Cn-onW1y.js b/assets/en_dev_comm.md.Cn-onW1y.js
new file mode 100644
index 00000000..33d74bb0
--- /dev/null
+++ b/assets/en_dev_comm.md.Cn-onW1y.js
@@ -0,0 +1,43 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"进程通信","description":"","frontmatter":{"title":"进程通信","order":4},"headers":[],"relativePath":"en/dev/comm.md","filePath":"en/dev/comm.md","lastUpdated":1725102337000}'),e={name:"en/dev/comm.md"},t=n(`
LiteyukiBot is running in the main process MainProcess, and other plugin framework processes are child processes that come with it. Therefore, it is impossible to communicate through shared memory and direct object transfer. Liteyuki provides a channel Channel for inter-process communication like go. You can send messages to other processes through Channel and listen to messages from other processes.
The channel is full-duplex, with two receiving modes, but only one mode can be used for a channel, that is, passive mode and active mode, passive mode is implemented by the chan.on_receive() decorator callback function, and active mode needs to call chan.receive() to implement
0000-00-00 00:00:00 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:00 [ℹ️信息] Active receive: I am liteyuki main process active
+0000-00-00 00:00:03 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:03 [ℹ️信息] Active receive: I am liteyuki main process active
+...
`,19),l=[t];function h(p,k,r,o,d,c){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_comm.md.Cn-onW1y.lean.js b/assets/en_dev_comm.md.Cn-onW1y.lean.js
new file mode 100644
index 00000000..386a376d
--- /dev/null
+++ b/assets/en_dev_comm.md.Cn-onW1y.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const g=JSON.parse('{"title":"进程通信","description":"","frontmatter":{"title":"进程通信","order":4},"headers":[],"relativePath":"en/dev/comm.md","filePath":"en/dev/comm.md","lastUpdated":1725102337000}'),e={name:"en/dev/comm.md"},t=n("",19),l=[t];function h(p,k,r,o,d,c){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{g as __pageData,y as default};
diff --git a/assets/en_dev_lyfunc.md.C5K1_qgM.js b/assets/en_dev_lyfunc.md.C5K1_qgM.js
new file mode 100644
index 00000000..58098ca6
--- /dev/null
+++ b/assets/en_dev_lyfunc.md.C5K1_qgM.js
@@ -0,0 +1,20 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const F=JSON.parse('{"title":"轻雪函数","description":"","frontmatter":{"title":"轻雪函数","order":2},"headers":[],"relativePath":"en/dev/lyfunc.md","filePath":"en/dev/lyfunc.md","lastUpdated":1725102337000}'),t={name:"en/dev/lyfunc.md"},l=n(`
`,19),e=[l];function h(p,k,d,r,o,c){return a(),i("div",null,e)}const y=s(t,[["render",h]]);export{F as __pageData,y as default};
diff --git a/assets/en_dev_lyfunc.md.C5K1_qgM.lean.js b/assets/en_dev_lyfunc.md.C5K1_qgM.lean.js
new file mode 100644
index 00000000..96d6f6e0
--- /dev/null
+++ b/assets/en_dev_lyfunc.md.C5K1_qgM.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const F=JSON.parse('{"title":"轻雪函数","description":"","frontmatter":{"title":"轻雪函数","order":2},"headers":[],"relativePath":"en/dev/lyfunc.md","filePath":"en/dev/lyfunc.md","lastUpdated":1725102337000}'),t={name:"en/dev/lyfunc.md"},l=n("",19),e=[l];function h(p,k,d,r,o,c){return a(),i("div",null,e)}const y=s(t,[["render",h]]);export{F as __pageData,y as default};
diff --git a/assets/en_dev_plugin.md.Xb7vUDpJ.js b/assets/en_dev_plugin.md.Xb7vUDpJ.js
new file mode 100644
index 00000000..d95d0591
--- /dev/null
+++ b/assets/en_dev_plugin.md.Xb7vUDpJ.js
@@ -0,0 +1,32 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"轻雪插件开发","description":"","frontmatter":{"title":"轻雪插件开发","order":3},"headers":[],"relativePath":"en/dev/plugin.md","filePath":"en/dev/plugin.md","lastUpdated":1725102337000}'),t={name:"en/dev/plugin.md"},h=n(`
`,19),l=[h];function p(e,k,d,r,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default};
diff --git a/assets/en_dev_plugin.md.Xb7vUDpJ.lean.js b/assets/en_dev_plugin.md.Xb7vUDpJ.lean.js
new file mode 100644
index 00000000..bc639f53
--- /dev/null
+++ b/assets/en_dev_plugin.md.Xb7vUDpJ.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"轻雪插件开发","description":"","frontmatter":{"title":"轻雪插件开发","order":3},"headers":[],"relativePath":"en/dev/plugin.md","filePath":"en/dev/plugin.md","lastUpdated":1725102337000}'),t={name:"en/dev/plugin.md"},h=n("",19),l=[h];function p(e,k,d,r,E,o){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{y as __pageData,c as default};
diff --git a/assets/en_dev_resource.md.CYdCh9wj.js b/assets/en_dev_resource.md.CYdCh9wj.js
new file mode 100644
index 00000000..7077fb6d
--- /dev/null
+++ b/assets/en_dev_resource.md.CYdCh9wj.js
@@ -0,0 +1,13 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"资源包开发","description":"","frontmatter":{"title":"资源包开发","order":1},"headers":[],"relativePath":"en/dev/resource.md","filePath":"en/dev/resource.md","lastUpdated":1725102337000}'),l={name:"en/dev/resource.md"},t=e(`
`,12),n=[t];function p(c,d,h,o,r,k){return i(),a("div",null,n)}const y=s(l,[["render",p]]);export{m as __pageData,y as default};
diff --git a/assets/en_dev_resource.md.CYdCh9wj.lean.js b/assets/en_dev_resource.md.CYdCh9wj.lean.js
new file mode 100644
index 00000000..64bd48b0
--- /dev/null
+++ b/assets/en_dev_resource.md.CYdCh9wj.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as a,o as i,a4 as e}from"./chunks/framework.C3o_UkTa.js";const m=JSON.parse('{"title":"资源包开发","description":"","frontmatter":{"title":"资源包开发","order":1},"headers":[],"relativePath":"en/dev/resource.md","filePath":"en/dev/resource.md","lastUpdated":1725102337000}'),l={name:"en/dev/resource.md"},t=e("",12),n=[t];function p(c,d,h,o,r,k){return i(),a("div",null,n)}const y=s(l,[["render",p]]);export{m as __pageData,y as default};
diff --git a/assets/en_index.md.DVQGNFEI.js b/assets/en_index.md.DVQGNFEI.js
new file mode 100644
index 00000000..b1245a9d
--- /dev/null
+++ b/assets/en_index.md.DVQGNFEI.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as i}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"LiteyukiBot","text":"Litedoc","tagline":"An integrated chat bot application and management framework","actions":[{"theme":"brand","text":"Get Started","link":"./deploy/install"},{"theme":"alt","text":"Manual","link":"./usage/basic_command"},{"theme":"alt","text":"Extensions","link":"./store/"}],"image":{"src":"/liteyuki.svg","alt":"Liteyuki Logo"}},"features":[{"title":"Supports Multiple Frameworks","icon":"🛠️","details":"Based on the liteyuki framework, compatible with nonebot, melobot, etc., with good ecological support","link":"./dev/api/api"},{"title":"Plugin Management","icon":"🧩","details":"Use package manager for convenient management of plugins and resource packs","link":"./store/plugin"},{"title":"Theme Support","icon":"🎨","details":"Fully customize the appearance using resource packs","link":"./store/resource"},{"title":"Internationalization","icon":"🌐","details":"Support for multiple languages through resource packs","link":"https://baike.baidu.com/item/i18n/6771940"},{"title":"Easy to Use","icon":"⚙️","details":"No complicated pre-process, ready to use out of the box","link":"./deploy/config"},{"title":"Ultra-high Performance","icon":"🏎️","details":"500 plugins, starts within 2 seconds"},{"title":"Rolling Updates","icon":"☁️","details":"Keep your robot up to date with the latest commits"},{"title":"Open Source Project","icon":"💻","details":"The project follows the MIT LICENSE and is open to contributions","link":"https://github.com/LiteyukiStudio/LiteyukiBot"}]},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md","lastUpdated":1725101868000}'),o={name:"en/index.md"};function a(n,s,l,r,c,p){return i(),t("div")}const m=e(o,[["render",a]]);export{u as __pageData,m as default};
diff --git a/assets/en_index.md.DVQGNFEI.lean.js b/assets/en_index.md.DVQGNFEI.lean.js
new file mode 100644
index 00000000..b1245a9d
--- /dev/null
+++ b/assets/en_index.md.DVQGNFEI.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as i}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"LiteyukiBot","text":"Litedoc","tagline":"An integrated chat bot application and management framework","actions":[{"theme":"brand","text":"Get Started","link":"./deploy/install"},{"theme":"alt","text":"Manual","link":"./usage/basic_command"},{"theme":"alt","text":"Extensions","link":"./store/"}],"image":{"src":"/liteyuki.svg","alt":"Liteyuki Logo"}},"features":[{"title":"Supports Multiple Frameworks","icon":"🛠️","details":"Based on the liteyuki framework, compatible with nonebot, melobot, etc., with good ecological support","link":"./dev/api/api"},{"title":"Plugin Management","icon":"🧩","details":"Use package manager for convenient management of plugins and resource packs","link":"./store/plugin"},{"title":"Theme Support","icon":"🎨","details":"Fully customize the appearance using resource packs","link":"./store/resource"},{"title":"Internationalization","icon":"🌐","details":"Support for multiple languages through resource packs","link":"https://baike.baidu.com/item/i18n/6771940"},{"title":"Easy to Use","icon":"⚙️","details":"No complicated pre-process, ready to use out of the box","link":"./deploy/config"},{"title":"Ultra-high Performance","icon":"🏎️","details":"500 plugins, starts within 2 seconds"},{"title":"Rolling Updates","icon":"☁️","details":"Keep your robot up to date with the latest commits"},{"title":"Open Source Project","icon":"💻","details":"The project follows the MIT LICENSE and is open to contributions","link":"https://github.com/LiteyukiStudio/LiteyukiBot"}]},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md","lastUpdated":1725101868000}'),o={name:"en/index.md"};function a(n,s,l,r,c,p){return i(),t("div")}const m=e(o,[["render",a]]);export{u as __pageData,m as default};
diff --git a/assets/en_store_plugin.md.DceXsbsh.js b/assets/en_store_plugin.md.DceXsbsh.js
new file mode 100644
index 00000000..3d1ff77f
--- /dev/null
+++ b/assets/en_store_plugin.md.DceXsbsh.js
@@ -0,0 +1 @@
+import{_ as t,D as o,c as n,I as r,o as a}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"插件商店","description":"","frontmatter":{"title":"插件商店","order":2},"headers":[],"relativePath":"en/store/plugin.md","filePath":"en/store/plugin.md","lastUpdated":1725101868000}'),s={name:"en/store/plugin.md"};function p(c,l,i,d,m,_){const e=o("pluginStoreComp");return a(),n("div",null,[r(e)])}const g=t(s,[["render",p]]);export{f as __pageData,g as default};
diff --git a/assets/en_store_plugin.md.DceXsbsh.lean.js b/assets/en_store_plugin.md.DceXsbsh.lean.js
new file mode 100644
index 00000000..3d1ff77f
--- /dev/null
+++ b/assets/en_store_plugin.md.DceXsbsh.lean.js
@@ -0,0 +1 @@
+import{_ as t,D as o,c as n,I as r,o as a}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"插件商店","description":"","frontmatter":{"title":"插件商店","order":2},"headers":[],"relativePath":"en/store/plugin.md","filePath":"en/store/plugin.md","lastUpdated":1725101868000}'),s={name:"en/store/plugin.md"};function p(c,l,i,d,m,_){const e=o("pluginStoreComp");return a(),n("div",null,[r(e)])}const g=t(s,[["render",p]]);export{f as __pageData,g as default};
diff --git a/assets/en_store_resource.md.DwD3Poel.js b/assets/en_store_resource.md.DwD3Poel.js
new file mode 100644
index 00000000..065eca32
--- /dev/null
+++ b/assets/en_store_resource.md.DwD3Poel.js
@@ -0,0 +1 @@
+import{_ as r,D as o,c as t,I as s,o as a}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"资源商店","description":"","frontmatter":{"title":"资源商店","order":1},"headers":[],"relativePath":"en/store/resource.md","filePath":"en/store/resource.md","lastUpdated":1725101868000}'),c={name:"en/store/resource.md"};function n(p,d,m,_,l,i){const e=o("resourceStoreComp");return a(),t("div",null,[s(e)])}const h=r(c,[["render",n]]);export{f as __pageData,h as default};
diff --git a/assets/en_store_resource.md.DwD3Poel.lean.js b/assets/en_store_resource.md.DwD3Poel.lean.js
new file mode 100644
index 00000000..065eca32
--- /dev/null
+++ b/assets/en_store_resource.md.DwD3Poel.lean.js
@@ -0,0 +1 @@
+import{_ as r,D as o,c as t,I as s,o as a}from"./chunks/framework.C3o_UkTa.js";const f=JSON.parse('{"title":"资源商店","description":"","frontmatter":{"title":"资源商店","order":1},"headers":[],"relativePath":"en/store/resource.md","filePath":"en/store/resource.md","lastUpdated":1725101868000}'),c={name:"en/store/resource.md"};function n(p,d,m,_,l,i){const e=o("resourceStoreComp");return a(),t("div",null,[s(e)])}const h=r(c,[["render",n]]);export{f as __pageData,h as default};
diff --git a/assets/en_usage_agreement.md.DzIdKK2Q.js b/assets/en_usage_agreement.md.DzIdKK2Q.js
new file mode 100644
index 00000000..8eff5a72
--- /dev/null
+++ b/assets/en_usage_agreement.md.DzIdKK2Q.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as o}from"./chunks/framework.C3o_UkTa.js";const h=JSON.parse('{"title":"用户协议","description":"","frontmatter":{"title":"用户协议","order":3},"headers":[],"relativePath":"en/usage/agreement.md","filePath":"en/usage/agreement.md","lastUpdated":1725101868000}'),l={name:"en/usage/agreement.md"},i=o('
',2),r=[i];function c(n,_,s,d,m,p){return a(),t("div",null,r)}const f=e(l,[["render",c]]);export{h as __pageData,f as default};
diff --git a/assets/en_usage_agreement.md.DzIdKK2Q.lean.js b/assets/en_usage_agreement.md.DzIdKK2Q.lean.js
new file mode 100644
index 00000000..fe46c48e
--- /dev/null
+++ b/assets/en_usage_agreement.md.DzIdKK2Q.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as o}from"./chunks/framework.C3o_UkTa.js";const h=JSON.parse('{"title":"用户协议","description":"","frontmatter":{"title":"用户协议","order":3},"headers":[],"relativePath":"en/usage/agreement.md","filePath":"en/usage/agreement.md","lastUpdated":1725101868000}'),l={name:"en/usage/agreement.md"},i=o("",2),r=[i];function c(n,_,s,d,m,p){return a(),t("div",null,r)}const f=e(l,[["render",c]]);export{h as __pageData,f as default};
diff --git a/assets/en_usage_basic.md.CxkJTStx.js b/assets/en_usage_basic.md.CxkJTStx.js
new file mode 100644
index 00000000..e18ebff2
--- /dev/null
+++ b/assets/en_usage_basic.md.CxkJTStx.js
@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a4 as l}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"基础插件","description":"","frontmatter":{"title":"基础插件","order":1},"headers":[],"relativePath":"en/usage/basic.md","filePath":"en/usage/basic.md","lastUpdated":1725101868000}'),n={name:"en/usage/basic.md"},r=l('
',22),a=[r];function c(i,s,o,g,y,x){return d(),e("div",null,a)}const p=t(n,[["render",c]]);export{u as __pageData,p as default};
diff --git a/assets/en_usage_basic.md.CxkJTStx.lean.js b/assets/en_usage_basic.md.CxkJTStx.lean.js
new file mode 100644
index 00000000..6d46861b
--- /dev/null
+++ b/assets/en_usage_basic.md.CxkJTStx.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a4 as l}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"基础插件","description":"","frontmatter":{"title":"基础插件","order":1},"headers":[],"relativePath":"en/usage/basic.md","filePath":"en/usage/basic.md","lastUpdated":1725101868000}'),n={name:"en/usage/basic.md"},r=l("",22),a=[r];function c(i,s,o,g,y,x){return d(),e("div",null,a)}const p=t(n,[["render",c]]);export{u as __pageData,p as default};
diff --git a/assets/en_usage_extra.md.CHJ4PN4s.js b/assets/en_usage_extra.md.CHJ4PN4s.js
new file mode 100644
index 00000000..dde36965
--- /dev/null
+++ b/assets/en_usage_extra.md.CHJ4PN4s.js
@@ -0,0 +1 @@
+import{_ as t,c as e,o as s,a4 as i}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"功能命令","description":"","frontmatter":{"title":"功能命令","order":2},"headers":[],"relativePath":"en/usage/extra.md","filePath":"en/usage/extra.md","lastUpdated":1725101868000}'),a={name:"en/usage/extra.md"},l=i('
',2),r=[i];function c(_,s,d,n,m,p){return a(),t("div",null,r)}const f=e(l,[["render",c]]);export{h as __pageData,f as default};
diff --git a/assets/usage_agreement.md.DBBkunJ_.lean.js b/assets/usage_agreement.md.DBBkunJ_.lean.js
new file mode 100644
index 00000000..ccf4b29b
--- /dev/null
+++ b/assets/usage_agreement.md.DBBkunJ_.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as o}from"./chunks/framework.C3o_UkTa.js";const h=JSON.parse('{"title":"用户协议","description":"","frontmatter":{"title":"用户协议","order":3},"headers":[],"relativePath":"usage/agreement.md","filePath":"zh/usage/agreement.md","lastUpdated":1725101868000}'),l={name:"usage/agreement.md"},i=o("",2),r=[i];function c(_,s,d,n,m,p){return a(),t("div",null,r)}const f=e(l,[["render",c]]);export{h as __pageData,f as default};
diff --git a/assets/usage_basic.md.DJoTZ022.js b/assets/usage_basic.md.DJoTZ022.js
new file mode 100644
index 00000000..7d9b5f21
--- /dev/null
+++ b/assets/usage_basic.md.DJoTZ022.js
@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a4 as l}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"基础插件","description":"","frontmatter":{"title":"基础插件","order":1},"headers":[],"relativePath":"usage/basic.md","filePath":"zh/usage/basic.md","lastUpdated":1725101868000}'),n={name:"usage/basic.md"},r=l('
',22),a=[r];function c(i,s,o,g,y,x){return d(),e("div",null,a)}const p=t(n,[["render",c]]);export{u as __pageData,p as default};
diff --git a/assets/usage_basic.md.DJoTZ022.lean.js b/assets/usage_basic.md.DJoTZ022.lean.js
new file mode 100644
index 00000000..c55ad60d
--- /dev/null
+++ b/assets/usage_basic.md.DJoTZ022.lean.js
@@ -0,0 +1 @@
+import{_ as t,c as e,o as d,a4 as l}from"./chunks/framework.C3o_UkTa.js";const u=JSON.parse('{"title":"基础插件","description":"","frontmatter":{"title":"基础插件","order":1},"headers":[],"relativePath":"usage/basic.md","filePath":"zh/usage/basic.md","lastUpdated":1725101868000}'),n={name:"usage/basic.md"},r=l("",22),a=[r];function c(i,s,o,g,y,x){return d(),e("div",null,a)}const p=t(n,[["render",c]]);export{u as __pageData,p as default};
diff --git a/assets/usage_extra.md.AJu--2F9.js b/assets/usage_extra.md.AJu--2F9.js
new file mode 100644
index 00000000..abaac9c9
--- /dev/null
+++ b/assets/usage_extra.md.AJu--2F9.js
@@ -0,0 +1 @@
+import{_ as t,c as e,o as s,a4 as i}from"./chunks/framework.C3o_UkTa.js";const y=JSON.parse('{"title":"功能命令","description":"","frontmatter":{"title":"功能命令","order":2},"headers":[],"relativePath":"usage/extra.md","filePath":"zh/usage/extra.md","lastUpdated":1725101868000}'),a={name:"usage/extra.md"},l=i('
def send(self, data: T):
+ """
+ 发送数据,发送函数为同步函数,没有异步的必要
+ Args:
+ data: 数据
+ """
+ if self.type_check:
+ _type = self._get_generic_type()
+ if _type is not None and (not self._validate_structure(data, _type)):
+ raise TypeError(f'Data must be an instance of {_type}, {type(data)} found')
+ if self._closed:
+ raise RuntimeError('Cannot send to a closed channel_')
+ self.conn_send.send(data)
@classmethod
+def get_instance(cls):
+ if cls._instance is None:
+ with cls._lock:
+ if cls._instance is None:
+ cls._instance = KeyValueStore()
+ return cls._instance
async def start_all(self):
+ """
+ 对外启动方法,启动所有进程,创建asyncio task
+ """
+ [asyncio.create_task(chan.start_receive_loop()) for chan in get_channels().values()]
+ [asyncio.create_task(sm.start_receive_loop()) for sm in [shared_memory]]
+ [asyncio.create_task(self._run_process(name)) for name in self.targets]
def add_matcher(matcher: Matcher):
+ for i, m in enumerate(_matcher_list):
+ if m.priority < matcher.priority:
+ _matcher_list.insert(i, matcher)
+ break
+ else:
+ _matcher_list.append(matcher)
def load_plugins(*plugin_dir: str, ignore_warning: bool=True) -> set[Plugin]:
+ """导入文件夹下多个插件
+
+ 参数:
+ plugin_dir: 文件夹路径
+ ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
+ """
+ plugins = set()
+ for dir_path in plugin_dir:
+ if not os.path.exists(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' does not exist.")
+ continue
+ if not os.listdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is empty.")
+ continue
+ if not os.path.isdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is not a directory.")
+ continue
+ for f in os.listdir(dir_path):
+ path = Path(os.path.join(dir_path, f))
+ module_name = None
+ if os.path.isfile(path) and f.endswith('.py') and (f != '__init__.py'):
+ module_name = f'{path_to_module_name(Path(dir_path))}.{f[:-3]}'
+ elif os.path.isdir(path) and os.path.exists(os.path.join(path, '__init__.py')):
+ module_name = path_to_module_name(path)
+ if module_name:
+ load_plugin(module_name)
+ if _plugins.get(module_name):
+ plugins.add(_plugins[module_name])
+ return plugins
0000-00-00 00:00:00 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:00 [ℹ️信息] Active receive: I am liteyuki main process active
+0000-00-00 00:00:03 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:03 [ℹ️信息] Active receive: I am liteyuki main process active
+...
LiteyukiBot supports yaml, json, and toml as configuration files, depending on your personal preference.
When you first run LiteyukiBot, it will generate config.yml and the config directory. You can modify the configuration items and restart LiteyukiBot. In most cases, you only need to modify the superusers and nickname fields.
When starting, LiteyukiBot will load all configuration files in the project directory config.yml/yaml/json/toml and the config directory. You can create multiple configuration files in the config directory, and LiteyukiBot will automatically merge these configuration files.
# NoneBot configuration
+nonebot:
+ command_start: [ "/", "" ] # Command prefix, if there is no "" empty command header, please enable alconna_use_command_start to ensure alconna parsing is normal
+ host: 127.0.0.1 # Listening address, default is local, if you want to receive external requests, please fill in
+ port: 20216 # Binding port
+ nickname: [ "liteyuki" ] # Bot nickname list
+ superusers: [ "1919810" ] # Superuser list
+liteyuki:
+ log_level: "INFO" # Log level
+ log_icon: true # Whether to display the log level icon (some console fonts are not available)
+ auto_report: true # Whether to automatically report problems to Liteyuki server
+ auto_update: true # Whether to automatically update Liteyuki, check for updates at 4 am every day
+ plugins: [ ] # Liteyuki plugin list
+ plugin_dirs: [ ] # Liteyuki plugin directory list
The following is the default value. If you need to customize it, please add it manually
yaml
# Advanced configuration
+nonebot:
+ onebot_access_token: "" # OneBot access token
+ default_language: "zh-CN" # Default language
+ alconna_auto_completion: false # alconna auto completion
+ safe_mode: false # Safe mode, if true, the bot will not load any plugins
+ # other nonebot configurations
+ custom_config_1: "custom_value1"
+ custom_config_2: "custom_value2"
+
+# development configuration
+liteyuki:
+ allow_update: true # Whether to allow Liteyuki to update
+ debug: false # Debug mode, if true, Liteyuki will output more detailed logs
+ dev_mode: false # development mode, if true, Liteyuki will load all plugins in the development directory
+...
yaml
Example: Configuration of OneBot implementation side connected to NoneBot
In production environments, it is recommended to use reverse WebSocket The fields provided by different implementation sides may be different, but basically the same. Here is a reference value
Fields
Value
Description
protocol
Reverse WebSocket
Liteyuki-NoneBot as server
address
ws://127.0.0.1:20216/onebot/v11/ws
The address depends on the configuration file, the default is `
AccessToken
""
If you have configured AccessToken for Liteyuki, please fill in the same value here
To use other communication methods, please visit OneBot Adapter for detailed information
There are too many python interpreters on my computer, how do I know which one to use?
You can specify which python interpreter to use by using the full path to the python executable, for example, /path/to/python main.py
Use virtual environments to avoid conflicts between different python interpreters
Why does the bot not respond after I start it?
Please check the configuration file command_start or superusers, make sure you have permission to use the command and send it correctly
Make sure the command header does not conflict with nickname{}, for example, a command is help, but the Bot nickname has a help, then it will be parsed as a nickname instead of a command
Please install Git correctly and deploy Liteyuki using cloning instead of direct download
How to log in to chat platforms such as Telegram?
If you have this question, it means you don't know much about this project. This project does not implement the login function, only the message processing and response. The login function is provided by the implementation side (protocol side). The implementation side itself does not handle response logic. It processes and reports messages to Liteyuki according to the OneBot standard. You need to use an implementation side that complies with the OneBot standard to connect to Liteyuki and report messages to Liteyuki. Some recommended implementation sides have been listed below
Playwright installation failed
Enter playwright install to install the browser
Some plugins report errors after installation and cannot be started
Please refer to the plugin documentation first, confirm that the necessary configuration items of the plugin are intact, and if the problem persists, please contact the plugin author or start Liteyuki in safe mode safe_mode: true. In safe mode, you can use npm uninstall to uninstall problematic plugins
It is recommended to use a virtual environment to run Liteyuki to avoid dependency conflicts. You can use python -m venv .venv to create a virtual environment, and then use .venv\Scripts\activate to activate the virtual environment (use source .venv/bin/activate to activate on Linux).
Run container docker run -p 20216:20216 -v $(pwd):/liteyukibot -v $(pwd)/.cache:/root/.cache liteyukibot
TIP
If you are using Windows, please use the absolute project directory /path/to/LiteyukiBot instead of $(pwd) If you have modified the port number, please replace 20216:20216 with your port number
Windows system version minimum Windows10+/Windows Server 2019+
Linux system requires Python3.10+, recommended Ubuntu 20.04+
CPU: at least 1vCPU
Memory: Bot without other plugins will occupy 300~500MB, including chromium and node processes, other plugins depend on specific plugins, recommended 1GB or more
Disk: at least 1GB of space
WARNING
If there are multiple environments on the device, please use path/to/python -m pip install -r requirements.txt to install dependencies, path/to/python is the path to your Python executable
WARNING
Liteyuki's update function depends on Git. If you do not have Git installed and run the source code directly, you will not be able to use the update function
def send(self, data: T):
+ """
+ 发送数据,发送函数为同步函数,没有异步的必要
+ Args:
+ data: 数据
+ """
+ if self.type_check:
+ _type = self._get_generic_type()
+ if _type is not None and (not self._validate_structure(data, _type)):
+ raise TypeError(f'Data must be an instance of {_type}, {type(data)} found')
+ if self._closed:
+ raise RuntimeError('Cannot send to a closed channel_')
+ self.conn_send.send(data)
@classmethod
+def get_instance(cls):
+ if cls._instance is None:
+ with cls._lock:
+ if cls._instance is None:
+ cls._instance = KeyValueStore()
+ return cls._instance
async def start_all(self):
+ """
+ 对外启动方法,启动所有进程,创建asyncio task
+ """
+ [asyncio.create_task(chan.start_receive_loop()) for chan in get_channels().values()]
+ [asyncio.create_task(sm.start_receive_loop()) for sm in [shared_memory]]
+ [asyncio.create_task(self._run_process(name)) for name in self.targets]
def add_matcher(matcher: Matcher):
+ for i, m in enumerate(_matcher_list):
+ if m.priority < matcher.priority:
+ _matcher_list.insert(i, matcher)
+ break
+ else:
+ _matcher_list.append(matcher)
def load_plugins(*plugin_dir: str, ignore_warning: bool=True) -> set[Plugin]:
+ """导入文件夹下多个插件
+
+ 参数:
+ plugin_dir: 文件夹路径
+ ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
+ """
+ plugins = set()
+ for dir_path in plugin_dir:
+ if not os.path.exists(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' does not exist.")
+ continue
+ if not os.listdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is empty.")
+ continue
+ if not os.path.isdir(dir_path):
+ if not ignore_warning:
+ logger.warning(f"Plugins dir '{dir_path}' is not a directory.")
+ continue
+ for f in os.listdir(dir_path):
+ path = Path(os.path.join(dir_path, f))
+ module_name = None
+ if os.path.isfile(path) and f.endswith('.py') and (f != '__init__.py'):
+ module_name = f'{path_to_module_name(Path(dir_path))}.{f[:-3]}'
+ elif os.path.isdir(path) and os.path.exists(os.path.join(path, '__init__.py')):
+ module_name = path_to_module_name(path)
+ if module_name:
+ load_plugin(module_name)
+ if _plugins.get(module_name):
+ plugins.add(_plugins[module_name])
+ return plugins
LiteyukiBot is running in the main process MainProcess, and other plugin framework processes are child processes that come with it. Therefore, it is impossible to communicate through shared memory and direct object transfer. Liteyuki provides a channel Channel for inter-process communication like go. You can send messages to other processes through Channel and listen to messages from other processes.
The channel is full-duplex, with two receiving modes, but only one mode can be used for a channel, that is, passive mode and active mode, passive mode is implemented by the chan.on_receive() decorator callback function, and active mode needs to call chan.receive() to implement
0000-00-00 00:00:00 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:00 [ℹ️信息] Active receive: I am liteyuki main process active
+0000-00-00 00:00:03 [ℹ️信息] Passive receive: I am liteyuki main process passive
+0000-00-00 00:00:03 [ℹ️信息] Active receive: I am liteyuki main process active
+...