Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions src/HuaJiBot.NET.Plugin.Calendar/ClubAffairsReminder.README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# 社团事务临期提醒功能

## 功能介绍

社团事务临期提醒功能是 Calendar 插件的一部分,用于帮助社团成员更好地管理即将到期的事务,避免遗漏重要事项。

## 功能特性

### 1. 每周汇总预告

在配置的时间(默认:每周一上午 9:00)发送一条汇总消息,列出接下来一周内即将到期的社团事务。

**示例消息:**

```
📢 社团事务一周预告(10月20日~10月26日)
以下事务将在一周内到期,请相关负责人提前准备:

1️⃣ [10月22日] 迎新晚会节目单提交(负责人:李华)
2️⃣ [10月24日] 社团经费报销材料上交(负责人:张敏)
3️⃣ [10月25日] 社团展板更新完成(负责人:王强)

✅ 请大家合理安排时间,确保事项按时完成。
—— 社团事务提醒机器人 🤖
```

### 2. 每日临期提醒

在配置的时间(默认:每天上午 9:00)发送单条提醒消息,提醒明天即将截止的事务。

**示例消息:**

```
⏰ 临期提醒
明天(10月25日)截止的社团事务:

• 社团展板更新完成(负责人:王强)

请务必在截止前完成相关工作!
—— 社团事务提醒机器人 🤖
```

## 配置说明

在插件配置文件中,可以通过 `ClubAffairsReminder` 节点进行配置:

```json
{
"ClubAffairsReminder": {
"EnableWeeklySummary": true,
"EnableDailyReminder": true,
"WeeklySummaryHour": 9,
"DailyReminderHour": 9,
"WeeklySummaryDayOfWeek": 1
}
}
```

### 配置项说明

| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `EnableWeeklySummary` | bool | `true` | 是否启用每周汇总提醒 |
| `EnableDailyReminder` | bool | `true` | 是否启用每日提醒 |
| `WeeklySummaryHour` | int | `9` | 每周汇总发送时间(小时,0-23) |
| `DailyReminderHour` | int | `9` | 每日提醒发送时间(小时,0-23) |
| `WeeklySummaryDayOfWeek` | int | `1` | 每周汇总发送在星期几(0=周日,1=周一,...,6=周六) |

## 负责人信息提取

系统会自动从事务描述中提取负责人信息。支持以下格式:

- `负责人:张三`
- `负责人:张三`
- `责任人:张三`
- `责任人:张三`

## 过滤规则

提醒消息遵循现有的 `ReminderGroups` 配置,支持白名单、黑名单和默认模式:

- **Default(默认)**:发送所有事务提醒
- **WhiteList(白名单)**:仅发送包含指定关键词的事务
- **BlackList(黑名单)**:不发送包含指定关键词的事务

关键词匹配会检查事务的概要(Summary)、描述(Description)和地点(Location)字段。

## 工作原理

1. 系统每小时检查一次当前时间
2. 在配置的时间点,检查是否需要发送提醒
3. 使用日期记录防止同一天重复发送
4. 根据过滤规则筛选要发送的群组和事务
5. 自动提取负责人信息并格式化消息

## 注意事项

- 提醒功能需要正确配置 `ReminderGroups` 才能发送消息
- 系统使用网络时间(NetworkTime)确保时间准确性
- 日历数据需要成功同步才能发送提醒
- 如果某一天没有即将到期的事务,不会发送空消息
Loading