@tencentcloud/tmeet 1.0.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/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ Tencent is pleased to support the open source community by making tencentmeeting-cli available.
2
+
3
+ Copyright (C) 2026 Tencent. All rights reserved.
4
+
5
+ tencentmeeting-cli is licensed under the MIT.
6
+
7
+
8
+ Terms of the MIT:
9
+ --------------------------------------------------------------------
10
+ Permission is hereby granted, free of charge, to any person obtaining
11
+ a copy of this software and associated documentation files (the
12
+ "Software"), to deal in the Software without restriction, including
13
+ without limitation the rights to use, copy, modify, merge, publish,
14
+ distribute, sublicense, and/or sell copies of the Software, and to
15
+ permit persons to whom the Software is furnished to do so, subject to
16
+ the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be
19
+ included in all copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
25
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,594 @@
1
+ # tmeet
2
+
3
+ [English](README_EN.md) | 中文
4
+
5
+ 腾讯会议命令行工具(CLI),基于腾讯会议开放平台 OAuth2 授权,支持会议管理、录制管理、参会报告等功能。
6
+
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
+ [![Go Version](https://img.shields.io/badge/Go-1.22+-blue.svg)](https://golang.org)
9
+
10
+ ## 功能特性
11
+
12
+ - 🔐 **OAuth2 授权登录** — 设备码授权流程,安全无密码
13
+ - 📅 **会议管理** — 创建、查询、更新、取消会议,支持周期性会议,管理受邀成员
14
+ - 🎬 **录制管理** — 查询录制列表、获取下载地址、智能纪要、转写详情与搜索
15
+ - 📊 **参会报告** — 查询参会人列表、等候室成员记录
16
+ - 🔒 **安全存储** — 凭证使用 AES-256-GCM 加密,明文不落盘
17
+ - 🖥️ **跨平台** — 支持 macOS、Linux、Windows
18
+
19
+ ## 安装
20
+
21
+ ### 方式一:通过 npm 安装(推荐)
22
+
23
+ ```bash
24
+ npm install -g tmeet
25
+ ```
26
+
27
+ 安装完成后即可直接使用 `tmeet` 命令。
28
+
29
+ ### 方式二:从源码构建
30
+
31
+ ```bash
32
+ git clone https://github.com/TencentCloud/tencentmeeting-cli
33
+ cd tencentmeeting-cli
34
+ go build -ldflags "-X tmeet/cmd.Version=v1.0.0" -o tmeet .
35
+ # 或
36
+ make build VERSION=v1.0.0
37
+ ```
38
+
39
+ ## 快速开始
40
+
41
+ ### 1. 登录授权
42
+
43
+ ```bash
44
+ tmeet auth login
45
+ ```
46
+
47
+ 执行后会输出授权 URL,在浏览器中打开完成扫码授权,CLI 自动轮询结果(超时 5 分钟),凭证加密保存到本地。
48
+
49
+ ### 2. 创建会议
50
+
51
+ ```bash
52
+ tmeet meeting create \
53
+ --subject "周例会" \
54
+ --start "2026-04-10T10:00+08:00" \
55
+ --end "2026-04-10T11:00+08:00"
56
+ ```
57
+
58
+ ### 3. 查询会议列表
59
+
60
+ ```bash
61
+ # 查询进行中/即将开始的会议
62
+ tmeet meeting list
63
+
64
+ # 查询已结束的会议
65
+ tmeet meeting list-ended \
66
+ --start "2026-04-01T00:00+08:00" \
67
+ --end "2026-04-30T23:59+08:00"
68
+ ```
69
+
70
+ ### 4. 登出
71
+
72
+ ```bash
73
+ tmeet auth logout
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 全局标志
79
+
80
+ 所有命令均支持以下全局标志:
81
+
82
+ | 标志 | 简写 | 默认值 | 说明 |
83
+ |------|------|--------|------|
84
+ | `--format` | — | `json` | 输出格式:`json`(紧凑格式)\| `json-pretty`(缩进格式) |
85
+ | `--version` | `-V` | — | 查看版本号 |
86
+
87
+ **示例:**
88
+
89
+ ```bash
90
+ # 查看版本号
91
+ tmeet -V
92
+
93
+ # 以缩进格式输出响应
94
+ tmeet meeting get --meeting-id "6953553464429888300" --format json-pretty
95
+ ```
96
+
97
+ ---
98
+
99
+ ## 命令总览
100
+
101
+ ```
102
+ tmeet [--format json] [-V]
103
+ ├── auth
104
+ │ ├── login # OAuth 授权登录
105
+ │ ├── logout # 登出并清除凭证
106
+ │ └── status # 查看当前登录状态
107
+ ├── meeting
108
+ │ ├── create # 创建会议(支持普通/周期性)
109
+ │ ├── update # 更新会议信息
110
+ │ ├── cancel # 取消会议
111
+ │ ├── get # 获取会议详情
112
+ │ ├── list # 获取进行中/即将开始的会议列表
113
+ │ ├── list-ended # 获取已结束的会议列表
114
+ │ └── invitees-list # 获取会议受邀者列表
115
+ ├── record
116
+ │ ├── list # 查询录制列表
117
+ │ ├── address # 获取录制文件下载地址
118
+ │ ├── smart-minutes # 获取智能纪要
119
+ │ ├── transcript-get # 获取转写详情
120
+ │ ├── transcript-paragraphs # 获取转写段落列表
121
+ │ └── transcript-search # 搜索转写内容
122
+ └── report
123
+ ├── participants # 获取参会人列表
124
+ └── waiting-room-log # 获取等候室成员列表
125
+ ```
126
+
127
+ ---
128
+
129
+ ## 命令参考
130
+
131
+ ### auth — 授权管理
132
+
133
+ #### `auth login`
134
+
135
+ 登录并完成 OAuth2 授权,将凭证加密保存到本地。
136
+
137
+ ```bash
138
+ tmeet auth login
139
+ ```
140
+
141
+ > 无参数。执行后按提示在浏览器中完成扫码授权即可。
142
+
143
+ ---
144
+
145
+ #### `auth logout`
146
+
147
+ 登出并清除本地认证凭证。
148
+
149
+ ```bash
150
+ tmeet auth logout
151
+ ```
152
+
153
+ > 无参数。
154
+
155
+ ---
156
+
157
+ #### `auth status`
158
+
159
+ 查看当前登录状态,包括 OpenId、AccessToken / RefreshToken 的过期状态和剩余有效时间。
160
+
161
+ ```bash
162
+ tmeet auth status
163
+ ```
164
+
165
+ > 无参数。未登录时提示 `Not logged in`,已登录时展示凭证有效期信息。
166
+
167
+ ---
168
+
169
+ ### meeting — 会议管理
170
+
171
+ #### `meeting create` — 创建会议
172
+
173
+ ```bash
174
+ tmeet meeting create --subject <主题> --start <开始时间> --end <结束时间> [选项]
175
+ ```
176
+
177
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
178
+ |------|------|:----:|--------|------|
179
+ | `--subject` | string | ✅ | — | 会议主题 |
180
+ | `--start` | string | ✅ | — | 会议开始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
181
+ | `--end` | string | ✅ | — | 会议结束时间,ISO 8601,如 `2026-03-12T15:00+08:00` |
182
+ | `--password` | string | — | — | 会议密码(4~6 位数字) |
183
+ | `--timezone` | string | — | — | 时区,可参见 Oracle-TimeZone 标准,如 `Asia/Shanghai` |
184
+ | `--meeting-type` | int | — | `0` | 会议类型:`0`-普通会议,`1`-周期性会议 |
185
+ | `--join-type` | int | — | `0` | 成员入会限制:`1`-所有成员可入会,`2`-仅受邀成员可入会,`3`-仅企业内部成员可入会 |
186
+ | `--waiting-room` | bool | — | `false` | 是否开启等候室,`true`-开启,`false`-不开启 |
187
+ | `--recurring-type` | int | — | `0` | 周期类型(`--meeting-type=1` 时生效):`0`-每天,`1`-每周一至周五,`2`-每周,`3`-每两周,`4`-每月,`5`-自定义 |
188
+ | `--until-type` | int | — | `0` | 周期结束类型(`--meeting-type=1` 时生效):`0`-按日期结束重复,`1`-按次数结束重复 |
189
+ | `--until-count` | int | — | `7` | 限定会议次数(`--meeting-type=1` 时生效):每天/每个工作日/每周最大 500,每两周/每月最大 500 |
190
+ | `--until-date` | string | — | — | 周期结束日期(`--meeting-type=1` 时生效),ISO 8601,如 `2026-03-12T15:00+08:00` |
191
+
192
+ **示例:**
193
+
194
+ ```bash
195
+ # 创建普通会议
196
+ tmeet meeting create \
197
+ --subject "项目评审" \
198
+ --start "2026-04-10T14:00+08:00" \
199
+ --end "2026-04-10T16:00+08:00" \
200
+ --password "123456" \
201
+ --waiting-room
202
+
203
+ # 创建每周重复会议(共 10 次)
204
+ tmeet meeting create \
205
+ --subject "每周站会" \
206
+ --start "2026-04-10T09:30+08:00" \
207
+ --end "2026-04-10T10:00+08:00" \
208
+ --meeting-type 1 \
209
+ --recurring-type 2 \
210
+ --until-type 1 \
211
+ --until-count 10
212
+ ```
213
+
214
+ ---
215
+
216
+ #### `meeting get` — 查询会议详情
217
+
218
+ `--meeting-id` 和 `--meeting-code` 二选一,`--meeting-id` 优先级更高。
219
+
220
+ ```bash
221
+ tmeet meeting get --meeting-id <会议ID>
222
+ tmeet meeting get --meeting-code <会议码>
223
+ ```
224
+
225
+ | 参数 | 类型 | 必填 | 说明 |
226
+ |------|------|:----:|------|
227
+ | `--meeting-id` | string | 二选一 | 会议 ID(优先级高于会议码) |
228
+ | `--meeting-code` | string | 二选一 | 会议码 |
229
+
230
+ **示例:**
231
+
232
+ ```bash
233
+ tmeet meeting get --meeting-id "6953553464429888300"
234
+ tmeet meeting get --meeting-code "931945029"
235
+ ```
236
+
237
+ ---
238
+
239
+ #### `meeting update` — 更新会议
240
+
241
+ 仅传入需要修改的字段,未传入的字段保持不变。
242
+
243
+ ```bash
244
+ tmeet meeting update --meeting-id <会议ID> [选项]
245
+ ```
246
+
247
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
248
+ |------|------|:----:|--------|------|
249
+ | `--meeting-id` | string | ✅ | — | 会议 ID |
250
+ | `--subject` | string | — | — | 会议主题 |
251
+ | `--start` | string | — | — | 会议开始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
252
+ | `--end` | string | — | — | 会议结束时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
253
+ | `--password` | string | — | — | 会议密码(4~6 位数字) |
254
+ | `--timezone` | string | — | — | 时区,如 `Asia/Shanghai` |
255
+ | `--meeting-type` | int | — | `0` | 会议类型:`0`-普通会议,`1`-周期性会议 |
256
+ | `--join-type` | int | — | `0` | 成员入会限制:`1`-所有成员可入会,`2`-仅受邀成员可入会,`3`-仅企业内部成员可入会 |
257
+ | `--waiting-room` | bool | — | `false` | 是否开启等候室 |
258
+ | `--recurring-type` | int | — | `0` | 周期类型(`--meeting-type=1` 时生效):`0`-每天,`1`-每周一至周五,`2`-每周,`3`-每两周,`4`-每月,`5`-自定义 |
259
+ | `--until-type` | int | — | `0` | 周期结束类型(`--meeting-type=1` 时生效):`0`-按日期结束重复,`1`-按次数结束重复 |
260
+ | `--until-count` | int | — | `7` | 限定会议次数(`--meeting-type=1` 时生效):每天/每个工作日/每周最大 500,每两周/每月最大 500 |
261
+ | `--until-date` | string | — | — | 周期结束日期(`--meeting-type=1` 时生效),ISO 8601,如 `2026-03-12T15:00+08:00` |
262
+
263
+ **示例:**
264
+
265
+ ```bash
266
+ tmeet meeting update \
267
+ --meeting-id "6953553464429888300" \
268
+ --subject "新主题" \
269
+ --start "2026-04-10T15:00+08:00" \
270
+ --end "2026-04-10T16:00+08:00"
271
+ ```
272
+
273
+ ---
274
+
275
+ #### `meeting cancel` — 取消会议
276
+
277
+ ```bash
278
+ tmeet meeting cancel --meeting-id <会议ID> [选项]
279
+ ```
280
+
281
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
282
+ |------|------|:----:|--------|------|
283
+ | `--meeting-id` | string | ✅ | — | 会议 ID |
284
+ | `--sub-meeting-id` | string | — | — | 周期性会议子会议 ID,取消周期性会议的某个子会议时需要传入 |
285
+ | `--meeting-type` | int | — | `0` | 会议类型:`0`-普通会议,`1`-周期性会议(取消整场周期性会议时传 `1`) |
286
+
287
+ **示例:**
288
+
289
+ ```bash
290
+ # 取消普通会议
291
+ tmeet meeting cancel --meeting-id "6953553464429888300"
292
+
293
+ # 取消周期性会议中的某个子会议
294
+ tmeet meeting cancel \
295
+ --meeting-id "6953553464429888300" \
296
+ --sub-meeting-id "100001"
297
+
298
+ # 取消整场周期性会议
299
+ tmeet meeting cancel \
300
+ --meeting-id "6953553464429888300" \
301
+ --meeting-type 1
302
+ ```
303
+
304
+ ---
305
+
306
+ #### `meeting list` — 查询会议列表
307
+
308
+ 查询进行中或即将开始的会议列表。
309
+
310
+ ```bash
311
+ tmeet meeting list [选项]
312
+ ```
313
+
314
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
315
+ |------|------|:----:|--------|------|
316
+ | `--start` | string | — | — | 分页查询起始时间值,ISO 8601,如 `2026-03-12T15:00+08:00` |
317
+ | `--end` | string | — | — | 分页查询结束时间值,ISO 8601,如 `2026-03-12T15:00+08:00` |
318
+ | `--show-all-sub` | int | — | `0` | 是否展示全部子会议:`0`-不展示,`1`-展示 |
319
+
320
+ **示例:**
321
+
322
+ ```bash
323
+ tmeet meeting list
324
+ tmeet meeting list \
325
+ --start "2026-04-01T00:00+08:00" \
326
+ --end "2026-04-30T23:59+08:00" \
327
+ --show-all-sub 1
328
+ ```
329
+
330
+ ---
331
+
332
+ #### `meeting list-ended` — 查询已结束会议列表
333
+
334
+ 查询历史已结束的会议列表,支持按时间范围分页查询。
335
+
336
+ ```bash
337
+ tmeet meeting list-ended [选项]
338
+ ```
339
+
340
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
341
+ |------|------|:----:|--------|------|
342
+ | `--start` | string | — | — | 查询开始时间,ISO 8601,如 `2026-03-12T15:00+08:00` |
343
+ | `--end` | string | — | — | 查询结束时间,ISO 8601,如 `2026-03-12T15:00+08:00` |
344
+ | `--page` | int | — | `1` | 页码,从 1 开始 |
345
+ | `--page-size` | int | — | `10` | 每页大小,默认 10,最大 20 |
346
+
347
+ **示例:**
348
+
349
+ ```bash
350
+ # 查询本月已结束的会议
351
+ tmeet meeting list-ended \
352
+ --start "2026-04-01T00:00+08:00" \
353
+ --end "2026-04-30T23:59+08:00"
354
+
355
+ # 分页查询
356
+ tmeet meeting list-ended \
357
+ --start "2026-04-01T00:00+08:00" \
358
+ --end "2026-04-30T23:59+08:00" \
359
+ --page 2 --page-size 20
360
+ ```
361
+
362
+ ---
363
+
364
+ #### `meeting invitees-list` — 查询受邀成员
365
+
366
+ ```bash
367
+ tmeet meeting invitees-list --meeting-id <会议ID> [选项]
368
+ ```
369
+
370
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
371
+ |------|------|:----:|--------|------|
372
+ | `--meeting-id` | string | ✅ | — | 会议 ID |
373
+ | `--pos` | int | — | `0` | 分页获取受邀成员列表的查询起始位置值 |
374
+
375
+ **示例:**
376
+
377
+ ```bash
378
+ tmeet meeting invitees-list --meeting-id "6953553464429888300"
379
+ tmeet meeting invitees-list --meeting-id "6953553464429888300" --pos 20
380
+ ```
381
+
382
+ ---
383
+
384
+ ### record — 录制管理
385
+
386
+ #### `record list` — 查询录制列表
387
+
388
+ 以下三组参数**任选其一**(均不传则报错):
389
+ - `--start` + `--end`(时间范围)
390
+ - `--meeting-id`(会议 ID)
391
+ - `--meeting-code`(会议号)
392
+
393
+ ```bash
394
+ tmeet record list (--start <开始时间> --end <结束时间> | --meeting-id <ID> | --meeting-code <会议号>) [选项]
395
+ ```
396
+
397
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
398
+ |------|------|:----:|--------|------|
399
+ | `--start` | string | 三选一 | — | 查询开始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
400
+ | `--end` | string | 三选一 | — | 查询结束时间,ISO 8601,如 `2026-03-12T14:00+08:00`(与 `--start` 配合使用) |
401
+ | `--meeting-id` | string | 三选一 | — | 会议 ID |
402
+ | `--meeting-code` | string | 三选一 | — | 会议号 |
403
+ | `--page` | int | — | `1` | 页码,从 1 开始 |
404
+ | `--page-size` | int | — | `10` | 页大小 |
405
+
406
+ **示例:**
407
+
408
+ ```bash
409
+ # 按时间范围查询
410
+ tmeet record list \
411
+ --start "2026-04-01T00:00+08:00" \
412
+ --end "2026-04-30T23:59+08:00" \
413
+ --page 1 --page-size 20
414
+
415
+ # 按会议 ID 查询
416
+ tmeet record list --meeting-id "6953553464429888300"
417
+
418
+ # 按会议号查询
419
+ tmeet record list --meeting-code "931945029"
420
+ ```
421
+
422
+ ---
423
+
424
+ #### `record address` — 获取录制下载地址
425
+
426
+ ```bash
427
+ tmeet record address --meeting-record-id <录制ID> [选项]
428
+ ```
429
+
430
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
431
+ |------|------|:----:|--------|------|
432
+ | `--meeting-record-id` | string | ✅ | — | 会议录制 ID |
433
+ | `--page` | int | — | `1` | 页码,从 1 开始 |
434
+ | `--page-size` | int | — | `50` | 每页大小 |
435
+
436
+ **示例:**
437
+
438
+ ```bash
439
+ tmeet record address --meeting-record-id "record_abc123"
440
+ ```
441
+
442
+ ---
443
+
444
+ #### `record smart-minutes` — 获取智能纪要
445
+
446
+ ```bash
447
+ tmeet record smart-minutes --record-file-id <文件ID> [选项]
448
+ ```
449
+
450
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
451
+ |------|------|:----:|--------|------|
452
+ | `--record-file-id` | string | ✅ | — | 录制文件 ID |
453
+ | `--lang` | string | — | `default` | 翻译语言选择:`default`-原文(不翻译),`zh`-简体中文,`en`-英文,`ja`-日语 |
454
+ | `--pwd` | string | — | — | 录制文件访问密码 |
455
+
456
+ **示例:**
457
+
458
+ ```bash
459
+ tmeet record smart-minutes --record-file-id "file_abc123" --lang zh
460
+ ```
461
+
462
+ ---
463
+
464
+ #### `record transcript-get` — 获取转写详情
465
+
466
+ ```bash
467
+ tmeet record transcript-get --record-file-id <文件ID> [选项]
468
+ ```
469
+
470
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
471
+ |------|------|:----:|--------|------|
472
+ | `--record-file-id` | string | ✅ | — | 录制文件 ID |
473
+ | `--meeting-id` | string | — | — | 会议 ID |
474
+ | `--pid` | string | — | — | 查询的起始段落 ID |
475
+ | `--limit` | string | — | — | 查询的段落数 |
476
+
477
+ **示例:**
478
+
479
+ ```bash
480
+ tmeet record transcript-get --record-file-id "file_abc123" --pid "para_001" --limit "50"
481
+ ```
482
+
483
+ ---
484
+
485
+ #### `record transcript-paragraphs` — 获取转写段落列表
486
+
487
+ ```bash
488
+ tmeet record transcript-paragraphs --record-file-id <文件ID> [选项]
489
+ ```
490
+
491
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
492
+ |------|------|:----:|--------|------|
493
+ | `--record-file-id` | string | ✅ | — | 录制文件 ID |
494
+ | `--meeting-id` | string | — | — | 会议 ID |
495
+
496
+ **示例:**
497
+
498
+ ```bash
499
+ tmeet record transcript-paragraphs --record-file-id "file_abc123"
500
+ ```
501
+
502
+ ---
503
+
504
+ #### `record transcript-search` — 搜索转写内容
505
+
506
+ ```bash
507
+ tmeet record transcript-search --record-file-id <文件ID> --text <关键词> [选项]
508
+ ```
509
+
510
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
511
+ |------|------|:----:|--------|------|
512
+ | `--record-file-id` | string | ✅ | — | 录制文件 ID |
513
+ | `--text` | string | ✅ | — | 搜索关键词 |
514
+ | `--meeting-id` | string | — | — | 会议 ID |
515
+
516
+ **示例:**
517
+
518
+ ```bash
519
+ tmeet record transcript-search --record-file-id "file_abc123" --text "季度目标"
520
+ ```
521
+
522
+ ---
523
+
524
+ ### report — 参会报告
525
+
526
+ #### `report participants` — 查询参会人列表
527
+
528
+ ```bash
529
+ tmeet report participants --meeting-id <会议ID> [选项]
530
+ ```
531
+
532
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
533
+ |------|------|:----:|--------|------|
534
+ | `--meeting-id` | string | ✅ | — | 会议 ID |
535
+ | `--sub-meeting-id` | string | — | — | 周期性会议子会议 ID |
536
+ | `--pos` | int | — | `0` | 分页获取参会成员列表的查询起始位置值 |
537
+ | `--size` | int | — | `20` | 拉取参会成员条数,目前每页支持最大 100 条 |
538
+ | `--start` | string | — | — | 查询起始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
539
+ | `--end` | string | — | — | 查询结束时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
540
+
541
+ **示例:**
542
+
543
+ ```bash
544
+ tmeet report participants --meeting-id "6953553464429888300" --size 50
545
+ tmeet report participants \
546
+ --meeting-id "6953553464429888300" \
547
+ --start "2026-04-10T10:00+08:00" \
548
+ --end "2026-04-10T11:00+08:00"
549
+ ```
550
+
551
+ ---
552
+
553
+ #### `report waiting-room-log` — 查询等候室成员
554
+
555
+ ```bash
556
+ tmeet report waiting-room-log --meeting-id <会议ID> [选项]
557
+ ```
558
+
559
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
560
+ |------|------|:----:|--------|------|
561
+ | `--meeting-id` | string | ✅ | — | 会议 ID |
562
+ | `--page` | int | — | `1` | 页码,默认为 1 |
563
+ | `--page-size` | int | — | `20` | 每页数量,默认为 20 |
564
+
565
+ **示例:**
566
+
567
+ ```bash
568
+ tmeet report waiting-room-log --meeting-id "6953553464429888300" --page 1 --page-size 50
569
+ ```
570
+
571
+ ---
572
+
573
+ ## 配置说明
574
+
575
+ 配置文件默认存储在 `~/.tmeet/` 目录下,支持通过环境变量覆盖:
576
+
577
+ | 环境变量 | 说明 | 默认值 |
578
+ |----------|------|--------|
579
+ | `TMEET_CLI_CONFIG_DIR` | 配置文件目录 | `~/.tmeet/` |
580
+ | `TMEET_CLI_DATA_DIR` | 加密数据目录 | 平台相关默认路径 |
581
+
582
+ > **注意**:所有时间参数均使用 **ISO 8601** 格式,例如 `2026-04-10T14:00+08:00`。响应中的时间戳字段会自动转换为 ISO 8601 格式展示。
583
+
584
+ ## 贡献指南
585
+
586
+ 欢迎提交 Issue 和 Pull Request,请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。
587
+
588
+ ## 安全
589
+
590
+ 如发现安全漏洞,请参阅 [SECURITY.md](SECURITY.md) 了解如何私下报告。
591
+
592
+ ## 许可证
593
+
594
+ 本项目基于 [MIT License](LICENSE) 开源。
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@tencentcloud/tmeet",
3
+ "version": "v1.0.0",
4
+ "description": "腾讯会议 CLI 工具",
5
+ "bin": {
6
+ "tmeet": "./scripts/tmeet.js"
7
+ },
8
+ "scripts": {
9
+ "postinstall": "node scripts/cleanup.js"
10
+ },
11
+ "files": [
12
+ "scripts/",
13
+ "dist/"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/TencentCloud/tencentmeeting-cli.git"
18
+ },
19
+ "engines": {
20
+ "node": ">=14"
21
+ },
22
+ "license": "MIT"
23
+ }
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env node
2
+
3
+ "use strict";
4
+
5
+ const { execFileSync } = require("child_process");
6
+ const path = require("path");
7
+ const fs = require("fs");
8
+ const os = require("os");
9
+
10
+ // ── 平台 → 产物文件名映射 ────────────────────────────────────────────────────
11
+ const PLATFORM_MAP = {
12
+ "darwin-x64": "tmeet-macOS-Intel",
13
+ "darwin-arm64": "tmeet-macOS-AppleSilicon",
14
+ "linux-x64": "tmeet-Linux-x86_64",
15
+ "linux-arm64": "tmeet-Linux-ARM64",
16
+ "win32-x64": "tmeet-Windows-x86_64.exe",
17
+ };
18
+
19
+ const platform = os.platform();
20
+ const arch = os.arch();
21
+ const key = `${platform}-${arch}`;
22
+ const binaryName = PLATFORM_MAP[key];
23
+
24
+ if (!binaryName) {
25
+ process.exit(1);
26
+ }
27
+
28
+ const binaryPath = path.join(__dirname, "..", "dist", binaryName);
29
+
30
+ if (!fs.existsSync(binaryPath)) {
31
+ // 二进制不存在,无需清理
32
+ process.exit(0);
33
+ }
34
+
35
+ // 确保可执行权限(Windows 不需要)
36
+ if (platform !== "win32") {
37
+ fs.chmodSync(binaryPath, 0o755);
38
+ }
39
+
40
+ // 执行 tmeet auth logout 清理登录态
41
+ try {
42
+ execFileSync(binaryPath, ["auth", "logout"], { stdio: "inherit" });
43
+ } catch (err) {
44
+ process.exit(0);
45
+ }
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+
3
+ "use strict";
4
+
5
+ // ── Node.js 最低版本检测(必须用 ES5 语法,确保低版本也能解析)────────────
6
+ var nodeMajor = parseInt(process.versions.node.split(".")[0], 10);
7
+ if (nodeMajor < 14) {
8
+ var _platform = process.platform;
9
+ var upgradeHint = "";
10
+ if (_platform === "darwin") {
11
+ upgradeHint =
12
+ " # 推荐使用 nvm(Node 版本管理器):\n" +
13
+ " curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\n" +
14
+ " nvm install 18\n" +
15
+ " nvm use 18\n\n" +
16
+ " # 或使用 Homebrew:\n" +
17
+ " brew install node";
18
+ } else if (_platform === "linux") {
19
+ upgradeHint =
20
+ " # 推荐使用 nvm(Node 版本管理器):\n" +
21
+ " curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\n" +
22
+ " nvm install 18\n" +
23
+ " nvm use 18";
24
+ } else {
25
+ upgradeHint = " 请访问 https://nodejs.org/zh-cn/download 下载最新版本";
26
+ }
27
+ console.error(
28
+ "[tmeet] Node.js 版本过低:当前 v" + process.versions.node +
29
+ ",需要 v14 或更高版本。\n\n" +
30
+ "升级方式:\n" + upgradeHint
31
+ );
32
+ process.exit(1);
33
+ }
34
+
35
+ const { execFileSync } = require("child_process");
36
+ const path = require("path");
37
+ const fs = require("fs");
38
+ const os = require("os");
39
+
40
+ // ── 平台 → 产物文件名映射 ────────────────────────────────────────────────────
41
+ const PLATFORM_MAP = {
42
+ "darwin-x64": "tmeet-macOS-Intel",
43
+ "darwin-arm64": "tmeet-macOS-AppleSilicon",
44
+ "linux-x64": "tmeet-Linux-x86_64",
45
+ "linux-arm64": "tmeet-Linux-ARM64",
46
+ "win32-x64": "tmeet-Windows-x86_64.exe",
47
+ };
48
+
49
+ const platform = os.platform(); // darwin | linux | win32
50
+ const arch = os.arch(); // x64 | arm64
51
+
52
+ const key = `${platform}-${arch}`;
53
+ const binaryName = PLATFORM_MAP[key];
54
+
55
+ if (!binaryName) {
56
+ console.error(`[tmeet] 不支持的平台: ${platform}/${arch}`);
57
+ console.error(`支持的平台: ${Object.keys(PLATFORM_MAP).join(", ")}`);
58
+ process.exit(1);
59
+ }
60
+
61
+ const binaryPath = path.join(__dirname, "..", "dist", binaryName);
62
+
63
+ if (!fs.existsSync(binaryPath)) {
64
+ console.error(`[tmeet] 找不到可执行文件: ${binaryPath}`);
65
+ console.error("请先运行 bash build.sh 编译产物");
66
+ process.exit(1);
67
+ }
68
+
69
+ // 确保可执行权限(Windows 不需要)
70
+ if (platform !== "win32") {
71
+ fs.chmodSync(binaryPath, 0o755);
72
+ }
73
+
74
+ // 透传所有参数并继承 stdio,保持与直接调用二进制完全一致的体验
75
+ try {
76
+ execFileSync(binaryPath, process.argv.slice(2), { stdio: "inherit" });
77
+ } catch (err) {
78
+ process.exit(err.status != null ? err.status : 1);
79
+ }