Auto
data class Auto(val baseDir: String? = null, val fileBasedFilename: String = "device.json") : DeviceInfoConfiguration(source)
自动寻找或配置deviceInfo。
Auto 首先会像 Resource 一样,去寻找几个指定的资源文件:
$BASE_DIR$device-$CODE$.json
$BASE_DIR$device.json
其中,$BASE_DIR$
为配置属性 baseDir,默认为空,即根目录。 最终得到的路径会先尝试从本地文件中寻找,而后会尝试在资源目录中寻找。
寻找顺序为:
本地文件:
$BASE_DIR$device-$CODE$.json
资源文件:
$BASE_DIR$device-$CODE$.json
本地文件:
$BASE_DIR$device.json
资源文件:
$BASE_DIR$device.json
如下示例中,
{
"deviceInfo": {
"type": "auto",
"baseDir": "devices"
}
}
Content copied to clipboard
假设当前bot.id为 123456,则最终寻找的目标路径为:
devices/device-123456.json
devices/device.json
baseDir 允许使用 $CODE$
占位符进行替换,例如:
{
"deviceInfo": {
"type": "auto",
"baseDir": "devices-$CODE$"
}
}
Content copied to clipboard
假设当前bot.id为 123456
, 则上述配置中的的 baseDir
最终会被替换为 devices-123456
, 并最终会去寻找如下目标:
devices-123456/device-123456.json
devices-123456/device.json
Auto.baseDir 扫描时,解析的本地文件格式会优先尝试直接通过 DeviceInfo 进行反序列化, 如果失败则会尝试通过 DeviceInfo.loadAsDeviceInfo 进行。 而对于 资源文件 则只会尝试通过 DeviceInfo 反序列化进行加载。