配置与存储

配置和永久性存储

正如目录中所描述的,在任一配置中,每个组件示例都分配了其专属的存储文件夹。该路径可以通过 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()

    # ...