配置与存储¶
配置和永久性存储¶
正如目录中所描述的,在任一配置中,每个组件示例都分配了其专属的存储文件夹。该路径可以通过 get_data_path()
通过组件 ID 获取。每一个存储文件夹都只对应一个配置档案。
我们建议配置文件使用 <module_data_path>/config.yaml
。同样,我们也准备了 get_config_path()
来获取默认配置文件的路径。但我们没有强制要求使用此文件名称或使用 YAML 作为配置文件的格式。
通常,存储文件夹内存放着:
配置文件
用户凭据/会话存储
数据库
临时存储¶
在处理多媒体消息时,无论是在信道内还是在信道之间,不可避免地需要临时存储一些文件。通常,临时文件可以用 Python 的 tempfile
库来处理。
向导¶
如果您的组件需要相对复杂的配置,最好向用户提供一个向导,以检查你的组件的必备条件,并且指导他们设置您的组件。
从版本 2 开始,EFB 引入了一个中心向导程序,让用户在基于文本的用户界面 (TUI) 中启用或禁用组件。如果您想把您的向导程序作为中心向导的一部分,可以使用 Setuptools 的接入点(entry point)功能在您的 setup.py
中添加一个新的接入点。
向导程序的组名为 ehforwarderbot.wizard
,入口函数必须(MUST)接受两个位置参数:配置档案 ID 和 实例 ID。
示例¶
setup.py
脚本
setup(
# ...
entry_points={
"ehforwarderbot.wizard": ['alice.irc = efb_irc_slave.wizard:main']
},
# ...
)
.egg-info/entry_points.txt`
[ehforwarderbot.wizard]
alice.irc = efb_irc_slave.wizard:main
efb_irc_slave/wizard.py
# ...
def main(profile, instance):
print("欢迎使用我的信道的设置向导。")
print("您正在使用配置档案"
"'{0}' 中的实例 '{1}' 来配置本信道。".format(profile, instance))
print("按回车键继续。")
input()
step1()
# ...