mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-05-21 09:45:48 +08:00
* 新增图片作为email附件发送功能 * feat(notification): 为 WebhookNotifier 添加 send_to 功能 - 在 WebhookNotifier 类中添加 send_to 属性 - 修改 TransformData 方法,增加 send_to 字段 - 在 NotificationConfig 中添加 webhook_endpoint 和 websocket_endpoint 属性 * refactor(WebhookNotifier): 添加 send_to 属性并调整访问修饰符 * refactor(notification): 重构 WebhookNotifier 并更新 NotificationConfig - 在 NotificationConfig 中添加 WebhookSendTo 属性 - 重构 WebhookNotifier 构造函数,使用 NotificationConfig 对象进行初始化 - 更新 WebhookNotifier 发送逻辑,使用新的配置属性 * feat: add webhook ui. * refactor(WebhookNotifier): 重构 TransformData 方法以优化数据结构- 将 notification_data 的内容合并到外层字典,以便于 webhook 接收端获取数据- 新增 event、result、timestamp 等字段,使数据结构 * fix(WebSocketNotifier): 添加消息发送后关闭连接的功能 - 在 SendAsync 方法中添加了 CloseAsync() 调用,确保消息发送后关闭 WebSocket 连接 - 此修改解决了消息发送后未关闭连接的问题,提高了资源利用率和系统稳定性 * fix: implement unified webhook ui * fix: typos. --------- Co-authored-by: DR-lin-eng <@DR-lin-eng> Co-authored-by: 秋云 <physligl@gmail.com>
182 lines
5.2 KiB
C#
182 lines
5.2 KiB
C#
using System;
|
||
using CommunityToolkit.Mvvm.ComponentModel;
|
||
|
||
namespace BetterGenshinImpact.Service.Notification;
|
||
|
||
/// <summary>
|
||
/// 通知配置管理器
|
||
/// </summary>
|
||
[Serializable]
|
||
public partial class NotificationConfig : ObservableObject
|
||
{
|
||
/// <summary>
|
||
/// 传"none"时,点击推送不会弹窗
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkAction = string.Empty;
|
||
|
||
[ObservableProperty] private string _barkApiEndpoint = string.Empty;
|
||
|
||
/// <summary>
|
||
/// iOS14.5以下自动复制推送内容,1为开启
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkAutoCopy = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 推送角标,可以是任意数字
|
||
/// </summary>
|
||
[ObservableProperty] private int _barkBadge = 1;
|
||
|
||
/// <summary>
|
||
/// 通知铃声重复播放,1为开启
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkCall = string.Empty;
|
||
|
||
[ObservableProperty] private string _barkCiphertext = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 复制推送时指定复制的内容
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkCopy = string.Empty;
|
||
|
||
[ObservableProperty] private string _barkDeviceKeys = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 对消息进行分组,推送将按group分组显示在通知中心中
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkGroup = "default";
|
||
|
||
/// <summary>
|
||
/// 为推送设置自定义图标URL
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkIcon = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 传1保存推送,传其他的不保存推送
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkIsArchive = "1";
|
||
|
||
/// <summary>
|
||
/// 推送中断级别:critical(重要警告), active(默认值), timeSensitive(时效性通知), passive(仅添加到通知列表)
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkLevel = "active";
|
||
|
||
/// <summary>
|
||
/// Bark移动推送通知配置
|
||
/// </summary>
|
||
[ObservableProperty] private bool _barkNotificationEnabled;
|
||
|
||
/// <summary>
|
||
/// 通知声音
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkSound = "minuet";
|
||
|
||
// Bark 通知附加参数配置
|
||
|
||
/// <summary>
|
||
/// 推送副标题
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkSubtitle = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 点击推送时跳转的URL
|
||
/// </summary>
|
||
[ObservableProperty] private string _barkUrl = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 重要警告的通知音量,取值范围: 0-10
|
||
/// </summary>
|
||
[ObservableProperty] private int _barkVolume = 5;
|
||
|
||
// Email 通知配置
|
||
[ObservableProperty] private bool _emailNotificationEnabled;
|
||
|
||
|
||
// 飞书通知
|
||
/// <summary>
|
||
/// 飞书通知是否启用
|
||
/// </summary>
|
||
[ObservableProperty] private bool _feishuNotificationEnabled;
|
||
|
||
|
||
/// <summary>
|
||
/// 飞书通知地址
|
||
/// </summary>
|
||
[ObservableProperty] private string _feishuWebhookUrl = string.Empty;
|
||
|
||
[ObservableProperty] private string _fromEmail = string.Empty;
|
||
|
||
[ObservableProperty] private string _fromName = string.Empty;
|
||
|
||
|
||
/// <summary>
|
||
/// 是否包含截图
|
||
/// </summary>
|
||
[ObservableProperty] private bool _includeScreenShot = true;
|
||
|
||
|
||
[ObservableProperty] private string _notificationEventSubscribe = string.Empty;
|
||
|
||
[ObservableProperty] private string _smtpPassword = string.Empty;
|
||
|
||
[ObservableProperty] private int _smtpPort;
|
||
|
||
[ObservableProperty] private string _smtpServer = string.Empty;
|
||
|
||
[ObservableProperty] private string _smtpUsername = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Telegram API基础URL(可选,留空使用官方API)
|
||
/// </summary>
|
||
[ObservableProperty] private string _telegramApiBaseUrl = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Telegram机器人Token
|
||
/// </summary>
|
||
[ObservableProperty] private string _telegramBotToken = string.Empty;
|
||
|
||
/// <summary>
|
||
/// Telegram聊天ID
|
||
/// </summary>
|
||
[ObservableProperty] private string _telegramChatId = string.Empty;
|
||
|
||
// Telegram通知
|
||
/// <summary>
|
||
/// Telegram通知是否启用
|
||
/// </summary>
|
||
[ObservableProperty] private bool _telegramNotificationEnabled;
|
||
|
||
[ObservableProperty] private string _toEmail = string.Empty;
|
||
|
||
/// <summary>
|
||
/// </summary>
|
||
[ObservableProperty] private bool _webhookEnabled;
|
||
|
||
/// <summary>
|
||
/// </summary>
|
||
[ObservableProperty] private string _webhookEndpoint = string.Empty;
|
||
|
||
|
||
[ObservableProperty] private string _webhookSendTo = string.Empty; // 修改属性名
|
||
|
||
[ObservableProperty] private string _webSocketEndpoint = string.Empty;
|
||
|
||
[ObservableProperty] private bool _webSocketNotificationEnabled;
|
||
|
||
/// <summary>
|
||
/// windows uwp 通知是否启用
|
||
/// </summary>
|
||
[ObservableProperty] private bool _windowsUwpNotificationEnabled;
|
||
|
||
|
||
// 企业微信通知
|
||
/// <summary>
|
||
/// 企业微信通知是否启用
|
||
/// </summary>
|
||
[ObservableProperty] private bool _workweixinNotificationEnabled;
|
||
|
||
|
||
/// <summary>
|
||
/// 企业微信通知通知地址
|
||
/// </summary>
|
||
[ObservableProperty] private string _workweixinWebhookUrl = string.Empty;
|
||
} |