{ "$schema": "https://json-schema.org/draft-07/hyper-schema#", "allOf": [ { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "Logging": { "$ref": "#/definitions/logging" } } }, { "type": "object", "properties": { "Account": { "type": "object", "properties": { "Uin": { "type": "integer", "minimum": 0, "description": "Uin, Only used to create lagrange-{uin}.db and qr-{uin}.png", "default": 0 }, "Protocol": { "type": "string", "enum": [ "Linux", "Windows", "MacOs" ], "description": "Protocol Platform", "default": "Linux" }, "AutoReconnect": { "type": "boolean", "description": "Whether to auto reconnect", "default": true }, "UseIPv6Network": { "type": "boolean", "description": "Whether to use IPv6, IPv6 implementation has an exception", "default": false }, "GetOptimumServer": { "type": "boolean", "description": "Whether to get optimum server", "default": true }, "AutoReLogin": { "type": "boolean", "description": "Whether to auto relogin", "default": true } } }, "ConfigPath": { "type": "object", "properties": { "Keystore": { "type": "string", "description": "Keystore file location", "default": "keystore.json" }, "DeviceInfo": { "type": "string", "description": "device file location", "default": "device.json" }, "Database": { "type": "string", "description": "database file location", "default": "lagrange.db" }, "AppInfo": { "type": "string", "description": "appinfo file location", "default": "appinfo.db" } } }, "MusicSignServerUrl": { "type": "string", "description": "Music signer url", "default": "" }, "SignServerUrl": { "type": "string", "description": "Signer url", "default": "" }, "SignProxyUrl": { "type": "string", "description": "Signer proxy url, only support HTTP proxy", "default": "" }, "Message": { "type": "object", "properties": { "IgnoreSelf": { "type": "boolean", "description": "Whether to ignore self", "default": false }, "StringPost": { "type": "boolean", "description": "Whether to post by string", "default": false } } }, "QrCode": { "type": "object", "properties": { "ConsoleCompatibilityMode": { "type": "boolean", "description": "Whether to show compatibility qrcode", "default": false } } }, "Implementations": { "type": "array", "items": { "oneOf": [ { "type": "object", "properties": { "Type": { "type": "string", "enum": [ "ReverseWebSocket" ], "description": "Implementation type" }, "Host": { "type": "string", "description": "WS connect host" }, "Port": { "type": "integer", "minimum": 0, "maximum": 65535 }, "Suffix": { "type": "string", "description": "WS path" }, "ReconnectInterval": { "type": "integer", "minimum": 0, "description": "Reconnect interval" }, "HeartBeatInterval": { "type": "integer", "minimum": 0, "description": "Heart beat interval, 0 to disable" }, "HeartBeatEnable": { "type": "boolean", "description": "Whether to send heart beat" }, "AccessToken": { "type": "string", "description": "Access token" } }, "description": "Implementation" }, { "type": "object", "properties": { "Type": { "type": "string", "enum": [ "ForwardWebSocket" ], "description": "Implementation type" }, "Host": { "type": "string", "description": "WS bind host" }, "Port": { "type": "integer", "minimum": 0, "maximum": 65535 }, "HeartBeatInterval": { "type": "integer", "minimum": 0, "description": "Heart beat interval, 0 to disable" }, "HeartBeatEnable": { "type": "boolean", "description": "Whether to send heart beat" }, "AccessToken": { "type": "string", "description": "Access token" } }, "description": "Implementation" }, { "type": "object", "properties": { "Type": { "type": "string", "enum": [ "HttpPost" ], "description": "Implementation type" }, "Host": { "type": "string", "description": "Http connect host" }, "Port": { "type": "integer", "minimum": 0, "maximum": 65535 }, "Suffix": { "type": "string", "description": "Http path" }, "HeartBeatInterval": { "type": "integer", "minimum": 0, "description": "Heart beat interval, 0 to disable" }, "HeartBeatEnable": { "type": "boolean", "description": "Whether to send heart beat" }, "AccessToken": { "type": "string", "description": "Access token" } }, "description": "Implementation" }, { "type": "object", "properties": { "Type": { "type": "string", "enum": [ "Http" ], "description": "Implementation type" }, "Host": { "type": "string", "description": "Http bind host" }, "Port": { "type": "integer", "minimum": 0, "maximum": 65535 }, "AccessToken": { "type": "string", "description": "Access token" } }, "description": "Implementation" } ] }, "description": "Implementation to use" } } } ], "definitions": { "logging": { "title": "logging options", "type": "object", "description": "Configuration for Microsoft.Extensions.Logging.", "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" }, "Console": { "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" }, "FormatterName": { "description": "Name of the log message formatter to use. Defaults to 'simple'.", "type": "string", "default": "simple" }, "FormatterOptions": { "title": "formatter options", "description": "Log message formatter options. Additional properties are available on the options depending on the configured formatter. The formatter is specified by FormatterName.", "type": "object", "properties": { "IncludeScopes": { "description": "Include scopes when true. Defaults to false.", "type": "boolean", "default": false }, "TimestampFormat": { "description": "Format string used to format timestamp in logging messages. Defaults to null.", "type": "string" }, "UseUtcTimestamp": { "description": "Indication whether or not UTC timezone should be used to for timestamps in logging messages. Defaults to false.", "type": "boolean", "default": false } } }, "LogToStandardErrorThreshold": { "$ref": "#/definitions/logLevelThreshold", "description": "The minimum level of messages are written to Console.Error." } } }, "EventSource": { "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" } } }, "Debug": { "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" } } }, "EventLog": { "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" } } }, "ElmahIo": { "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" } } }, "ElmahIoBreadcrumbs": { "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" } } } }, "additionalProperties": { "title": "provider logging settings", "type": "object", "description": "Logging configuration for a provider. The provider name must match the configuration's JSON property property name.", "properties": { "LogLevel": { "$ref": "#/definitions/logLevel" } } } }, "logLevel": { "title": "logging level options", "description": "Log level configurations used when creating logs. Only logs that exceeds its matching log level will be enabled. Each log level configuration has a category specified by its JSON property name. For more information about configuring log levels, see https://docs.microsoft.com/aspnet/core/fundamentals/logging/#configure-logging.", "type": "object", "additionalProperties": { "$ref": "#/definitions/logLevelThreshold" } }, "logLevelThreshold": { "description": "Log level threshold.", "type": "string", "enum": [ "Trace", "Debug", "Information", "Warning", "Error", "Critical", "None" ] } } }