# Nwafu Task Feishu

> Nwafu Task Feishu

- Skill: `caoronglin/nwafu-task-feishu` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add caoronglin/nwafu-task-feishu`
- Raw SKILL.md: https://api.skillmd.com/api/skills/caoronglin/nwafu-task-feishu/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- License: MIT
- Author: caoronglin (https://skillmd.com/u/caoronglin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/caoronglin/nwafu-task-feishu

---


## 📚 技能描述

西北农林科技大学（NWSUAF）课表自动导入飞书待办技能。根据校历规定的作息时间（夏令时/冬令时自动切换），将课程表 Excel 中的课程信息批量创建为飞书待办任务，支持按课程/实验分组管理。

## 🎯 功能特性

- ✅ **作息时间自动切换**：根据校历自动应用夏令时（5 月 1 日 -9 月 30 日）或冬令时（10 月 1 日 -4 月 30 日）
- ✅ **课程表解析**：支持从飞书导出的课表 Excel 文件中解析课程信息
- ✅ **飞书任务创建**：批量创建带准确时间的飞书待办任务
- ✅ **分组管理**：自动创建"课程"和"实验"分组，任务按类型归类
- ✅ **班级匹配**：支持多班级课程，精确匹配用户所在班级
- ✅ **北京时间**：所有时间使用北京时间（UTC+8）

## 📋 触发词

nwafu task feishu，西农课表，西北农林科技大学课表，课表导入飞书，飞书待办，创建课程任务，校历作息，夏令时冬令时，课程分组，实验分组，批量创建任务，课表自动化，NWSUAF，nwafu schedule

## 🔧 前置准备

### 1. 飞书应用配置

在飞书开放平台创建应用，获取以下权限：
- 任务读写权限
- 用户信息读取权限

### 2. 环境变量配置

复制 `.env.example` 为 `.env` 并填写配置：

```bash
cp .env.example .env
```

### 3. 依赖安装

```bash
pip install -r requirements.txt
```

## 💻 使用方法

### 基础用法

```bash
python nwafu_task_feishu.py --excel 课表文件.xls --class 生技 2402
```

### 完整参数

```bash
python nwafu_task_feishu.py \
  --excel /path/to/calendar.xls \
  --class "生技 2402" \
  --start-date 2026-03-02 \
  --lab-excel /path/to/lab.xls \
  --action create  # create, delete, sync
```

### 参数说明

| 参数 | 必需 | 说明 |
|------|------|------|
| `--excel` | ✅ | 课表 Excel 文件路径 |
| `--class` | ✅ | 用户班级名称（如"生技 2402"） |
| `--start-date` | ❌ | 开学日期（默认：2026-03-02） |
| `--lab-excel` | ❌ | 实验课表 Excel 文件路径 |
| `--action` | ❌ | 操作类型：create（创建）、delete（删除）、sync（同步） |
| `--delete-all` | ❌ | 删除所有已创建的任务 |

## 📅 作息时间规则

### 夏令时（5 月 1 日 - 9 月 30 日）

| 节次 | 时间 |
|------|------|
| 1-2 节 | 08:00-09:40 |
| 3-4 节 | 10:10-11:50 |
| 5-6 节 | 14:30-16:10 |
| 7-8 节 | 16:30-18:10 |
| 9-10 节 | 19:00-20:35 |
| 11-12 节 | 20:45-22:20 |

### 冬令时（10 月 1 日 - 4 月 30 日）

| 节次 | 时间 |
|------|------|
| 1-2 节 | 08:00-09:40 |
| 3-4 节 | 10:10-11:50 |
| 5-6 节 | 14:00-15:40 |
| 7-8 节 | 16:00-17:40 |
| 9-10 节 | 19:00-20:35 |
| 11-12 节 | 20:45-22:20 |

## 📁 文件结构

```
nwafu-task-feishu/
├── nwafu_task_feishu.py     # 主程序脚本
├── pyproject.toml           # Python 项目配置
├── requirements.txt         # Python 依赖
├── .env.example             # 环境变量模板
├── .gitignore              # Git 忽略配置
├── .editorconfig           # 编辑器配置
├── LICENSE                 # MIT 许可证
├── README.md               # 项目说明
├── CHANGELOG.md            # 更新日志
├── CONTRIBUTING.md         # 贡献指南
├── CODE_OF_CONDUCT.md      # 行为准则
├── SECURITY.md             # 安全政策
├── SKILL.md                # CoPaw 技能描述
├── tests/                  # 测试目录
│   ├── __init__.py
│   └── test_schedule.py
└── .github/workflows/      # GitHub Actions
    └── ci.yml
```

## 🔐 密钥管理

### 方式一：.env 文件（推荐）

```bash
cp .env.example .env
# 编辑 .env 填写密钥
```

### 方式二：系统环境变量

```bash
export FEISHU_APP_ID=your_app_id
export FEISHU_APP_SECRET=your_app_secret
export FEISHU_USER_OPEN_ID=your_open_id
```

### 方式三：命令行参数

```bash
python nwafu_task_feishu.py --app-id xxx --app-secret xxx --user-id xxx
```

## ⚠️ 注意事项

1. **密钥安全**：不要将 `.env` 文件提交到 Git
2. **班级名称**：必须与课表中的班级名称完全一致（注意空格）
3. **开学日期**：根据实际校历调整开学日期
4. **任务删除**：删除操作不可恢复，请谨慎使用
5. **时区设置**：服务器时区应设置为 Asia/Shanghai（北京时间）

## 🐛 常见问题

### Q: 任务创建后看不到？
A: 检查 `FEISHU_USER_OPEN_ID` 是否正确，必须使用用户的 open_id

### Q: 时间不对？
A: 检查服务器时区是否为 Asia/Shanghai，执行 `date` 查看

### Q: 班级匹配不到？
A: 课表中的班级名称可能有空格差异，用 `--debug` 查看解析结果

### Q: 夏令时/冬令时切换？
A: 脚本自动根据日期判断，5 月 1 日 -9 月 30 日用夏令时，其他用冬令时

## 📝 示例

### 示例 1：创建课程任务

```bash
python nwafu_task_feishu.py \
  --excel 课表导出.xls \
  --class "生技 2402" \
  --action create
```

### 示例 2：创建课程 + 实验任务

```bash
python nwafu_task_feishu.py \
  --excel 课表导出.xls \
  --lab-excel 实验课表.xls \
  --class "生技 2402" \
  --action create
```

### 示例 3：删除所有任务

```bash
python nwafu_task_feishu.py \
  --class "生技 2402" \
  --delete-all
```

## 📄 License

MIT License - 详见 [LICENSE](LICENSE) 文件

## 🤝 贡献

欢迎提交 Issue 和 Pull Request！详见 [CONTRIBUTING.md](CONTRIBUTING.md)

## 🔗 链接

- GitHub: https://github.com/caoronglin/nwafu-task-feishu
- Issues: https://github.com/caoronglin/nwafu-task-feishu/issues
- PyPI: （待发布）

