PicoBot/.qoder/skills/lark-drive/references/lark-drive-reactions.md
ooodc a7883dbed9 refactor(todo): 重构待办事项管理逻辑及更新状态规则
- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段
- 强制每个任务都必须有唯一 id,且由用户负责生成
- 修改合并模式逻辑,merge=true 下保留未提及的旧任务
- 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress)
- 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled
- 优化状态转换校验,允许特定状态间合法切换
- 简化任务变更消息,移除详细的新增/更新/移除统计
- 更新文档和示例,明确 id 必须由用户生成和使用
- 修复和补充测试,增强状态转换和合并模式验证
- 调整任务时间戳生成逻辑,统一使用当前时间及索引
- 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
2026-06-13 09:22:33 +08:00

114 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# drive reactions
> **前置条件:** 先阅读 [`../SKILL.md`](../SKILL.md) 了解 Drive 评论入口,再阅读 [`lark-drive-comments-guide.md`](lark-drive-comments-guide.md) 了解评论卡片模型、评论数/回复数统计口径、`file_token` / `file_type` 规则;同时阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
处理文档评论 / 回复上的 reaction点赞、表情、各表情数量、谁点了什么、添加/删除表情)。这个场景不常见,但规则比较集中:查询时只有在用户明确需要 reaction 信息时才带 `need_reaction=true`;写入时统一使用 `drive file.comment.reply.reactions update_reaction`,操作对象始终是 `reply_id`
> [!IMPORTANT]
> **`reaction_type` 只能使用本文下方“完整 `reaction_type` 列表”中定义的枚举值。**
> 不要自由填写、不要根据自然语言临时编造、也不要把列表里的 mixed-case 值改写成别的大小写形式。需要写入时,只能从下方枚举中原样选择并传参。
## 何时使用
- 用户明确要求查看评论 / 回复上的 reaction表情
- 用户要统计某条评论卡片有哪些表情、各表情数量,或要看谁点了什么。
- 用户要给评论或回复添加 / 删除 reaction。
## 查询规则
- `drive file.comments list``drive file.comments batch_query``drive file.comment.replys list` 都支持通过指定`need_reaction`查询reaction信息。
- `need_reaction` 只在用户明确需要 reaction 信息时再带;如果用户只关心评论正文、回复正文、评论数 / 回复数,默认不要加。
- 遍历评论卡片并顺带拿 reaction使用 `drive file.comments list`
- 已知评论 ID批量查看 reaction使用 `drive file.comments batch_query`,并在请求体里带 `need_reaction=true`
- 某张评论卡片下继续翻页拉 reply reaction使用 `drive file.comment.replys list`
- 如果 `drive file.comments list` 返回的某个 `item.has_more=true`,且用户要完整的 reply reaction 数据,后续每一页 `drive file.comment.replys list` 都要持续带 `need_reaction=true`
## 查询示例
```bash
# 遍历评论卡片,并把 reaction 一起拿回来
lark-cli drive file.comments list \
--params '{"file_token":"<DOC_TOKEN>","file_type":"docx","need_reaction":true}'
# 已知 comment_id批量查询评论卡片 reaction
lark-cli drive file.comments batch_query \
--params '{"file_token":"<DOC_TOKEN>","file_type":"docx"}' \
--data '{"comment_ids":["<COMMENT_ID>"],"need_reaction":true}'
# 继续翻某张评论卡片下的 replies并把 reaction 一起拿回来
lark-cli drive file.comment.replys list \
--params '{"file_token":"<DOC_TOKEN>","comment_id":"<COMMENT_ID>","file_type":"docx","need_reaction":true}'
```
## 写入规则
- 添加 / 删除 reaction 时,使用 `drive file.comment.reply.reactions update_reaction`
- 请求里必须带正确的 `file_type`,并在 body 中传 `action=add|delete``reply_id``reaction_type`
- `update_reaction` 的操作对象是 `reply_id`,不是 `comment_id`
- 如果用户说要给“这条评论”加 / 删 reaction通常需要定位到该评论卡片首条 reply 的 `reply_id` 再操作。
## 写入示例
```bash
# 给某条 reply 添加一个点赞 reaction
lark-cli drive file.comment.reply.reactions update_reaction \
--params '{"file_token":"<DOC_TOKEN>","file_type":"docx"}' \
--data '{"action":"add","reply_id":"<REPLY_ID>","reaction_type":"THUMBSUP"}'
# 删除某条 reply 上已有的 DONE reaction
lark-cli drive file.comment.reply.reactions update_reaction \
--params '{"file_token":"<DOC_TOKEN>","file_type":"docx"}' \
--data '{"action":"delete","reply_id":"<REPLY_ID>","reaction_type":"DONE"}'
```
> [!CAUTION]
> `update_reaction` 是写入操作。执行前必须确认用户意图,不要默认替用户点表情。
## `reaction_type` 使用规则
- `reaction_type` 必须传平台定义的枚举字符串,大小写敏感。
- 不要擅自把 mixed-case 值改成全大写,例如 `Yes``No``Get``EatingFood``CheckMark``CrossMark` 都要按原值传。
- **不要编造列表外的 `reaction_type`,也不要把自然语言描述臆造成平台未定义的新枚举**。
- 如果用户给的是自然语言语义(如“点赞”“在处理中”“确认一下”),可以在下方枚举列表内选择语义最接近的现有值;如果是近似映射,应在执行时明确告知用户。
## 常见语义联想
- `Yes`:确认 / 同意 / 批准。
- `No`:拒绝 / 不同意 / 否定。
- `DONE`:已完成 / 已处理。
- `Typing`:正在输入 / 正在处理中 / 正在跟进(近似语义)。
- `OK`:好的 / 收到 / 确认一下。
- `THUMBSUP`:点赞 / 认可。
- `LGTM`:看起来没问题 / 可以继续。
## 完整 `reaction_type` 列表
以下枚举按当前 Drive 评论 reaction 指引维护,使用时请保持原样:
```text
ANGRY, APPLAUSE, ATTENTION, AWESOME, BEAR, BEER, BETRAYED, BIGKISS
BLACKFACE, BLUBBER, BLUSH, BOMB, CAKE, CHUCKLE, CLAP, CLEAVER
COMFORT, CRAZY, CRY, CUCUMBER, DETERGENT, DIZZY, DONE, DONNOTGO
DROOL, DROWSY, DULL, DULLSTARE, EATING, EMBARRASSED, ENOUGH, ERROR
EYESCLOSED, FACEPALM, FINGERHEART, FISTBUMP, FOLLOWME, FROWN, GIFT, GLANCE
GOODJOB, HAMMER, HAUGHTY, HEADSET, HEART, HEARTBROKEN, HIGHFIVE, HUG
HUSKY, INNOCENTSMILE, JIAYI, JOYFUL, KISS, LAUGH, LIPS, LOL
LOOKDOWN, LOVE, MONEY, MUSCLE, NOSEPICK, OBSESSED, OK, PARTY
PETRIFIED, POOP, PRAISE, PROUD, PUKE, RAINBOWPUKE, ROSE, SALUTE
SCOWL, SHAKE, SHHH, SHOCKED, SHOWOFF, SHY, SICK, SILENT
SKULL, SLAP, SLEEP, SLIGHT, SMART, SMILE, SMIRK, SMOOCH
SMUG, SOB, SPEECHLESS, SPITBLOOD, STRIVE, SWEAT, TEARS, TEASE
TERROR, THANKS, THINKING, THUMBSUP, TOASTED, TONGUE, TRICK, UPPERLEFT
WAIL, WAVE, WELLDONE, WHAT, WHIMPER, WINK, WITTY, WOW
WRONGED, XBLUSH, YAWN, YEAH, FIREWORKS, BULL, CALF, AWESOMEN
2021, CANDIEDHAWS, REDPACKET, FORTUNE, LUCK, FIRECRACKER, Yes, No
Get, LGTM, Lemon, EatingFood, Hundred, MinusOne, ThumbsDown, Fire
OKR, Drumstick, BubbleTea, Loudspeaker, Pin, Coffee, Alarm, Trophy
Music, Typing, Pepper, CheckMark, CrossMark
```
## 参考
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数