FileBased

data class FileBased(val file: String = DEFAULT_FILE, val fromResource: String? = null) : DeviceInfoConfiguration(source)

通过指定的本地文件来记录设备信息。

{
"type": "file_based",
"file": "device.json",
"fromResource": null
}

Resource 不同的是,FileBased 是基于 DeviceInfo.loadAsDeviceInfo 的, 其最终结果与行为会类似于使用 BotConfiguration.fileBasedDeviceInfo

FileBased 仅支持 本地文件,且所需要读取的设备信息文件的格式也与 DeviceInfo 存在些许不同,它们是存在"版本号"的信息格式,因此 FileBased 的所需格式与 Resource 的所需格式可能并不通用。

好吧,骗你的。FileBased 虽然"仅支持"本地文件,但是它提供了一个可选参数 fromResource 来允许在读取文件之前进行检测:当 file 处的文件不存在时,会尝试从资源路径中的 fromResource 文件复制到 file 处。 如果此行为尝试失败,则会输出警告日志,但不会终止流程。

BotConfiguration.fileBasedDeviceInfo 不同的是,FileBased 的属性 file 不会 被限制在 BotConfiguration.workingDir 中,而是直接使用

filefromResource 支持占位符替换,例如:

{
"type": "file_based",
"file": "$CODE$-device.json",
"fromResource": "$CODE$-device.json",
}

See also

Constructors

Link copied to clipboard
fun FileBased(file: String = DEFAULT_FILE, fromResource: String? = null)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open operator override fun invoke(bot: Bot): DeviceInfo
Link copied to clipboard
protected fun String.replaceCodeMark(code: String): String

Properties

Link copied to clipboard

配置文件路径。默认为 device.json

Link copied to clipboard
val fromResource: String? = null

file 处文件不存在时,尝试进行复制