其他
查看自己的墨问动态时,用 mocli disco…
需要查看当前认证用户在墨问上的最新动态、互动和关注人发布内容时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 40/100 ×0.15
适用场景
查看自己的墨问动态时,用 mocli d特定
解决思路
- 开始前先阅读共享规则 `../mo-shared/SKILL.md`,遵循其中的 `mocli` 初始化、认证、输出解析和安全规则。
- 使用命令 `mocli disco activity [--recent]` 查看当前认证用户的墨问动态;该命令只读取动态,不写入或删除。
- 展示动态时必须以 `reply.events` 为主序列;每个事件用 `eid` 到 `favors`、`comments`、`follow_notes`、`follow_fee_notes` 等详情 Map 中查找补充信息。
- 不要直接遍历详情 Map 展示动态,否则会丢失 `reply.events` 的原始排序。
- 动态详情里的笔记 ID(如 `target_id`、`note_id`、`joins`)都应到 `reply.notes` 中补齐标题、摘要和链接。
- 动态详情里的用户 UID(如 `favor_uid`、`cmt_uid`、`note_uid`)都应到 `reply.users` 中补齐昵称。
- `--recent string` 时间范围支持 `today`、`yesterday`、`1h-24h`;不指定时默认 `1h`。
- 用户说“今天/今日”时,使用 `mocli disco activity --recent today`。
- 用户说“昨天/昨日”时,使用 `mocli disco activity --recent yesterday`。
- 用户说“最近 N 小时”且 N 在 1-24 范围内时,使用 `mocli disco activity --recent Nh`,例如 `--recent 6h`。
- 用户给出的小时数超过 24h,或要求按天数筛选但不是 `today/yesterday` 时,说明当前命令只支持 `today`、`yesterday`、`1h-24h`,并询问用户是否改用受支持范围。
- 查看我的最新墨问动态:`mocli disco activity`。
- 查看今天的墨问动态:`mocli disco activity --recent today`。
- 查看昨天的墨问动态:`mocli disco activity --recent yesterday`。
- 查看最近 3 小时的墨问动态:`mocli disco activity --recent 3h`。
- 查看最近 24 小时的墨问动态:`mocli disco activity --recent 24h`。
- `reply.events` 是有序动态事件列表,展示动态时应优先遍历该字段,再根据每条事件的 `eid` 到对应详情 Map 中取数据。
- `reply.follows` 是关注类事件详情 Map,键通常为事件 `eid`,用于展示谁关注了当前用户。
- `reply.favors` 是点赞类事件详情 Map,键通常为事件 `eid`,用于展示谁点赞了哪篇笔记。
- `reply.collects` 是收藏类事件详情 Map,键通常为事件 `eid`,用于展示谁收藏了哪篇笔记。
- `reply.comments` 是评论类事件详情 Map,键通常为事件 `eid`,用于展示谁评论/回复了哪篇笔记。
- `reply.trades` 是交易/付费相关事件详情 Map,键通常为事件 `eid`,用于展示谁购买了当前用户笔记或专栏。
- `reply.follow_notes` 是当前用户关注的人发布普通笔记(`joins` 无数据)、更新合集(`joins` 有数据)事件详情 Map,键为事件 `eid`。
- `reply.follow_fee_notes` 是当前用户关注的人发布付费笔记(`joins` 无数据)、更新付费合集(`joins` 有数据)事件详情 Map,键为事件 `eid`。
- `reply.notes` 是笔记信息 Map,键为笔记 ID;动态详情中出现 `note_id`、`target_id`、`joins` 等代表笔记 ID 的字段时,用它补齐笔记标题、摘要和链接。
- `reply.users` 是用户信息 Map,键为用户 UID;用于补齐事件发起人、笔记作者等用户信息。
- `ActivityEvent.eid` 为事件 ID,用于到 `follows`、`favors`、`collects`、`comments`、`trades`、`follow_notes`、`follow_fee_notes` 等详情 Map 中查找事件详情;JSON 解析时可能以数字或字符串出现,做关联时统一转成字符串更稳妥。
- `ActivityEvent.uid` 为与事件相关的用户 UID,可到 `users[uid]` 获取昵称、简介等信息。
- `ActivityEvent.type`:`1` 点赞事件,`2` 评论/回复事件,`3` 收藏事件,`4` 关注事件,`5` 交易事件,`6` 关注的人发布笔记/更新合集事件,`7` 关注的人发布付费笔记/更新付费合集事件。
- `ActivityEvent.happened_at` 为事件发生时间,通常为毫秒级时间戳,展示前需格式化为可读时间。
- `ActivityEventFavor` 字段:`favor_uid` 点赞用户 UID,到 `users[favor_uid]` 获取昵称、简介;`target_uid` 被点赞笔记作者 UID;`target_id` 被点赞笔记 ID,到 `notes[target_id]` 获取标题、摘要、链接。
- 点赞展示文案优先使用 `users[favor_uid].name` 点赞了 `notes[target_id].title`。
- 如果 `notes[target_id]` 不存在,仍展示 `target_id`,不要丢弃该事件。
- 如果 `users[favor_uid]` 不存在,展示 UID。
- `ActivityEventComment` 字段:`cmt_uid` 评论发起者 UID,到 `users[cmt_uid]` 获取昵称、简介;`cmt_id` 评论 ID,当前动态列表通常只给出评论 ID,不一定包含评论正文;`cmt_p_uid` 被回复评论的作者 UID,为空表示对笔记直接评论,非空表示回复某人评论;`cmt_p_id` 被回复评论 ID,为空表示对笔记直接评论,非空表示回复某条评论;`target_uid` 被评论笔记作者 UID;`target_id` 被评论笔记 ID,到 `notes[target_id]` 获取标题、摘要、链接。
- 评论展示:当 `cmt_p_id` 为空时,展示为 `users[cmt_uid].name` 评论了 `notes[target_id].title`。
- 评论展示:当 `cmt_p_id` 非空时,展示为 `users[cmt_uid].name` 回复了 `users[cmt_p_uid].name` 在 `notes[target_id].title` 下的评论。
- 如果评论正文不在 `comments[eid]` 中,不要编造正文;只展示评论 ID `cmt_id` 和关联笔记信息。
- 如果 `notes[target_id]` 或相关用户信息缺失,保留 ID 展示。
- `ActivityEventFollowNote` 字段:`note_id` 主笔记 ID,到 `notes[note_id]` 获取标题、摘要、链接;`note_uid` 主笔记作者 UID,到 `users[note_uid]` 获取作者信息;`joins` 关联笔记 ID 列表,通常用于合集更新场景,表示被加入到主笔记中的笔记 ID,可逐个到 `notes[join_note_id]` 获取标题。
- `ActivityEventFollowFeeNote` 字段与 `ActivityEventFollowNote` 一致,但语义独立,只用于 `follow_fee_notes`,表示关注的人发布付费笔记或更新付费合集;后续如果付费动态增加价格、订单、权限等字段,应扩展本结构,而不是合并到 `ActivityEventFollowNote`。
- `ActivityEventFollowFeeNote` 字段:`note_id` 主付费笔记或付费合集 ID,到 `notes[note_id]` 获取标题、摘要、链接;`note_uid` 主付费笔记作者 UID,到 `users[note_uid]` 获取作者信息;`joins` 关联笔记 ID 列表,通常用于付费合集更新场景,表示被加入到主付费合集中的笔记 ID,可逐个到 `notes[join_note_id]` 获取标题。
- 动态解析:以 `reply.events` 的顺序作为展示顺序,不要直接遍历各类详情 Map。
- 对每个事件,将 `eid` 转为字符串后,依次在 `follows`、`favors`、`collects`、`comments`、`trades`、`follow_notes`、`follow_fee_notes` 中查找对应详情。
- 若命中 `favors[eid]`,展示为某用户点赞了某篇笔记;使用 `favor_uid` 找点赞用户,使用 `target_id` 找笔记,使用 `target_uid` 找笔记作者。
- 若命中 `comments[eid]`,展示为某用户评论或回复了某篇笔记;使用 `cmt_uid` 找评论用户,使用 `target_id` 找笔记;当 `cmt_p_id` 非空时,再使用 `cmt_p_uid` 找被回复用户。
- 若命中 `follow_notes[eid]`,展示为当前用户关注的人发布了新笔记或者更新了合集;使用 `note_uid` 找作者,使用 `note_id` 找笔记标题、摘要和链接;如果 `joins` 不为空,使用 `joins` 中的笔记 ID 找子笔记的标题、摘要和链接。
- 若命中 `follow_fee_notes[eid]`,展示为当前用户关注的人发布了付费笔记或更新付费合集;使用 `note_uid` 找作者,使用 `note_id` 找笔记标题、摘要和链接;如果 `joins` 不为空,使用 `joins` 中的笔记 ID 找子笔记的标题、摘要和链接。
- 若命中收藏、关注、交易等 Map,应优先使用详情对象里的 UID、`note_id`、`target_id`、`comment/content` 等字段,并通过 `users`、`notes` 补齐昵称和笔记标题。
- 若某个事件没有命中任何详情 Map,不要丢弃;展示事件 ID、用户、类型、发生时间,并说明该事件类型暂未识别。
- 时间戳 `happened_at` 可能是微秒级;格式化时需要按长度/数值判断,避免误当秒级时间戳。
- 数据较少时,按时间倒序逐条展示:时间、动态类型、用户、笔记标题、摘要、链接。
- 数据较多时,可先按类型汇总数量,再列出最近若干条重点动态。
- 笔记标题优先使用 `notes[note_id].title`;如果标题本身不包含「」或『』,就用『』包裹;作者优先使用 `users[note_uid].name`。
- 动态展示中,无论是 `users[uid].name` 还是 `notes[note_id].title`,客户端支持 Markdown 或 HTML 链接且对应 `home_url` 或 `url` 非空时,都必须使用链接包裹名称或标题;具体格式和缺失字段处理遵循共享展示规则。
- 对付费笔记/合集,如果 `flag.with_fee` 为 true,可明确标注“付费”。
- 展示规则参考公共展示规则 `../mo-shared/SKILL.md#reply-display-rules`。
适用边界 · 注意事项
- 没有安装、初始化或认证 `mocli`,或无法访问墨问账号/动态时,不适用。
- 需要写入、删除、发布、点赞、评论、关注等操作时,不适用;该命令只读动态。
- 用户要求筛选超过 24 小时或按非 `today/yesterday` 的天数时,当前命令不支持,不应直接执行;应说明支持范围并询问是否改用支持范围。