Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Oct 17, 2025

功能概述

为 Calendar 插件新增社团事务临期提醒功能,帮助社团成员更好地管理即将到期的事务,避免遗漏重要事项,提高事务处理的及时性。

实现的功能

1. 📢 每周汇总预告

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

示例输出:

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

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

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

2. ⏰ 每日临期提醒

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

示例输出:

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

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

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

技术实现

新增文件

  • ClubAffairsReminder.cs (339 行):核心提醒功能类

    • 独立的类设计,职责单一
    • 定时检查机制(每 60 分钟检查一次)
    • 智能负责人信息提取
    • 完善的错误处理和日志记录
  • ClubAffairsReminder.README.md (101 行):详细的功能文档和配置说明

  • ClubAffairsReminderTest.cs (111 行):单元测试,覆盖核心逻辑

修改文件

  • PluginMain.cs (+56/-1 行):
    • 新增 ClubAffairsReminderConfig 配置类
    • 集成新功能到插件初始化流程
    • 添加资源清理支持

配置选项

在插件配置文件中新增 ClubAffairsReminder 配置节点:

{
  "ClubAffairsReminder": {
    "EnableWeeklySummary": true,          // 是否启用每周汇总提醒
    "EnableDailyReminder": true,          // 是否启用每日提醒
    "WeeklySummaryHour": 9,               // 每周汇总发送时间(小时,0-23)
    "DailyReminderHour": 9,               // 每日提醒发送时间(小时,0-23)
    "WeeklySummaryDayOfWeek": 1           // 每周汇总发送日期(0=周日,1=周一,...)
  }
}

所有配置项都有合理的默认值,开箱即用。

主要特性

独立设计:与现有 ReminderTask 并行运行,互不影响
完全可配置:支持自定义发送时间、启用/禁用特定提醒类型
智能提取:自动从事务描述中提取负责人信息(支持"负责人:"、"责任人:"等多种格式)
过滤集成:完全兼容现有 ReminderGroups 配置的白名单/黑名单/默认模式
防重复机制:使用日期记录防止同一天重复发送
类型安全:统一使用 DateTimeOffset 处理时间,保持时区信息一致性
错误处理:完善的异常捕获和日志记录,确保插件稳定运行
单元测试:覆盖日期计算、时间判断、emoji 映射等核心逻辑

兼容性

  • 向后兼容,不影响现有功能
  • 默认启用,但可通过配置灵活禁用
  • 与现有代码架构无缝集成
  • 遵循项目代码规范和风格

代码统计

  • 新增代码:607 行
  • 新增文件:3 个
  • 修改文件:1 个

测试

包含单元测试,验证以下核心功能:

  • 星期几判断
  • 时间和日期比较
  • 周/日范围计算
  • Emoji 数字映射

Closes #[issue_number]

Original prompt

This section details on the original issue you should resolve

<issue_title>增加社团事务的临期提醒功能</issue_title>
<issue_description>功能建议: 增加社团事务的临期提醒功能

功能说明

  • 提前一周汇总预告: 在事务截止前一周,发送一条汇总预告,列出接下来一周内即将到期的社团事务。
  • 提前一天事务提醒: 在具体事务截止前一天,发送单条提醒消息。

功能目的

该功能可以帮助社团成员更好地管理即将到期的事务,避免遗漏重要事项,提高事务处理的及时性。

示范

下面是该功能实现后在群组或机器人消息中的输出示范(模拟提醒内容展示):


🗓️ 一、提前一周汇总预告(例:每周一上午 9:00 发送)

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

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

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


⏰ 二、提前一天事务提醒(例:10月24日上午 9:00 发送)

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

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

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


</issue_description>

<agent_instructions>完成描述的功能 最好拆分独立的类</agent_instructions>

Comments on the Issue (you are @copilot in this section)

Fixes #12


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 6 commits October 17, 2025 08:26
…ality

Co-authored-by: LazuliKao <46601807+LazuliKao@users.noreply.github.com>
Co-authored-by: LazuliKao <46601807+LazuliKao@users.noreply.github.com>
Co-authored-by: LazuliKao <46601807+LazuliKao@users.noreply.github.com>
Co-authored-by: LazuliKao <46601807+LazuliKao@users.noreply.github.com>
Co-authored-by: LazuliKao <46601807+LazuliKao@users.noreply.github.com>
Co-authored-by: LazuliKao <46601807+LazuliKao@users.noreply.github.com>
Copilot AI changed the title [WIP] Add reminder feature for club affairs 增加社团事务的临期提醒功能 Oct 17, 2025
Copilot AI requested a review from LazuliKao October 17, 2025 08:38
@LazuliKao LazuliKao marked this pull request as ready for review October 17, 2025 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

增加社团事务的临期提醒功能

2 participants