166 lines
6.5 KiB
C#
166 lines
6.5 KiB
C#
using Tmds.DBus.Protocol;
|
|
|
|
namespace DbusSmsForward.SettingModel;
|
|
|
|
public sealed class appsettingsModel
|
|
{
|
|
public LegacyAppSettings appSettings { get; set; } = new();
|
|
}
|
|
|
|
public sealed class LegacyAppsettingsModel
|
|
{
|
|
public LegacyAppSettings appSettings { get; set; } = new();
|
|
}
|
|
|
|
public sealed class LegacyAppSettings
|
|
{
|
|
public EmailConfig EmailConfig { get; set; } = new();
|
|
public PushPlusConfig PushPlusConfig { get; set; } = new();
|
|
public DingTalkConfig DingTalkConfig { get; set; } = new();
|
|
public BarkConfig BarkConfig { get; set; } = new();
|
|
public WeComApplicationConfig WeComApplicationConfig { get; set; } = new();
|
|
public TelegramBotConfig TGBotConfig { get; set; } = new();
|
|
public ShellConfig ShellConfig { get; set; } = new();
|
|
public string SmsCodeKey { get; set; } = "验证码±verification±code±认证±代码±随机码";
|
|
public string ForwardIgnoreStorageType { get; set; } = "sm";
|
|
public string DeviceName { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class DbusSmsForwardOptions
|
|
{
|
|
public DaemonConfig Daemon { get; set; } = new();
|
|
public ModemConfig Modem { get; set; } = new();
|
|
public ForwardingConfig Forwarding { get; set; } = new();
|
|
public NotificationChannels Notifications { get; set; } = new();
|
|
public LegacyCompatibilityConfig LegacyCompatibility { get; set; } = new();
|
|
}
|
|
|
|
public sealed class DaemonConfig
|
|
{
|
|
public string Mode { get; set; } = "forward";
|
|
public bool ValidateOnStartup { get; set; } = true;
|
|
public bool UseSystemd { get; set; } = true;
|
|
public string LogLevel { get; set; } = "Information";
|
|
}
|
|
|
|
public sealed class ModemConfig
|
|
{
|
|
public string SystemBusAddress { get; set; } = Address.System ?? string.Empty;
|
|
public string ServiceName { get; set; } = "org.freedesktop.ModemManager1";
|
|
public string ManagerObjectPath { get; set; } = "/org/freedesktop/ModemManager1";
|
|
public bool ScanDevicesOnStartup { get; set; } = true;
|
|
}
|
|
|
|
public sealed class ForwardingConfig
|
|
{
|
|
public string DeviceName { get; set; } = string.Empty;
|
|
public string SmsCodeKey { get; set; } = "验证码±verification±code±认证±代码±随机码";
|
|
public string IgnoreStorageType { get; set; } = "sm";
|
|
public bool EnableSmsCodeExtraction { get; set; } = true;
|
|
public string[] EnabledChannels { get; set; } = [];
|
|
}
|
|
|
|
public sealed class NotificationChannels
|
|
{
|
|
public EmailConfig Email { get; set; } = new();
|
|
public PushPlusConfig PushPlus { get; set; } = new();
|
|
public DingTalkConfig DingTalk { get; set; } = new();
|
|
public BarkConfig Bark { get; set; } = new();
|
|
public WeComApplicationConfig WeComApplication { get; set; } = new();
|
|
public TelegramBotConfig TelegramBot { get; set; } = new();
|
|
public ShellConfig Shell { get; set; } = new();
|
|
public AutmanPushConfig AutmanPush { get; set; } = new();
|
|
}
|
|
|
|
public sealed class LegacyCompatibilityConfig
|
|
{
|
|
public bool EnableLegacyCliFlags { get; set; } = true;
|
|
public bool WriteLegacyAppSettings { get; set; } = false;
|
|
}
|
|
|
|
public class ChannelConfigBase
|
|
{
|
|
public bool Enabled { get; set; }
|
|
public int TimeoutSeconds { get; set; } = 15;
|
|
public bool SkipTlsValidation { get; set; }
|
|
}
|
|
|
|
public sealed class EmailConfig : ChannelConfigBase
|
|
{
|
|
public string SmtpHost { get; set; } = string.Empty;
|
|
public int SmtpPort { get; set; } = 465;
|
|
public bool EnableSsl { get; set; } = true;
|
|
public string EmailKey { get; set; } = string.Empty;
|
|
public string SendEmail { get; set; } = string.Empty;
|
|
public string ReceiveEmail { get; set; } = string.Empty;
|
|
|
|
public string smtpHost { get => SmtpHost; set => SmtpHost = value; }
|
|
public string smtpPort { get => SmtpPort.ToString(); set => SmtpPort = int.TryParse(value, out int parsed) ? parsed : 465; }
|
|
public string enableSSL { get => EnableSsl.ToString().ToLowerInvariant(); set => EnableSsl = bool.TryParse(value, out bool parsed) && parsed; }
|
|
public string emailKey { get => EmailKey; set => EmailKey = value; }
|
|
public string sendEmail { get => SendEmail; set => SendEmail = value; }
|
|
public string reciveEmail { get => ReceiveEmail; set => ReceiveEmail = value; }
|
|
}
|
|
|
|
public sealed class PushPlusConfig : ChannelConfigBase
|
|
{
|
|
public string Token { get; set; } = string.Empty;
|
|
public string Endpoint { get; set; } = "https://www.pushplus.plus/send";
|
|
|
|
public string pushPlusToken { get => Token; set => Token = value; }
|
|
}
|
|
|
|
public sealed class DingTalkConfig : ChannelConfigBase
|
|
{
|
|
public string AccessToken { get; set; } = string.Empty;
|
|
public string Secret { get; set; } = string.Empty;
|
|
public string Endpoint { get; set; } = "https://oapi.dingtalk.com/robot/send";
|
|
|
|
public string DingTalkAccessToken { get => AccessToken; set => AccessToken = value; }
|
|
public string DingTalkSecret { get => Secret; set => Secret = value; }
|
|
}
|
|
|
|
public sealed class BarkConfig : ChannelConfigBase
|
|
{
|
|
public string ServerUrl { get; set; } = string.Empty;
|
|
public string BarkKey { get; set; } = string.Empty;
|
|
|
|
public string BarkUrl { get => ServerUrl; set => ServerUrl = value; }
|
|
}
|
|
|
|
public sealed class WeComApplicationConfig : ChannelConfigBase
|
|
{
|
|
public string CorpId { get; set; } = string.Empty;
|
|
public string AgentId { get; set; } = string.Empty;
|
|
public string ApplicationSecret { get; set; } = string.Empty;
|
|
|
|
public string WeChatQYID { get => CorpId; set => CorpId = value; }
|
|
public string WeChatQYApplicationID { get => AgentId; set => AgentId = value; }
|
|
public string WeChatQYApplicationSecret { get => ApplicationSecret; set => ApplicationSecret = value; }
|
|
}
|
|
|
|
public sealed class TelegramBotConfig : ChannelConfigBase
|
|
{
|
|
public bool EnableCustomApi { get; set; }
|
|
public string CustomApi { get; set; } = string.Empty;
|
|
public string BotToken { get; set; } = string.Empty;
|
|
public string ChatId { get; set; } = string.Empty;
|
|
|
|
public string IsEnableCustomTGBotApi { get => EnableCustomApi.ToString().ToLowerInvariant(); set => EnableCustomApi = bool.TryParse(value, out bool parsed) && parsed; }
|
|
public string CustomTGBotApi { get => CustomApi; set => CustomApi = value; }
|
|
public string TGBotToken { get => BotToken; set => BotToken = value; }
|
|
public string TGBotChatID { get => ChatId; set => ChatId = value; }
|
|
}
|
|
|
|
public sealed class ShellConfig : ChannelConfigBase
|
|
{
|
|
public string ShellPath { get; set; } = string.Empty;
|
|
}
|
|
|
|
public sealed class AutmanPushConfig : ChannelConfigBase
|
|
{
|
|
public string ApiUrl { get; set; } = string.Empty;
|
|
public string AccessToken { get; set; } = string.Empty;
|
|
public string Method { get; set; } = "POST";
|
|
}
|