watcha-cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "watcha-cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "观猹 (watcha.cn) 命令行客户端:搜产品、读猹评、AI 搜索、Markdown 发布、产品方自助;人和 AI agent 共用,非 TTY 默认 JSON,随包附带 Agent Skill",
5
5
  "keywords": [
6
6
  "watcha",
@@ -68,7 +68,8 @@ watcha ask --resume <sessionId> "x" # 续传/回放
68
68
  watcha post list --limit 20 / watcha post show 13431 / watcha post floors 13431
69
69
  watcha topic hot / watcha topic posts 44
70
70
  watcha rank week_product_hot_reviewed --top 10 # 榜单 key 用 watcha rank 列出
71
- watcha activity list --city 杭州 / watcha activity show <slug>
71
+ watcha activity list --city 杭州 --period future # 还支持 --location-type / --date / --sort start_at_distance
72
+ watcha activity show <slug或id> / watcha activity cities / watcha activity calendar --year 2026 --month 9
72
73
  watcha user show 10094883 / watcha user reviews 10094883
73
74
  watcha feed --limit 10
74
75
 
@@ -79,6 +80,51 @@ watcha favorite post 13431 --yes / watcha follow 10094883 --yes / watcha react p
79
80
 
80
81
  点赞、收藏、关注、表情、投票、订阅、标记全部已读都是写操作:**只在用户明确要求时做,做之前说一句要做什么**。非交互环境不带 `--yes` 会返回退出码 4;不要替用户「顺手」点赞或关注。
81
82
 
83
+ ## 活动
84
+
85
+ ```bash
86
+ watcha activity list --period future --limit 20 # 逛;--q 走搜索(搜索分支只吃 --location-type/--date/--time-scope/--hybrid)
87
+ watcha activity show <活动> # 详情。报名方式在最前面:external 只能给链接,disabled 是没开放
88
+ watcha activity mine --role registered|managed|checkin [--period past] # 我报名的 / 我管理的 / 我负责签到的
89
+ watcha activity form <活动> # 报名前必读:能不能报、有哪些票档、要填什么字段和问题
90
+ watcha activity register <活动> --ticket 56 --field name=张三 --field phone=138xxxxxxxx --answer 1=答案 --yes
91
+ watcha activity unregister <活动> --yes # 取消报名是删记录,之后要重新报
92
+ ```
93
+
94
+ 报名的几条硬规则:
95
+
96
+ - **只有 `registration_mode=internal` 的活动能用 CLI 报名**。线上近八成活动是外链报名(external)或没开放(disabled),这时 CLI 会直接报参数错误并把报名链接给你——把链接转给用户,不要试图绕
97
+ - **先 `activity form` 再 `register`**:要填哪些字段、有哪些必答题、题目的 `question_id` 和选项,都只能从它拿。`--answer` 的键可以用 `question_id`、题号(从 1 数)或标题前缀
98
+ - `--field` 只能给这个活动实际开启的字段(`name`/`phone` 后端强制必填);多选题用逗号分隔选项,文本答案里的逗号不会被切。选项原文自带逗号时整串照抄即可(先按整串匹配),单选永远不切
99
+ - `--form file.json` 走的是同一套本地校验(启用字段、手机号邮箱格式、选项枚举、长文本上限),不是绕过校验的后门
100
+ - 报名会把用户的**真实姓名和手机号**交给主办方。**必须先把要提交的内容展示给用户、得到明确同意再加 `--yes`**,和发帖同一个标准
101
+ - 已经报过名的要改内容,先 `unregister` 再重报;被拒绝的报名再跑一次 `register` 就是重新提交
102
+
103
+ ## 活动主办与签到(需要你是该活动的主办方或签到人员)
104
+
105
+ ```bash
106
+ watcha activity manage show <活动> # 待审核/被拒的活动只能从这里看,公开页读不到
107
+ watcha activity manage guests <活动> [--status] [--keyword] [--sort] [--order] [--full]
108
+ watcha activity manage guests <活动> --checkin [--status] [--keyword] # 签到视角是另一个端点,不认 --sort/--order
109
+ watcha activity manage review <活动> <报名ID> --approve --yes
110
+ watcha activity manage review <活动> <报名ID> --reject --message "名额已满" --yes
111
+ watcha activity check-in <活动> <票码> --yes # 票码签到;--resolve 只看是谁,--undo 撤销(都要 --yes)
112
+ watcha activity manage export <活动> --out guests.xlsx
113
+ ```
114
+
115
+ - **报名者名单里是第三方的个人信息**(姓名、手机号、微信、有时还有钱包地址)。名单、单条报名详情、审核与签到的回显一律默认脱敏手机号,`--full` 才展开;导出的 xlsx 是完整信息。除非用户明确要,否则不要主动把整份名单读进来
116
+ - 票码签到**不幂等**,同一张票扫第二次后端会报错;CLI 会先解析一次并告诉你「这张票几点已经签过了」。撤销签到是幂等的
117
+ - `manage stats` 的 `registration_count` 把待审核和被拒的都算在内,真实到场人数看签到名单的 `check_in_counts`
118
+ - `manage form-set` / `manage ticket` / `manage host` / `manage edit` 的 `location` 与 `config` 对应的后端接口都是**整份替换**,CLI 会先读回现状再合并——不要绕过它直接用 `watcha api` 发 PUT,那样会把没写的字段清空。票档的 `--sales-start/--sales-end` 给空串表示清除;`--show-participants` 有 `--no-` 反向形式
119
+ - 新建的活动是 `pending` 状态,要等平台审核,过审前公开页看不到
120
+
121
+ ## 看到 meta.update_available 时
122
+
123
+ 成功信封里出现 `meta.update_available = { current, latest, upgrade }`,说明用户装的 CLI 落后了。
124
+ `upgrade` 是可以直接跑的升级命令,但它改的是用户机器的全局状态:**先告诉用户有新版本、取得同意再执行**,
125
+ 标准和写操作要 `--yes` 一样。一个会话里说一次就够,用户说不升就别再提。升级完重跑 `watcha skills install`,
126
+ 否则你手上这份用法说明还是旧版本的。
127
+
82
128
  ## 发布(必须先给用户看,再加 --yes)
83
129
 
84
130
  ```bash