"use strict";(self.webpackChunkzhenxun_docs=self.webpackChunkzhenxun_docs||[]).push([[7113],{1585:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>r});var i=t(4848),s=t(8453);const o={title:"\u914d\u7f6e\u7ba1\u7406",subSidebar:!1},l=void 0,a={id:"development/config",title:"\u914d\u7f6e\u7ba1\u7406",description:"\u4ecb\u7ecd",source:"@site/docs/development/config.md",sourceDirName:"development",slug:"/development/config",permalink:"/zhenxun_bot/development/config",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/development/config.md",tags:[],version:"current",frontMatter:{title:"\u914d\u7f6e\u7ba1\u7406",subSidebar:!1},sidebar:"devSidebar",previous:{title:"\u57fa\u7840\u6570\u636e",permalink:"/zhenxun_bot/development/base_data"},next:{title:"\u5546\u5e97\u914d\u7f6e",permalink:"/zhenxun_bot/development/shop"}},c={},r=[{value:"\u4ecb\u7ecd",id:"\u4ecb\u7ecd",level:2},{value:"\u6dfb\u52a0\u914d\u7f6e",id:"\u6dfb\u52a0\u914d\u7f6e",level:2},{value:"\u65b9\u5f0f\u4e00\uff08\u63a8\u8350\uff09",id:"\u65b9\u5f0f\u4e00\u63a8\u8350",level:3},{value:"PluginExtraData",id:"pluginextradata",level:4},{value:"\u793a\u4f8b",id:"\u793a\u4f8b",level:4},{value:"\u65b9\u5f0f\u4e8c",id:"\u65b9\u5f0f\u4e8c",level:3},{value:"\u793a\u4f8b",id:"\u793a\u4f8b-1",level:4},{value:"\u83b7\u53d6\u914d\u7f6e",id:"\u83b7\u53d6\u914d\u7f6e",level:2},{value:"\u4fee\u6539\u6a21\u5757\u914d\u7f6e",id:"\u4fee\u6539\u6a21\u5757\u914d\u7f6e",level:2},{value:"\u8bbe\u7f6e\u6a21\u5757\u4e2d\u6587\u540d\u79f0\uff08\u65e0\u5173\u7d27\u8981\u7684\u8bbe\u7f6e\uff09",id:"\u8bbe\u7f6e\u6a21\u5757\u4e2d\u6587\u540d\u79f0\u65e0\u5173\u7d27\u8981\u7684\u8bbe\u7f6e",level:2}];function d(n){const e={code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",...(0,s.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h2,{id:"\u4ecb\u7ecd",children:"\u4ecb\u7ecd"}),"\n",(0,i.jsxs)(e.p,{children:["\u9664\u4e86Nonebot\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6",(0,i.jsx)(e.code,{children:".env"}),"\u5916\uff0c\u771f\u5bfb\u5185\u90e8\u8fd8\u7ef4\u62a4\u4e86\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6",(0,i.jsx)(e.code,{children:"config.yaml"}),"\uff0c\u7528\u4e8e\u5b58\u50a8\u4e00\u4e9b\u63d2\u4ef6\u914d\u7f6e\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u4e00\u4e2a\u5168\u5c40\u5b57\u5178\u3002"]}),"\n",(0,i.jsx)(e.h2,{id:"\u6dfb\u52a0\u914d\u7f6e",children:"\u6dfb\u52a0\u914d\u7f6e"}),"\n",(0,i.jsx)(e.h3,{id:"\u65b9\u5f0f\u4e00\u63a8\u8350",children:"\u65b9\u5f0f\u4e00\uff08\u63a8\u8350\uff09"}),"\n",(0,i.jsxs)(e.p,{children:["\u901a\u8fc7",(0,i.jsx)(e.code,{children:"PluginExtraData"}),"\u7684\u65b9\u5f0f\u6dfb\u52a0"]}),"\n",(0,i.jsx)(e.h4,{id:"pluginextradata",children:(0,i.jsx)(e.code,{children:"PluginExtraData"})}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-python",children:'class RegisterConfig(BaseModel):\n """\n \u6ce8\u518c\u914d\u7f6e\u9879\n """\n\n key: str\n """\u5fc5\u586b\uff0c\u914d\u7f6e\u9879\u952e\uff0c\u5b57\u5178\u7684key\u503c"""\n value: Any\n """\u5fc5\u586b\uff0c\u914d\u7f6e\u9879\u503c\uff0c\u5b57\u5178\u7684\u503c\uff0c\u53ef\u4ee5\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u88ab\u4fee\u6539"""\n module: str | None = None\n """\u4e00\u822c\u4e3a\u63d2\u4ef6\u6a21\u5757\u540d\u79f0\uff08\u6587\u4ef6\u5939\u540d\u79f0\uff09\uff0c\u9664\u975e\u9700\u8981\u81ea\u5b9a\u4e49\u952e\uff0c\u5426\u5219\u4e0d\u9700\u8981\u586b\u5199"""\n help: str | None\n """\u914d\u7f6e\u6ce8\u89e3"""\n default_value: Any | None = None\n """\u9ed8\u8ba4\u503c\uff0c\u5f53value\u662fNone\u65f6\u8fd4\u56de"""\n type: Any = None\n """\u53c2\u6570\u7c7b\u578b\uff0c\u9664str\u5916\u5fc5\u987b\u586b\u5199\uff0c\u7528\u4e8e\u7c7b\u578b"""\n arg_parser: Callable | None = None\n """\u53c2\u6570\u89e3\u6790\u5668\uff0c\u7528\u4e8e\u89e3\u6790\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684\u503c\uff0c\u8fd4\u56de\u503c\u5fc5\u987b\u4e0etype\u4e00\u81f4\uff0c\u7528\u4e8e\u4e00\u4e9btype\u65e0\u6cd5\u8f6c\u6362\u7684\u64cd\u4f5c"""\n\n'})}),"\n",(0,i.jsx)(e.h4,{id:"\u793a\u4f8b",children:"\u793a\u4f8b"}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-python",children:'# zhenxun/plugins/test.py\n# \u6587\u4ef6\u540d\u79f0\uff08\u6a21\u5757\u540d\uff09\u2191\n\nfrom nonebot.plugin import PluginMetadata\n\nfrom zhenxun.configs.utils import PluginExtraData, RegisterConfig\n\n\n__plugin_meta__ = PluginMetadata(\n name="\u6d4b\u8bd5\u63d2\u4ef6",\n description="",\n usage="",\n extra=PluginExtraData(\n author="author",\n version="0.1",\n is_show=False,\n configs=[\n RegisterConfig(\n key="test\u952e1",\n value="\u6840\u6840\u68401",\n help="\u54c8\u55bd\uff0c\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u914d\u7f6e\u98791",\n default_value="\u6840\u6840\u68402",\n ),\n RegisterConfig(\n key="test\u952e2",\n value="\u6840\u6840\u68402",\n help="\u54c8\u55bd\uff0c\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u914d\u7f6e\u98792",\n default_value="\u6840\u6840\u68402",\n ),\n ...\n ],\n ).dict(),\n)\n\n'})}),"\n",(0,i.jsxs)(e.p,{children:["\u6839\u636e\u4e0a\u9762\u7684\u914d\u7f6e\uff0c\u5728",(0,i.jsx)(e.code,{children:"config.yaml"}),"\u4e2d\u4f1a\u81ea\u52a8\u751f\u6210\u4ee5\u4e0b\u914d\u7f6e\u9879"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-yaml",children:"test:\n # \u6d4b\u8bd5\u63d2\u4ef6\n # test\u952e: \u54c8\u55bd\uff0c\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u914d\u7f6e\u98791\n # test\u952e: \u54c8\u55bd\uff0c\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u914d\u7f6e\u98792\n test\u952e1: \u6840\u6840\u68401\n test\u952e2: \u6840\u6840\u68402\n"})}),"\n",(0,i.jsx)(e.h3,{id:"\u65b9\u5f0f\u4e8c",children:"\u65b9\u5f0f\u4e8c"}),"\n",(0,i.jsxs)(e.p,{children:["\u4f7f\u7528\u5168\u5c40",(0,i.jsx)(e.code,{children:"Config"}),"\u7c7b\u6dfb\u52a0"]}),"\n",(0,i.jsx)(e.h4,{id:"\u793a\u4f8b-1",children:"\u793a\u4f8b"}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-python",children:'from zhenxun.configs.config import Config\n\nConfig.add_plugin_config(\n "test\u6a21\u5757", # \u6a21\u5757\u540d\n "test\u952e",\n 666,\n help="\u54c8\u55bd\uff0c\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u914d\u7f6e\u9879",\n type=int,\n)\n\n'})}),"\n",(0,i.jsxs)(e.p,{children:["\u6839\u636e\u4e0a\u9762\u7684\u914d\u7f6e\uff0c\u5728",(0,i.jsx)(e.code,{children:"config.yaml"}),"\u4e2d\u4f1a\u81ea\u52a8\u751f\u6210\u4ee5\u4e0b\u914d\u7f6e\u9879"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-yaml",children:"test\u6a21\u5757:\n # \u6d4b\u8bd5\u63d2\u4ef6\n # test\u952e: \u54c8\u55bd\uff0c\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u914d\u7f6e\u9879\n test\u952e: 666\n"})}),"\n",(0,i.jsx)(e.h2,{id:"\u83b7\u53d6\u914d\u7f6e",children:"\u83b7\u53d6\u914d\u7f6e"}),"\n",(0,i.jsxs)(e.p,{children:["\u901a\u8fc7\u5168\u5c40",(0,i.jsx)(e.code,{children:"Config"}),"\u6765\u83b7\u53d6\u914d\u7f6e"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-python",children:'from zhenxun.configs.config import Config\n\n# \u76f4\u63a5\u83b7\u53d6\u914d\u7f6e\u9879\nvalue = Config.get_config("test\u6a21\u5757", "test\u952e")\n\n# \u5148\u83b7\u53d6\u914d\u7f6e\u7ec4\u540e\nbase_config = Config.get("test\u6a21\u5757") # test\u6a21\u5757\u7684\u6a21\u5757\u7ec4\uff0c\u6a21\u7ec4\u8be5\u7ec4(module)\u7684\u6240\u6709\u914d\u7f6e\nvalue = base_config.get("test\u952e") # \u83b7\u53d6\u914d\u7f6e\u9879\n'})}),"\n",(0,i.jsx)(e.h2,{id:"\u4fee\u6539\u6a21\u5757\u914d\u7f6e",children:"\u4fee\u6539\u6a21\u5757\u914d\u7f6e"}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-python",children:'from zhenxun.configs.config import Config\n\nConfig.set_config("test\u6a21\u5757", "test\u952e", 999)\n\n# \u5f53 auto_save \u4e3aTrue\u65f6\uff0c\u4f1a\u4fdd\u5b58\u81f3 config.yaml\nConfig.set_config("test\u6a21\u5757", "test\u952e", 999, True)\n'})}),"\n",(0,i.jsx)(e.h2,{id:"\u8bbe\u7f6e\u6a21\u5757\u4e2d\u6587\u540d\u79f0\u65e0\u5173\u7d27\u8981\u7684\u8bbe\u7f6e",children:"\u8bbe\u7f6e\u6a21\u5757\u4e2d\u6587\u540d\u79f0\uff08\u65e0\u5173\u7d27\u8981\u7684\u8bbe\u7f6e\uff09"}),"\n",(0,i.jsxs)(e.p,{children:["\u5f53\u4f7f\u7528",(0,i.jsx)(e.code,{children:"Config.add_plugin_config"}),"\u65b9\u5f0f\u6dfb\u52a0\u914d\u7f6e\u65f6\uff0c\u65e0\u6cd5\u83b7\u53d6\u5230\u63d2\u4ef6\u540d\u79f0\uff0c\u56e0\u6b64\u53ef\u4ee5\u624b\u52a8\u8bbe\u7f6e\u6a21\u5757\u4e2d\u6587\u540d\u79f0"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-python",children:'from zhenxun.configs.config import Config\n\nConfig.set_name("test\u6a21\u5757", "\u6d4b\u8bd5\u63d2\u4ef6")\n'})})]})}function u(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}},8453:(n,e,t)=>{t.d(e,{R:()=>l,x:()=>a});var i=t(6540);const s={},o=i.createContext(s);function l(n){const e=i.useContext(o);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:l(n.components),i.createElement(o.Provider,{value:e},n.children)}}}]);