twentythree-cli 1.3.4 → 1.3.6
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/dist/commands/app/add.cjs +5 -0
- package/dist/commands/video/list.cjs +145 -10
- package/dist/commands/video/section/check-generate-available.cjs +67 -0
- package/dist/commands/webinar/create.cjs +5 -0
- package/dist/commands/webinar/repeat.cjs +5 -0
- package/dist/commands/webinar/speaker/add.cjs +25 -15
- package/dist/commands/webinar/speaker/update.cjs +18 -0
- package/dist/commands/webinar/update.cjs +7 -1
- package/docs/commands/action/add.md +1 -1
- package/docs/commands/action/delete.md +1 -1
- package/docs/commands/action/exclude.md +1 -1
- package/docs/commands/action/get.md +1 -1
- package/docs/commands/action/include.md +1 -1
- package/docs/commands/action/list.md +1 -1
- package/docs/commands/action/types.md +1 -1
- package/docs/commands/action/update.md +1 -1
- package/docs/commands/action/upload.md +1 -1
- package/docs/commands/action.md +9 -9
- package/docs/commands/analytics/conversions.md +3 -3
- package/docs/commands/analytics/live.md +9 -9
- package/docs/commands/analytics/usage.md +18 -18
- package/docs/commands/analytics/video.md +12 -12
- package/docs/commands/analytics.md +42 -42
- package/docs/commands/app/add.md +3 -2
- package/docs/commands/app/delete.md +1 -1
- package/docs/commands/app/list.md +1 -1
- package/docs/commands/app/remove-thumbnail.md +1 -1
- package/docs/commands/app/set-thumbnail.md +1 -1
- package/docs/commands/app/update.md +1 -1
- package/docs/commands/app.md +6 -6
- package/docs/commands/audience/companies.md +1 -1
- package/docs/commands/audience/field.md +4 -4
- package/docs/commands/audience/funnel.md +1 -1
- package/docs/commands/audience/identity-sources.md +1 -1
- package/docs/commands/audience/list-collectors.md +1 -1
- package/docs/commands/audience/list.md +1 -1
- package/docs/commands/audience/metrics.md +1 -1
- package/docs/commands/audience/register.md +1 -1
- package/docs/commands/audience/remove.md +1 -1
- package/docs/commands/audience/search.md +1 -1
- package/docs/commands/audience/timelines.md +1 -1
- package/docs/commands/audience/unregister.md +1 -1
- package/docs/commands/audience.md +15 -15
- package/docs/commands/auth/credentials.md +1 -1
- package/docs/commands/auth/status.md +1 -1
- package/docs/commands/auth/switch.md +1 -1
- package/docs/commands/auth.md +3 -3
- package/docs/commands/autocomplete.md +1 -1
- package/docs/commands/category/create.md +1 -1
- package/docs/commands/category/delete.md +1 -1
- package/docs/commands/category/list.md +1 -1
- package/docs/commands/category/update.md +1 -1
- package/docs/commands/category.md +5 -5
- package/docs/commands/collector/exclude.md +1 -1
- package/docs/commands/collector/include.md +1 -1
- package/docs/commands/collector/list.md +1 -1
- package/docs/commands/collector.md +3 -3
- package/docs/commands/comment/add.md +1 -1
- package/docs/commands/comment/clone.md +1 -1
- package/docs/commands/comment/delete.md +1 -1
- package/docs/commands/comment/list.md +1 -1
- package/docs/commands/comment/promote.md +1 -1
- package/docs/commands/comment/reaction.md +3 -3
- package/docs/commands/comment/set-order.md +1 -1
- package/docs/commands/comment/update.md +1 -1
- package/docs/commands/comment.md +10 -10
- package/docs/commands/doctor.md +1 -1
- package/docs/commands/openupload/list.md +1 -1
- package/docs/commands/openupload/update-file.md +1 -1
- package/docs/commands/openupload/upload-file.md +1 -1
- package/docs/commands/openupload.md +3 -3
- package/docs/commands/player/delete.md +1 -1
- package/docs/commands/player/embed-versions.md +1 -1
- package/docs/commands/player/embed.md +1 -1
- package/docs/commands/player/list.md +1 -1
- package/docs/commands/player/remove-thumbnail.md +1 -1
- package/docs/commands/player/set-thumbnail.md +1 -1
- package/docs/commands/player/styles.md +1 -1
- package/docs/commands/player/update.md +1 -1
- package/docs/commands/player.md +8 -8
- package/docs/commands/poll/add.md +1 -1
- package/docs/commands/poll/answer.md +1 -1
- package/docs/commands/poll/list.md +1 -1
- package/docs/commands/poll/remove.md +1 -1
- package/docs/commands/poll/set-options.md +1 -1
- package/docs/commands/poll/update.md +1 -1
- package/docs/commands/poll.md +6 -6
- package/docs/commands/presentation/page.md +1 -1
- package/docs/commands/presentation/setting.md +2 -2
- package/docs/commands/presentation.md +3 -3
- package/docs/commands/protection/protect.md +1 -1
- package/docs/commands/protection/unprotect.md +1 -1
- package/docs/commands/protection/verify.md +1 -1
- package/docs/commands/protection.md +3 -3
- package/docs/commands/seo/get.md +1 -1
- package/docs/commands/seo/status.md +1 -1
- package/docs/commands/seo/update.md +1 -1
- package/docs/commands/seo.md +3 -3
- package/docs/commands/session/get-token.md +1 -1
- package/docs/commands/session/redeem-token.md +1 -1
- package/docs/commands/session.md +2 -2
- package/docs/commands/setting/update.md +1 -1
- package/docs/commands/setting.md +1 -1
- package/docs/commands/site/get.md +1 -1
- package/docs/commands/site/search.md +1 -1
- package/docs/commands/site.md +2 -2
- package/docs/commands/spot/check.md +1 -1
- package/docs/commands/spot/create.md +1 -1
- package/docs/commands/spot/delete.md +1 -1
- package/docs/commands/spot/list.md +1 -1
- package/docs/commands/spot/reset-version.md +1 -1
- package/docs/commands/spot/set-videos.md +1 -1
- package/docs/commands/spot/update.md +1 -1
- package/docs/commands/spot.md +7 -7
- package/docs/commands/tag/list.md +1 -1
- package/docs/commands/tag/related.md +1 -1
- package/docs/commands/tag.md +2 -2
- package/docs/commands/thumbnail/add.md +1 -1
- package/docs/commands/thumbnail/data.md +1 -1
- package/docs/commands/thumbnail/delete.md +1 -1
- package/docs/commands/thumbnail/duplicate.md +1 -1
- package/docs/commands/thumbnail/file.md +3 -3
- package/docs/commands/thumbnail/list.md +1 -1
- package/docs/commands/thumbnail/preview-scss.md +1 -1
- package/docs/commands/thumbnail/update.md +1 -1
- package/docs/commands/thumbnail.md +11 -11
- package/docs/commands/user/create.md +1 -1
- package/docs/commands/user/get-login-token.md +1 -1
- package/docs/commands/user/get.md +1 -1
- package/docs/commands/user/list.md +1 -1
- package/docs/commands/user/redeem-login-token.md +1 -1
- package/docs/commands/user/send-invitation.md +1 -1
- package/docs/commands/user/tokens.md +1 -1
- package/docs/commands/user/update.md +1 -1
- package/docs/commands/user.md +8 -8
- package/docs/commands/video/delete.md +1 -1
- package/docs/commands/video/frame.md +1 -1
- package/docs/commands/video/get.md +1 -1
- package/docs/commands/video/list.md +42 -4
- package/docs/commands/video/replace.md +1 -1
- package/docs/commands/video/section.md +40 -7
- package/docs/commands/video/subtitle.md +12 -12
- package/docs/commands/video/transcoding-progress.md +1 -1
- package/docs/commands/video/update.md +1 -1
- package/docs/commands/video/upload.md +1 -1
- package/docs/commands/video.md +28 -28
- package/docs/commands/webhook/events.md +1 -1
- package/docs/commands/webhook/list.md +1 -1
- package/docs/commands/webhook/sample.md +1 -1
- package/docs/commands/webhook/subscribe.md +1 -1
- package/docs/commands/webhook/unsubscribe.md +1 -1
- package/docs/commands/webhook.md +5 -5
- package/docs/commands/webinar/attachment.md +4 -4
- package/docs/commands/webinar/clips.md +1 -1
- package/docs/commands/webinar/create.md +9 -8
- package/docs/commands/webinar/delete.md +1 -1
- package/docs/commands/webinar/highlights.md +1 -1
- package/docs/commands/webinar/list-formats.md +1 -1
- package/docs/commands/webinar/list.md +1 -1
- package/docs/commands/webinar/log.md +1 -1
- package/docs/commands/webinar/mail.md +7 -7
- package/docs/commands/webinar/metrics.md +1 -1
- package/docs/commands/webinar/queued-video.md +2 -2
- package/docs/commands/webinar/recording.md +4 -4
- package/docs/commands/webinar/repeat.md +4 -3
- package/docs/commands/webinar/room.md +4 -4
- package/docs/commands/webinar/section.md +4 -4
- package/docs/commands/webinar/series.md +12 -12
- package/docs/commands/webinar/speaker.md +34 -25
- package/docs/commands/webinar/transcription.md +4 -4
- package/docs/commands/webinar/update.md +11 -10
- package/docs/commands/webinar/upload-image.md +1 -1
- package/docs/commands/webinar.md +67 -67
- package/docs/commands/workspace/list.md +1 -1
- package/docs/commands/workspace/use.md +1 -1
- package/docs/commands/workspace.md +2 -2
- package/oclif.manifest.json +2914 -2561
- package/package.json +1 -1
|
@@ -37,6 +37,10 @@ var AppAdd = class AppAdd extends require_lib_base_command.AuthenticatedCommand
|
|
|
37
37
|
type: _oclif_core.Flags.string({
|
|
38
38
|
description: "App type",
|
|
39
39
|
required: false
|
|
40
|
+
}),
|
|
41
|
+
"player-id": _oclif_core.Flags.integer({
|
|
42
|
+
description: "Add a contextual player being forked",
|
|
43
|
+
required: false
|
|
40
44
|
})
|
|
41
45
|
};
|
|
42
46
|
static args = {};
|
|
@@ -53,6 +57,7 @@ var AppAdd = class AppAdd extends require_lib_base_command.AuthenticatedCommand
|
|
|
53
57
|
if (flags.description !== void 0) body.description = flags.description;
|
|
54
58
|
if (flags.style !== void 0) body.style = flags.style;
|
|
55
59
|
if (flags.type !== void 0) body.type = flags.type;
|
|
60
|
+
if (flags["player-id"] !== void 0) body.player_id = flags["player-id"];
|
|
56
61
|
const { data: createData, error: createError } = await this.apiClient.POST("/app/add", {
|
|
57
62
|
body,
|
|
58
63
|
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
@@ -7,14 +7,16 @@ let _oclif_core = require("@oclif/core");
|
|
|
7
7
|
let chalk = require("chalk");
|
|
8
8
|
chalk = require_runtime.__toESM(chalk);
|
|
9
9
|
//#region src/commands/video/list.ts
|
|
10
|
-
/**
|
|
11
|
-
* Video list command — lists all videos in the active workspace with auto-pagination.
|
|
12
|
-
* Renders a cli-table3 table with columns: ID, Title, Duration, Status, Published, Updated.
|
|
13
|
-
* Supports --json output with { ok, data, summary, breadcrumbs } shape (CLI-01).
|
|
14
|
-
*/
|
|
15
10
|
var VideoList = class VideoList extends require_lib_base_command.AuthenticatedCommand {
|
|
16
11
|
static description = "List videos in the active workspace";
|
|
17
|
-
static examples = [
|
|
12
|
+
static examples = [
|
|
13
|
+
"<%= config.bin %> video list",
|
|
14
|
+
"<%= config.bin %> video list --json",
|
|
15
|
+
"<%= config.bin %> video list --search \"intro\" --order-by views --order desc",
|
|
16
|
+
"<%= config.bin %> video list --album-id 42 --include-unpublished",
|
|
17
|
+
"<%= config.bin %> video list --user-id me --limit 10",
|
|
18
|
+
"<%= config.bin %> video list --after-time 2024-01-01T00:00:00Z --fields photo_id,title"
|
|
19
|
+
];
|
|
18
20
|
static enableJsonFlag = true;
|
|
19
21
|
static agentMetadata = {
|
|
20
22
|
api_endpoint: "GET /photo/list",
|
|
@@ -38,11 +40,121 @@ var VideoList = class VideoList extends require_lib_base_command.AuthenticatedCo
|
|
|
38
40
|
description: "Maximum number of videos to return (default: all)",
|
|
39
41
|
required: false
|
|
40
42
|
}),
|
|
43
|
+
search: _oclif_core.Flags.string({
|
|
44
|
+
description: "Search by title, description, or tags",
|
|
45
|
+
required: false
|
|
46
|
+
}),
|
|
47
|
+
"album-id": _oclif_core.Flags.string({
|
|
48
|
+
description: "Filter to videos in one or more categories (comma-separated IDs)",
|
|
49
|
+
required: false
|
|
50
|
+
}),
|
|
51
|
+
"user-id": _oclif_core.Flags.string({
|
|
52
|
+
description: "Filter to videos uploaded by a specific user (use \"me\" for the authenticated user)",
|
|
53
|
+
required: false
|
|
54
|
+
}),
|
|
55
|
+
"photo-id": _oclif_core.Flags.integer({
|
|
56
|
+
description: "Limit results to a single video by its ID",
|
|
57
|
+
required: false
|
|
58
|
+
}),
|
|
59
|
+
"live-id": _oclif_core.Flags.integer({
|
|
60
|
+
description: "Filter to videos associated with a specific webinar",
|
|
61
|
+
required: false
|
|
62
|
+
}),
|
|
63
|
+
tag: _oclif_core.Flags.string({
|
|
64
|
+
description: "Filter to videos with a specific tag",
|
|
65
|
+
required: false
|
|
66
|
+
}),
|
|
67
|
+
tags: _oclif_core.Flags.string({
|
|
68
|
+
description: "Space-separated list of tags to filter by",
|
|
69
|
+
required: false
|
|
70
|
+
}),
|
|
71
|
+
"tag-mode": _oclif_core.Flags.string({
|
|
72
|
+
description: "How to combine tag filters: \"and\" requires all tags to match, \"or\" requires any",
|
|
73
|
+
options: ["and", "or"],
|
|
74
|
+
required: false
|
|
75
|
+
}),
|
|
76
|
+
"order-by": _oclif_core.Flags.string({
|
|
77
|
+
description: "Order results by this field",
|
|
78
|
+
options: [
|
|
79
|
+
"uploaded",
|
|
80
|
+
"published",
|
|
81
|
+
"created",
|
|
82
|
+
"creation",
|
|
83
|
+
"taken",
|
|
84
|
+
"title",
|
|
85
|
+
"views",
|
|
86
|
+
"comments",
|
|
87
|
+
"rating",
|
|
88
|
+
"numratings",
|
|
89
|
+
"video_length",
|
|
90
|
+
"words",
|
|
91
|
+
"related",
|
|
92
|
+
"posted",
|
|
93
|
+
"rank",
|
|
94
|
+
"default-published"
|
|
95
|
+
],
|
|
96
|
+
required: false
|
|
97
|
+
}),
|
|
98
|
+
order: _oclif_core.Flags.string({
|
|
99
|
+
description: "Sort direction",
|
|
100
|
+
options: ["asc", "desc"],
|
|
101
|
+
required: false
|
|
102
|
+
}),
|
|
103
|
+
"before-time": _oclif_core.Flags.string({
|
|
104
|
+
description: "Filter to videos uploaded before this timestamp (ISO 8601)",
|
|
105
|
+
required: false
|
|
106
|
+
}),
|
|
107
|
+
"after-time": _oclif_core.Flags.string({
|
|
108
|
+
description: "Filter to videos uploaded after this timestamp (ISO 8601)",
|
|
109
|
+
required: false
|
|
110
|
+
}),
|
|
111
|
+
year: _oclif_core.Flags.integer({
|
|
112
|
+
description: "Filter to videos from a specific year",
|
|
113
|
+
required: false
|
|
114
|
+
}),
|
|
115
|
+
month: _oclif_core.Flags.integer({
|
|
116
|
+
description: "Filter to videos from a specific month (1–12, requires --year)",
|
|
117
|
+
required: false
|
|
118
|
+
}),
|
|
119
|
+
day: _oclif_core.Flags.integer({
|
|
120
|
+
description: "Filter to videos from a specific day (1–31, requires --year and --month)",
|
|
121
|
+
required: false
|
|
122
|
+
}),
|
|
123
|
+
published: _oclif_core.Flags.boolean({
|
|
124
|
+
description: "Filter by published status",
|
|
125
|
+
allowNo: true,
|
|
126
|
+
required: false
|
|
127
|
+
}),
|
|
128
|
+
promoted: _oclif_core.Flags.boolean({
|
|
129
|
+
description: "Filter to promoted videos only",
|
|
130
|
+
allowNo: true,
|
|
131
|
+
required: false
|
|
132
|
+
}),
|
|
133
|
+
unalbummed: _oclif_core.Flags.boolean({
|
|
134
|
+
description: "Filter to videos not assigned to any category",
|
|
135
|
+
required: false
|
|
136
|
+
}),
|
|
41
137
|
"include-unpublished": _oclif_core.Flags.boolean({
|
|
42
138
|
description: "Include unpublished videos in the results",
|
|
43
139
|
allowNo: true,
|
|
44
140
|
required: false
|
|
45
141
|
}),
|
|
142
|
+
"include-stats": _oclif_core.Flags.boolean({
|
|
143
|
+
description: "Include per-video performance statistics (view count, play rate, engagement)",
|
|
144
|
+
required: false
|
|
145
|
+
}),
|
|
146
|
+
"include-sections-count": _oclif_core.Flags.boolean({
|
|
147
|
+
description: "Include the number of chapters for each video",
|
|
148
|
+
required: false
|
|
149
|
+
}),
|
|
150
|
+
"include-user-group": _oclif_core.Flags.boolean({
|
|
151
|
+
description: "Include the user group assignment for each video",
|
|
152
|
+
required: false
|
|
153
|
+
}),
|
|
154
|
+
fields: _oclif_core.Flags.string({
|
|
155
|
+
description: "Comma-separated list of fields to return in the API response",
|
|
156
|
+
required: false
|
|
157
|
+
}),
|
|
46
158
|
"include-unpublished-p": _oclif_core.Flags.string({
|
|
47
159
|
hidden: true,
|
|
48
160
|
required: false
|
|
@@ -53,11 +165,34 @@ var VideoList = class VideoList extends require_lib_base_command.AuthenticatedCo
|
|
|
53
165
|
const { flags } = await this.parse(VideoList);
|
|
54
166
|
this.printWorkspaceHeader();
|
|
55
167
|
const allVideos = await require_lib_pagination.fetchAllPages(async (page, size) => {
|
|
56
|
-
const
|
|
168
|
+
const query = {
|
|
57
169
|
p: page,
|
|
58
|
-
size
|
|
59
|
-
|
|
60
|
-
|
|
170
|
+
size
|
|
171
|
+
};
|
|
172
|
+
if (flags.search !== void 0) query.search = flags.search;
|
|
173
|
+
if (flags["album-id"] !== void 0) query.album_id = flags["album-id"];
|
|
174
|
+
if (flags["user-id"] !== void 0) query.user_id = flags["user-id"];
|
|
175
|
+
if (flags["photo-id"] !== void 0) query.photo_id = flags["photo-id"];
|
|
176
|
+
if (flags["live-id"] !== void 0) query.live_id = flags["live-id"];
|
|
177
|
+
if (flags.tag !== void 0) query.tag = flags.tag;
|
|
178
|
+
if (flags.tags !== void 0) query.tags = flags.tags;
|
|
179
|
+
if (flags["tag-mode"] !== void 0) query.tag_mode = flags["tag-mode"];
|
|
180
|
+
if (flags["order-by"] !== void 0) query.orderby = flags["order-by"];
|
|
181
|
+
if (flags.order !== void 0) query.order = flags.order;
|
|
182
|
+
if (flags["before-time"] !== void 0) query.before_time = flags["before-time"];
|
|
183
|
+
if (flags["after-time"] !== void 0) query.after_time = flags["after-time"];
|
|
184
|
+
if (flags.year !== void 0) query.year = flags.year;
|
|
185
|
+
if (flags.month !== void 0) query.month = flags.month;
|
|
186
|
+
if (flags.day !== void 0) query.day = flags.day;
|
|
187
|
+
if (flags.published !== void 0) query.published_p = flags.published;
|
|
188
|
+
if (flags.promoted !== void 0) query.promoted_p = flags.promoted;
|
|
189
|
+
if (flags.unalbummed) query.unalbummed_p = true;
|
|
190
|
+
if (flags["include-stats"]) query.include_stats_p = true;
|
|
191
|
+
if (flags["include-sections-count"]) query.include_number_of_sections_p = true;
|
|
192
|
+
if (flags["include-user-group"]) query.include_user_group_p = true;
|
|
193
|
+
if (flags.fields !== void 0) query.fields = flags.fields;
|
|
194
|
+
if (require_lib_output.parseBoolParam(flags["include-unpublished"], flags["include-unpublished-p"])) query.include_unpublished_p = "1";
|
|
195
|
+
const { data, error } = await this.apiClient.GET("/photo/list", { params: { query } });
|
|
61
196
|
if (error) this.error(require_lib_term_map.applyCliTerms(require_lib_output.formatApiError(error)), { exit: 1 });
|
|
62
197
|
const resp = data;
|
|
63
198
|
return {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_lib_term_map = require("../../../lib/term-map.cjs");
|
|
3
|
+
const require_lib_base_command = require("../../../lib/base-command.cjs");
|
|
4
|
+
const require_lib_output = require("../../../lib/output.cjs");
|
|
5
|
+
let _oclif_core = require("@oclif/core");
|
|
6
|
+
let chalk = require("chalk");
|
|
7
|
+
chalk = require_runtime.__toESM(chalk);
|
|
8
|
+
//#region src/commands/video/section/check-generate-available.ts
|
|
9
|
+
/**
|
|
10
|
+
* Video section check-generate-available command — checks whether AI chapter generation
|
|
11
|
+
* is available for a given video. Requires the workspace feature to be enabled and
|
|
12
|
+
* the video to have a transcript available.
|
|
13
|
+
*/
|
|
14
|
+
var VideoSectionCheckGenerateAvailable = class VideoSectionCheckGenerateAvailable extends require_lib_base_command.AuthenticatedCommand {
|
|
15
|
+
static description = "Check whether AI chapter generation is available for a video";
|
|
16
|
+
static examples = ["<%= config.bin %> video section check-generate-available 12345", "<%= config.bin %> video section check-generate-available 12345 --json"];
|
|
17
|
+
static enableJsonFlag = true;
|
|
18
|
+
static agentMetadata = {
|
|
19
|
+
api_endpoint: "POST /photo/section/check-generate-available",
|
|
20
|
+
auth_scope: "write",
|
|
21
|
+
output_shape: { type: "key-value" },
|
|
22
|
+
side_effects: "none"
|
|
23
|
+
};
|
|
24
|
+
static flags = {
|
|
25
|
+
...require_lib_base_command.AuthenticatedCommand.baseFlags,
|
|
26
|
+
fields: _oclif_core.Flags.string({
|
|
27
|
+
description: "Comma-separated list of fields to return in the API response",
|
|
28
|
+
required: false
|
|
29
|
+
})
|
|
30
|
+
};
|
|
31
|
+
static args = { id: _oclif_core.Args.string({
|
|
32
|
+
description: "Video ID",
|
|
33
|
+
required: true
|
|
34
|
+
}) };
|
|
35
|
+
async run() {
|
|
36
|
+
const { args, flags } = await this.parse(VideoSectionCheckGenerateAvailable);
|
|
37
|
+
this.printWorkspaceHeader();
|
|
38
|
+
const body = { photo_id: Number(args.id) };
|
|
39
|
+
if (flags.fields !== void 0) body.fields = flags.fields;
|
|
40
|
+
const { data, error } = await this.apiClient.POST("/photo/section/check-generate-available", {
|
|
41
|
+
body,
|
|
42
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
43
|
+
});
|
|
44
|
+
if (error) this.error(require_lib_term_map.applyCliTerms(require_lib_output.formatApiError(error)), { exit: 1 });
|
|
45
|
+
const available = data?.data?.section_generation_available_p;
|
|
46
|
+
if (this.jsonEnabled()) return require_lib_output.formatJsonOutput({
|
|
47
|
+
ok: true,
|
|
48
|
+
data,
|
|
49
|
+
summary: `AI chapter generation available: ${available}`,
|
|
50
|
+
breadcrumbs: [
|
|
51
|
+
{ domain: this.activeWorkspace.domain },
|
|
52
|
+
{
|
|
53
|
+
resource: "video",
|
|
54
|
+
id: args.id
|
|
55
|
+
},
|
|
56
|
+
{ resource: "section" }
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
if (available) this.log(chalk.default.green(`AI chapter generation is available for video ${args.id}`));
|
|
60
|
+
else {
|
|
61
|
+
this.log(chalk.default.yellow(`AI chapter generation is not available for video ${args.id}`));
|
|
62
|
+
this.log("Requires: workspace feature enabled and a transcript on the video");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
//#endregion
|
|
67
|
+
module.exports = VideoSectionCheckGenerateAvailable;
|
|
@@ -54,6 +54,10 @@ var WebinarCreate = class WebinarCreate extends require_lib_base_command.Authent
|
|
|
54
54
|
allowNo: true,
|
|
55
55
|
required: false
|
|
56
56
|
}),
|
|
57
|
+
"webinar-design-id": _oclif_core.Flags.integer({
|
|
58
|
+
description: "Assign a webinar design by ID to this webinar",
|
|
59
|
+
required: false
|
|
60
|
+
}),
|
|
57
61
|
"draft-p": _oclif_core.Flags.string({
|
|
58
62
|
hidden: true,
|
|
59
63
|
required: false
|
|
@@ -81,6 +85,7 @@ var WebinarCreate = class WebinarCreate extends require_lib_base_command.Authent
|
|
|
81
85
|
if (draftVal !== void 0) body.draft_p = draftVal ? 1 : 0;
|
|
82
86
|
const publishVal = require_lib_output.parseBoolParam(flags.publish, flags["published-p"]);
|
|
83
87
|
if (publishVal !== void 0) body.published_p = publishVal ? 1 : 0;
|
|
88
|
+
if (flags["webinar-design-id"] !== void 0) body.webinar_design_id = flags["webinar-design-id"];
|
|
84
89
|
const { data: createData, error: createError } = await this.apiClient.POST("/live/create", {
|
|
85
90
|
body,
|
|
86
91
|
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
@@ -20,6 +20,10 @@ var WebinarRepeat = class WebinarRepeat extends require_lib_base_command.Authent
|
|
|
20
20
|
date: _oclif_core.Flags.string({
|
|
21
21
|
description: "Schedule date/time for the new webinar (ISO 8601)",
|
|
22
22
|
required: true
|
|
23
|
+
}),
|
|
24
|
+
"webinar-design-id": _oclif_core.Flags.integer({
|
|
25
|
+
description: "Assign a webinar design by ID to the new webinar",
|
|
26
|
+
required: false
|
|
23
27
|
})
|
|
24
28
|
};
|
|
25
29
|
static args = { id: _oclif_core.Args.string({
|
|
@@ -39,6 +43,7 @@ var WebinarRepeat = class WebinarRepeat extends require_lib_base_command.Authent
|
|
|
39
43
|
live_id: Number(args.id),
|
|
40
44
|
schedule_start_time: flags.date
|
|
41
45
|
};
|
|
46
|
+
if (flags["webinar-design-id"] !== void 0) body.webinar_design_id = flags["webinar-design-id"];
|
|
42
47
|
const { data: repeatData, error: repeatError } = await this.apiClient.POST("/live/repeat", {
|
|
43
48
|
body,
|
|
44
49
|
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
@@ -31,7 +31,7 @@ var WebinarSpeakerAdd = class WebinarSpeakerAdd extends require_lib_base_command
|
|
|
31
31
|
required: false
|
|
32
32
|
}),
|
|
33
33
|
email: _oclif_core.Flags.string({
|
|
34
|
-
description: "Speaker email",
|
|
34
|
+
description: "Speaker email (required for WebRTC speakers)",
|
|
35
35
|
required: false
|
|
36
36
|
}),
|
|
37
37
|
title: _oclif_core.Flags.string({
|
|
@@ -41,6 +41,22 @@ var WebinarSpeakerAdd = class WebinarSpeakerAdd extends require_lib_base_command
|
|
|
41
41
|
description: _oclif_core.Flags.string({
|
|
42
42
|
description: "Speaker bio or description",
|
|
43
43
|
required: false
|
|
44
|
+
}),
|
|
45
|
+
"connection-type": _oclif_core.Flags.string({
|
|
46
|
+
description: "Speaker connection type",
|
|
47
|
+
options: [
|
|
48
|
+
"webrtc",
|
|
49
|
+
"gearmode",
|
|
50
|
+
"rtmp",
|
|
51
|
+
"whip",
|
|
52
|
+
"srt",
|
|
53
|
+
"url"
|
|
54
|
+
],
|
|
55
|
+
required: false
|
|
56
|
+
}),
|
|
57
|
+
"connection-type-pull-url": _oclif_core.Flags.string({
|
|
58
|
+
description: "Pull URL for connection types that support stream pull (whip, url)",
|
|
59
|
+
required: false
|
|
44
60
|
})
|
|
45
61
|
};
|
|
46
62
|
static args = { id: _oclif_core.Args.string({
|
|
@@ -58,27 +74,21 @@ var WebinarSpeakerAdd = class WebinarSpeakerAdd extends require_lib_base_command
|
|
|
58
74
|
this.printWorkspaceHeader();
|
|
59
75
|
let name = flags.name;
|
|
60
76
|
let email = flags.email;
|
|
61
|
-
if (
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
name = result;
|
|
66
|
-
}
|
|
67
|
-
if (!email) {
|
|
68
|
-
const result = await (0, _clack_prompts.text)({ message: "Speaker email" });
|
|
69
|
-
if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
|
|
70
|
-
email = result;
|
|
71
|
-
}
|
|
77
|
+
if (!name && !this.jsonEnabled()) {
|
|
78
|
+
const result = await (0, _clack_prompts.text)({ message: "Speaker name" });
|
|
79
|
+
if ((0, _clack_prompts.isCancel)(result)) process.exit(2);
|
|
80
|
+
name = result;
|
|
72
81
|
}
|
|
73
82
|
if (!name) this.error("--name is required in non-interactive mode", { exit: 1 });
|
|
74
|
-
if (!email) this.error("--email is required in non-interactive mode", { exit: 1 });
|
|
75
83
|
const body = {
|
|
76
84
|
live_id: Number(args.id),
|
|
77
|
-
name
|
|
78
|
-
email
|
|
85
|
+
name
|
|
79
86
|
};
|
|
87
|
+
if (email !== void 0) body.email = email;
|
|
80
88
|
if (flags.title !== void 0) body.title = flags.title;
|
|
81
89
|
if (flags.description !== void 0) body.description = flags.description;
|
|
90
|
+
if (flags["connection-type"] !== void 0) body.connection_type = flags["connection-type"];
|
|
91
|
+
if (flags["connection-type-pull-url"] !== void 0) body.connection_type_pull_url = flags["connection-type-pull-url"];
|
|
82
92
|
const { data, error } = await this.apiClient.POST("/live/speaker/add", {
|
|
83
93
|
body,
|
|
84
94
|
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
@@ -40,6 +40,22 @@ var WebinarSpeakerUpdate = class WebinarSpeakerUpdate extends require_lib_base_c
|
|
|
40
40
|
description: _oclif_core.Flags.string({
|
|
41
41
|
description: "Speaker bio or description",
|
|
42
42
|
required: false
|
|
43
|
+
}),
|
|
44
|
+
"connection-type": _oclif_core.Flags.string({
|
|
45
|
+
description: "Speaker connection type",
|
|
46
|
+
options: [
|
|
47
|
+
"webrtc",
|
|
48
|
+
"gearmode",
|
|
49
|
+
"rtmp",
|
|
50
|
+
"whip",
|
|
51
|
+
"srt",
|
|
52
|
+
"url"
|
|
53
|
+
],
|
|
54
|
+
required: false
|
|
55
|
+
}),
|
|
56
|
+
"connection-type-pull-url": _oclif_core.Flags.string({
|
|
57
|
+
description: "Pull URL for connection types that support stream pull (whip, url)",
|
|
58
|
+
required: false
|
|
43
59
|
})
|
|
44
60
|
};
|
|
45
61
|
static args = {
|
|
@@ -69,6 +85,8 @@ var WebinarSpeakerUpdate = class WebinarSpeakerUpdate extends require_lib_base_c
|
|
|
69
85
|
if (flags.email !== void 0) body.email = flags.email;
|
|
70
86
|
if (flags.title !== void 0) body.title = flags.title;
|
|
71
87
|
if (flags.description !== void 0) body.description = flags.description;
|
|
88
|
+
if (flags["connection-type"] !== void 0) body.connection_type = flags["connection-type"];
|
|
89
|
+
if (flags["connection-type-pull-url"] !== void 0) body.connection_type_pull_url = flags["connection-type-pull-url"];
|
|
72
90
|
const { data, error } = await this.apiClient.POST("/live/speaker/update", {
|
|
73
91
|
body,
|
|
74
92
|
headers: { "Content-Type": "application/x-www-form-urlencoded" }
|
|
@@ -67,6 +67,10 @@ var WebinarUpdate = class WebinarUpdate extends require_lib_base_command.Authent
|
|
|
67
67
|
],
|
|
68
68
|
required: false
|
|
69
69
|
}),
|
|
70
|
+
"webinar-design-id": _oclif_core.Flags.integer({
|
|
71
|
+
description: "Assign a webinar design by ID to this webinar",
|
|
72
|
+
required: false
|
|
73
|
+
}),
|
|
70
74
|
"draft-p": _oclif_core.Flags.string({
|
|
71
75
|
hidden: true,
|
|
72
76
|
required: false
|
|
@@ -100,7 +104,8 @@ var WebinarUpdate = class WebinarUpdate extends require_lib_base_command.Authent
|
|
|
100
104
|
flags.publish,
|
|
101
105
|
flags["draft-p"],
|
|
102
106
|
flags["published-p"],
|
|
103
|
-
flags["seo-policy"]
|
|
107
|
+
flags["seo-policy"],
|
|
108
|
+
flags["webinar-design-id"]
|
|
104
109
|
].some((v) => v !== void 0);
|
|
105
110
|
const body = { live_id: webinarId };
|
|
106
111
|
if (!metadataFlagsProvided && !this.jsonEnabled()) {
|
|
@@ -181,6 +186,7 @@ var WebinarUpdate = class WebinarUpdate extends require_lib_base_command.Authent
|
|
|
181
186
|
const publishVal = require_lib_output.parseBoolParam(flags.publish, flags["published-p"]);
|
|
182
187
|
if (publishVal !== void 0) body.published_p = publishVal ? 1 : 0;
|
|
183
188
|
if (flags["seo-policy"] !== void 0) body.seo_policy = flags["seo-policy"];
|
|
189
|
+
if (flags["webinar-design-id"] !== void 0) body.webinar_design_id = flags["webinar-design-id"];
|
|
184
190
|
}
|
|
185
191
|
const { data: updateData, error: updateError } = await this.apiClient.POST("/live/update", {
|
|
186
192
|
body,
|
|
@@ -33,4 +33,4 @@ EXAMPLES
|
|
|
33
33
|
$ twentythree action add --type overlay --object-id 12345 --json
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
_See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
36
|
+
_See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/add.ts)_
|
|
@@ -29,4 +29,4 @@ EXAMPLES
|
|
|
29
29
|
$ twentythree action delete 12345 --json
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
_See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
32
|
+
_See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/delete.ts)_
|
|
@@ -35,4 +35,4 @@ EXAMPLES
|
|
|
35
35
|
$ twentythree action exclude 12345 --object-id 6789 --json
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
_See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
38
|
+
_See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/exclude.ts)_
|
|
@@ -44,4 +44,4 @@ EXAMPLES
|
|
|
44
44
|
$ twentythree action get 12345 --json
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
_See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
47
|
+
_See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/get.ts)_
|
|
@@ -35,4 +35,4 @@ EXAMPLES
|
|
|
35
35
|
$ twentythree action include 12345 --object-id 6789 --json
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
_See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
38
|
+
_See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/include.ts)_
|
|
@@ -40,4 +40,4 @@ EXAMPLES
|
|
|
40
40
|
$ twentythree action list --video-id 12345 --json
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
_See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
43
|
+
_See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/list.ts)_
|
|
@@ -31,4 +31,4 @@ EXAMPLES
|
|
|
31
31
|
$ twentythree action types --json
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
_See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
34
|
+
_See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/types.ts)_
|
|
@@ -39,4 +39,4 @@ EXAMPLES
|
|
|
39
39
|
$ twentythree action update 12345 --name "Buy Now" --start-time 10 --end-time 20 --json
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
_See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
42
|
+
_See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/update.ts)_
|
|
@@ -33,4 +33,4 @@ EXAMPLES
|
|
|
33
33
|
$ twentythree action upload 12345 image ./banner.png --json
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
_See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
36
|
+
_See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/upload.ts)_
|
package/docs/commands/action.md
CHANGED
|
@@ -41,7 +41,7 @@ EXAMPLES
|
|
|
41
41
|
$ twentythree action add --type overlay --object-id 12345 --json
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
_See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
44
|
+
_See code: [src/commands/action/add.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/add.ts)_
|
|
45
45
|
|
|
46
46
|
## `twentythree action delete ID`
|
|
47
47
|
|
|
@@ -67,7 +67,7 @@ EXAMPLES
|
|
|
67
67
|
$ twentythree action delete 12345 --json
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
_See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
70
|
+
_See code: [src/commands/action/delete.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/delete.ts)_
|
|
71
71
|
|
|
72
72
|
## `twentythree action exclude ID`
|
|
73
73
|
|
|
@@ -99,7 +99,7 @@ EXAMPLES
|
|
|
99
99
|
$ twentythree action exclude 12345 --object-id 6789 --json
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
_See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
102
|
+
_See code: [src/commands/action/exclude.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/exclude.ts)_
|
|
103
103
|
|
|
104
104
|
## `twentythree action get [ID]`
|
|
105
105
|
|
|
@@ -140,7 +140,7 @@ EXAMPLES
|
|
|
140
140
|
$ twentythree action get 12345 --json
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
_See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
143
|
+
_See code: [src/commands/action/get.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/get.ts)_
|
|
144
144
|
|
|
145
145
|
## `twentythree action include ID`
|
|
146
146
|
|
|
@@ -172,7 +172,7 @@ EXAMPLES
|
|
|
172
172
|
$ twentythree action include 12345 --object-id 6789 --json
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
_See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
175
|
+
_See code: [src/commands/action/include.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/include.ts)_
|
|
176
176
|
|
|
177
177
|
## `twentythree action list`
|
|
178
178
|
|
|
@@ -209,7 +209,7 @@ EXAMPLES
|
|
|
209
209
|
$ twentythree action list --video-id 12345 --json
|
|
210
210
|
```
|
|
211
211
|
|
|
212
|
-
_See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
212
|
+
_See code: [src/commands/action/list.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/list.ts)_
|
|
213
213
|
|
|
214
214
|
## `twentythree action types`
|
|
215
215
|
|
|
@@ -237,7 +237,7 @@ EXAMPLES
|
|
|
237
237
|
$ twentythree action types --json
|
|
238
238
|
```
|
|
239
239
|
|
|
240
|
-
_See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
240
|
+
_See code: [src/commands/action/types.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/types.ts)_
|
|
241
241
|
|
|
242
242
|
## `twentythree action update ID`
|
|
243
243
|
|
|
@@ -273,7 +273,7 @@ EXAMPLES
|
|
|
273
273
|
$ twentythree action update 12345 --name "Buy Now" --start-time 10 --end-time 20 --json
|
|
274
274
|
```
|
|
275
275
|
|
|
276
|
-
_See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
276
|
+
_See code: [src/commands/action/update.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/update.ts)_
|
|
277
277
|
|
|
278
278
|
## `twentythree action upload ID VARIABLE-NAME FILE`
|
|
279
279
|
|
|
@@ -303,4 +303,4 @@ EXAMPLES
|
|
|
303
303
|
$ twentythree action upload 12345 image ./banner.png --json
|
|
304
304
|
```
|
|
305
305
|
|
|
306
|
-
_See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
306
|
+
_See code: [src/commands/action/upload.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/action/upload.ts)_
|
|
@@ -40,7 +40,7 @@ EXAMPLES
|
|
|
40
40
|
$ twentythree analytics conversions --json
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
_See code: [src/commands/analytics/conversions/index.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
43
|
+
_See code: [src/commands/analytics/conversions/index.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/analytics/conversions/index.ts)_
|
|
44
44
|
|
|
45
45
|
## `twentythree analytics conversions timeseries`
|
|
46
46
|
|
|
@@ -75,7 +75,7 @@ EXAMPLES
|
|
|
75
75
|
$ twentythree analytics conversions timeseries --json
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
_See code: [src/commands/analytics/conversions/timeseries.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
78
|
+
_See code: [src/commands/analytics/conversions/timeseries.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/analytics/conversions/timeseries.ts)_
|
|
79
79
|
|
|
80
80
|
## `twentythree analytics conversions totals`
|
|
81
81
|
|
|
@@ -110,4 +110,4 @@ EXAMPLES
|
|
|
110
110
|
$ twentythree analytics conversions totals --json
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
_See code: [src/commands/analytics/conversions/totals.ts](https://github.com/23/twentythree-cli/blob/v1.3.
|
|
113
|
+
_See code: [src/commands/analytics/conversions/totals.ts](https://github.com/23/twentythree-cli/blob/v1.3.6/src/commands/analytics/conversions/totals.ts)_
|