polyv-live-cli 1.2.17 → 1.2.21
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/ai.commands.d.ts +12 -0
- package/dist/commands/ai.commands.d.ts.map +1 -0
- package/dist/commands/ai.commands.js +126 -0
- package/dist/commands/ai.commands.js.map +1 -0
- package/dist/commands/card-push.commands.d.ts +15 -0
- package/dist/commands/card-push.commands.d.ts.map +1 -0
- package/dist/commands/card-push.commands.js +257 -0
- package/dist/commands/card-push.commands.js.map +1 -0
- package/dist/commands/chat.commands.d.ts.map +1 -1
- package/dist/commands/chat.commands.js +152 -0
- package/dist/commands/chat.commands.js.map +1 -1
- package/dist/commands/checkin.commands.d.ts +4 -0
- package/dist/commands/checkin.commands.d.ts.map +1 -0
- package/dist/commands/checkin.commands.js +228 -0
- package/dist/commands/checkin.commands.js.map +1 -0
- package/dist/commands/donate.commands.d.ts +5 -0
- package/dist/commands/donate.commands.d.ts.map +1 -0
- package/dist/commands/donate.commands.js +177 -0
- package/dist/commands/donate.commands.js.map +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/lottery.commands.d.ts +5 -0
- package/dist/commands/lottery.commands.d.ts.map +1 -0
- package/dist/commands/lottery.commands.js +330 -0
- package/dist/commands/lottery.commands.js.map +1 -0
- package/dist/commands/platform-label.commands.d.ts +11 -0
- package/dist/commands/platform-label.commands.d.ts.map +1 -0
- package/dist/commands/platform-label.commands.js +173 -0
- package/dist/commands/platform-label.commands.js.map +1 -0
- package/dist/commands/platform.commands.d.ts +13 -0
- package/dist/commands/platform.commands.d.ts.map +1 -0
- package/dist/commands/platform.commands.js +366 -0
- package/dist/commands/platform.commands.js.map +1 -0
- package/dist/commands/promotion.commands.d.ts +12 -0
- package/dist/commands/promotion.commands.d.ts.map +1 -0
- package/dist/commands/promotion.commands.js +98 -0
- package/dist/commands/promotion.commands.js.map +1 -0
- package/dist/commands/qa.commands.d.ts +4 -0
- package/dist/commands/qa.commands.d.ts.map +1 -0
- package/dist/commands/qa.commands.js +159 -0
- package/dist/commands/qa.commands.js.map +1 -0
- package/dist/commands/questionnaire.commands.d.ts +4 -0
- package/dist/commands/questionnaire.commands.d.ts.map +1 -0
- package/dist/commands/questionnaire.commands.js +187 -0
- package/dist/commands/questionnaire.commands.js.map +1 -0
- package/dist/commands/transmit.commands.d.ts +12 -0
- package/dist/commands/transmit.commands.d.ts.map +1 -0
- package/dist/commands/transmit.commands.js +98 -0
- package/dist/commands/transmit.commands.js.map +1 -0
- package/dist/commands/viewer.commands.d.ts +5 -0
- package/dist/commands/viewer.commands.d.ts.map +1 -0
- package/dist/commands/viewer.commands.js +257 -0
- package/dist/commands/viewer.commands.js.map +1 -0
- package/dist/commands/watch-condition.commands.d.ts +5 -0
- package/dist/commands/watch-condition.commands.d.ts.map +1 -0
- package/dist/commands/watch-condition.commands.js +158 -0
- package/dist/commands/watch-condition.commands.js.map +1 -0
- package/dist/commands/whitelist.commands.d.ts +5 -0
- package/dist/commands/whitelist.commands.d.ts.map +1 -0
- package/dist/commands/whitelist.commands.js +216 -0
- package/dist/commands/whitelist.commands.js.map +1 -0
- package/dist/handlers/ai-digital-human.handler.d.ts +18 -0
- package/dist/handlers/ai-digital-human.handler.d.ts.map +1 -0
- package/dist/handlers/ai-digital-human.handler.js +134 -0
- package/dist/handlers/ai-digital-human.handler.js.map +1 -0
- package/dist/handlers/card-push.handler.d.ts +25 -0
- package/dist/handlers/card-push.handler.d.ts.map +1 -0
- package/dist/handlers/card-push.handler.js +287 -0
- package/dist/handlers/card-push.handler.js.map +1 -0
- package/dist/handlers/chat.handler.d.ts +17 -1
- package/dist/handlers/chat.handler.d.ts.map +1 -1
- package/dist/handlers/chat.handler.js +272 -0
- package/dist/handlers/chat.handler.js.map +1 -1
- package/dist/handlers/checkin.handler.d.ts +22 -0
- package/dist/handlers/checkin.handler.d.ts.map +1 -0
- package/dist/handlers/checkin.handler.js +261 -0
- package/dist/handlers/checkin.handler.js.map +1 -0
- package/dist/handlers/donate.handler.d.ts +18 -0
- package/dist/handlers/donate.handler.d.ts.map +1 -0
- package/dist/handlers/donate.handler.js +221 -0
- package/dist/handlers/donate.handler.js.map +1 -0
- package/dist/handlers/lottery.handler.d.ts +29 -0
- package/dist/handlers/lottery.handler.d.ts.map +1 -0
- package/dist/handlers/lottery.handler.js +386 -0
- package/dist/handlers/lottery.handler.js.map +1 -0
- package/dist/handlers/platform-label.handler.d.ts +18 -0
- package/dist/handlers/platform-label.handler.d.ts.map +1 -0
- package/dist/handlers/platform-label.handler.js +113 -0
- package/dist/handlers/platform-label.handler.js.map +1 -0
- package/dist/handlers/platform.handler.d.ts +24 -0
- package/dist/handlers/platform.handler.d.ts.map +1 -0
- package/dist/handlers/platform.handler.js +302 -0
- package/dist/handlers/platform.handler.js.map +1 -0
- package/dist/handlers/promotion.handler.d.ts +16 -0
- package/dist/handlers/promotion.handler.d.ts.map +1 -0
- package/dist/handlers/promotion.handler.js +103 -0
- package/dist/handlers/promotion.handler.js.map +1 -0
- package/dist/handlers/qa-questionnaire.handler.d.ts +27 -0
- package/dist/handlers/qa-questionnaire.handler.d.ts.map +1 -0
- package/dist/handlers/qa-questionnaire.handler.js +386 -0
- package/dist/handlers/qa-questionnaire.handler.js.map +1 -0
- package/dist/handlers/transmit.handler.d.ts +15 -0
- package/dist/handlers/transmit.handler.d.ts.map +1 -0
- package/dist/handlers/transmit.handler.js +86 -0
- package/dist/handlers/transmit.handler.js.map +1 -0
- package/dist/handlers/viewer.handler.d.ts +23 -0
- package/dist/handlers/viewer.handler.d.ts.map +1 -0
- package/dist/handlers/viewer.handler.js +322 -0
- package/dist/handlers/viewer.handler.js.map +1 -0
- package/dist/handlers/watch-condition.handler.d.ts +18 -0
- package/dist/handlers/watch-condition.handler.d.ts.map +1 -0
- package/dist/handlers/watch-condition.handler.js +178 -0
- package/dist/handlers/watch-condition.handler.js.map +1 -0
- package/dist/handlers/whitelist.handler.d.ts +20 -0
- package/dist/handlers/whitelist.handler.d.ts.map +1 -0
- package/dist/handlers/whitelist.handler.js +241 -0
- package/dist/handlers/whitelist.handler.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -4
- package/dist/index.js.map +1 -1
- package/dist/services/ai-digital-human-service.d.ts +10 -0
- package/dist/services/ai-digital-human-service.d.ts.map +1 -0
- package/dist/services/ai-digital-human-service.js +64 -0
- package/dist/services/ai-digital-human-service.js.map +1 -0
- package/dist/services/card-push-service.d.ts +16 -0
- package/dist/services/card-push-service.d.ts.map +1 -0
- package/dist/services/card-push-service.js +153 -0
- package/dist/services/card-push-service.js.map +1 -0
- package/dist/services/chat.service.sdk.d.ts +39 -1
- package/dist/services/chat.service.sdk.d.ts.map +1 -1
- package/dist/services/chat.service.sdk.js +60 -0
- package/dist/services/chat.service.sdk.js.map +1 -1
- package/dist/services/checkin-service.d.ts +14 -0
- package/dist/services/checkin-service.d.ts.map +1 -0
- package/dist/services/checkin-service.js +89 -0
- package/dist/services/checkin-service.js.map +1 -0
- package/dist/services/donate-service.d.ts +12 -0
- package/dist/services/donate-service.d.ts.map +1 -0
- package/dist/services/donate-service.js +59 -0
- package/dist/services/donate-service.js.map +1 -0
- package/dist/services/lottery-service.d.ts +17 -0
- package/dist/services/lottery-service.d.ts.map +1 -0
- package/dist/services/lottery-service.js +84 -0
- package/dist/services/lottery-service.js.map +1 -0
- package/dist/services/platform-label-service.d.ts +21 -0
- package/dist/services/platform-label-service.d.ts.map +1 -0
- package/dist/services/platform-label-service.js +56 -0
- package/dist/services/platform-label-service.js.map +1 -0
- package/dist/services/platform-service.d.ts +47 -0
- package/dist/services/platform-service.d.ts.map +1 -0
- package/dist/services/platform-service.js +144 -0
- package/dist/services/platform-service.js.map +1 -0
- package/dist/services/promotion-service.d.ts +12 -0
- package/dist/services/promotion-service.d.ts.map +1 -0
- package/dist/services/promotion-service.js +54 -0
- package/dist/services/promotion-service.js.map +1 -0
- package/dist/services/qa-questionnaire-service.d.ts +15 -0
- package/dist/services/qa-questionnaire-service.d.ts.map +1 -0
- package/dist/services/qa-questionnaire-service.js +102 -0
- package/dist/services/qa-questionnaire-service.js.map +1 -0
- package/dist/services/stream.service.sdk.d.ts.map +1 -1
- package/dist/services/stream.service.sdk.js +8 -12
- package/dist/services/stream.service.sdk.js.map +1 -1
- package/dist/services/transmit-service.d.ts +9 -0
- package/dist/services/transmit-service.d.ts.map +1 -0
- package/dist/services/transmit-service.js +45 -0
- package/dist/services/transmit-service.js.map +1 -0
- package/dist/services/viewer-service.d.ts +29 -0
- package/dist/services/viewer-service.d.ts.map +1 -0
- package/dist/services/viewer-service.js +106 -0
- package/dist/services/viewer-service.js.map +1 -0
- package/dist/services/watch-condition-service.d.ts +16 -0
- package/dist/services/watch-condition-service.d.ts.map +1 -0
- package/dist/services/watch-condition-service.js +38 -0
- package/dist/services/watch-condition-service.js.map +1 -0
- package/dist/services/whitelist-service.d.ts +50 -0
- package/dist/services/whitelist-service.d.ts.map +1 -0
- package/dist/services/whitelist-service.js +56 -0
- package/dist/services/whitelist-service.js.map +1 -0
- package/dist/types/ai-digital-human.d.ts +49 -0
- package/dist/types/ai-digital-human.d.ts.map +1 -0
- package/dist/types/ai-digital-human.js +3 -0
- package/dist/types/ai-digital-human.js.map +1 -0
- package/dist/types/card-push.d.ts +151 -0
- package/dist/types/card-push.d.ts.map +1 -0
- package/dist/types/card-push.js +3 -0
- package/dist/types/card-push.js.map +1 -0
- package/dist/types/chat.d.ts +35 -0
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/checkin.d.ts +57 -0
- package/dist/types/checkin.d.ts.map +1 -0
- package/dist/types/checkin.js +3 -0
- package/dist/types/checkin.js.map +1 -0
- package/dist/types/donate.d.ts +92 -0
- package/dist/types/donate.d.ts.map +1 -0
- package/dist/types/donate.js +3 -0
- package/dist/types/donate.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/lottery.d.ts +110 -0
- package/dist/types/lottery.d.ts.map +1 -0
- package/dist/types/lottery.js +3 -0
- package/dist/types/lottery.js.map +1 -0
- package/dist/types/platform-label.d.ts +29 -0
- package/dist/types/platform-label.d.ts.map +1 -0
- package/dist/types/platform-label.js +3 -0
- package/dist/types/platform-label.js.map +1 -0
- package/dist/types/platform.d.ts +44 -0
- package/dist/types/platform.d.ts.map +1 -0
- package/dist/types/platform.js +11 -0
- package/dist/types/platform.js.map +1 -0
- package/dist/types/promotion.d.ts +31 -0
- package/dist/types/promotion.d.ts.map +1 -0
- package/dist/types/promotion.js +3 -0
- package/dist/types/promotion.js.map +1 -0
- package/dist/types/qa.d.ts +90 -0
- package/dist/types/qa.d.ts.map +1 -0
- package/dist/types/qa.js +3 -0
- package/dist/types/qa.js.map +1 -0
- package/dist/types/transmit.d.ts +40 -0
- package/dist/types/transmit.d.ts.map +1 -0
- package/dist/types/transmit.js +3 -0
- package/dist/types/transmit.js.map +1 -0
- package/dist/types/viewer.d.ts +36 -0
- package/dist/types/viewer.d.ts.map +1 -0
- package/dist/types/viewer.js +3 -0
- package/dist/types/viewer.js.map +1 -0
- package/dist/types/watch-condition.d.ts +49 -0
- package/dist/types/watch-condition.d.ts.map +1 -0
- package/dist/types/watch-condition.js +18 -0
- package/dist/types/watch-condition.js.map +1 -0
- package/dist/types/whitelist.d.ts +36 -0
- package/dist/types/whitelist.d.ts.map +1 -0
- package/dist/types/whitelist.js +3 -0
- package/dist/types/whitelist.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { AuthConfig } from '../types/auth';
|
|
3
|
+
import { OutputFormat } from '../types/platform';
|
|
4
|
+
import { AIDigitalHumanServiceConfig } from '../types/ai-digital-human';
|
|
5
|
+
export declare function loadAuthAndServiceConfig(parentOptions: Record<string, unknown>): Promise<{
|
|
6
|
+
authConfig: AuthConfig;
|
|
7
|
+
serviceConfig: AIDigitalHumanServiceConfig;
|
|
8
|
+
isVerbose: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function validateOutputFormat(format: string): OutputFormat;
|
|
11
|
+
export declare function registerAiCommands(program: Command): void;
|
|
12
|
+
//# sourceMappingURL=ai.commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.commands.d.ts","sourceRoot":"","sources":["../../src/commands/ai.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AASxE,wBAAsB,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC9F,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,2BAA2B,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAwCD;AAQD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAKjE;AAKD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6EzD"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadAuthAndServiceConfig = loadAuthAndServiceConfig;
|
|
4
|
+
exports.validateOutputFormat = validateOutputFormat;
|
|
5
|
+
exports.registerAiCommands = registerAiCommands;
|
|
6
|
+
const ai_digital_human_handler_1 = require("../handlers/ai-digital-human.handler");
|
|
7
|
+
const auth_adapter_1 = require("../config/auth-adapter");
|
|
8
|
+
const manager_1 = require("../config/manager");
|
|
9
|
+
const errors_1 = require("../utils/errors");
|
|
10
|
+
const DEFAULT_TIMEOUT_MS = 30000;
|
|
11
|
+
async function loadAuthAndServiceConfig(parentOptions) {
|
|
12
|
+
const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
|
|
13
|
+
if (!authResult) {
|
|
14
|
+
throw new Error(auth_adapter_1.authAdapter.getStatusMessage(parentOptions));
|
|
15
|
+
}
|
|
16
|
+
let configResult;
|
|
17
|
+
try {
|
|
18
|
+
configResult = await manager_1.configManager.load({
|
|
19
|
+
cliOptions: parentOptions,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error instanceof Error && error.message.includes('Auth configuration is incomplete')) {
|
|
24
|
+
configResult = {
|
|
25
|
+
config: {
|
|
26
|
+
baseUrl: 'https://api.polyv.net',
|
|
27
|
+
timeout: DEFAULT_TIMEOUT_MS,
|
|
28
|
+
debug: false,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const serviceConfig = {
|
|
37
|
+
baseUrl: configResult.config.baseUrl,
|
|
38
|
+
timeout: configResult.config.timeout,
|
|
39
|
+
debug: configResult.config.debug,
|
|
40
|
+
};
|
|
41
|
+
const isVerbose = !!parentOptions['verbose'];
|
|
42
|
+
if (isVerbose) {
|
|
43
|
+
console.log('Using authentication from:', authResult.source);
|
|
44
|
+
}
|
|
45
|
+
return { authConfig: authResult.config, serviceConfig, isVerbose };
|
|
46
|
+
}
|
|
47
|
+
function validateOutputFormat(format) {
|
|
48
|
+
if (format !== 'table' && format !== 'json') {
|
|
49
|
+
throw new Error('Invalid output format. Must be table or json');
|
|
50
|
+
}
|
|
51
|
+
return format;
|
|
52
|
+
}
|
|
53
|
+
function registerAiCommands(program) {
|
|
54
|
+
const aiCmd = program
|
|
55
|
+
.command('ai')
|
|
56
|
+
.description('Manage AI features for live streaming (管理AI功能)');
|
|
57
|
+
const digitalHumanCmd = aiCmd
|
|
58
|
+
.command('digital-human')
|
|
59
|
+
.description('Manage AI Digital Humans (管理AI数字人)');
|
|
60
|
+
digitalHumanCmd
|
|
61
|
+
.command('list')
|
|
62
|
+
.description('List AI Digital Humans (列出AI数字人)')
|
|
63
|
+
.option('--page <number>', 'Page number (default: 1)', parseInt)
|
|
64
|
+
.option('--size <number>', 'Page size (default: 10, max: 1000)', parseInt)
|
|
65
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
66
|
+
.action(async (options) => {
|
|
67
|
+
try {
|
|
68
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
69
|
+
const handler = new ai_digital_human_handler_1.AIDigitalHumanHandler(authConfig, serviceConfig);
|
|
70
|
+
await handler.listDigitalHumans({
|
|
71
|
+
page: options.page,
|
|
72
|
+
size: options.size,
|
|
73
|
+
output: options.output,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
digitalHumanCmd
|
|
82
|
+
.command('list-org')
|
|
83
|
+
.description('List organization associations for AI Digital Humans (查询AI数字人关联的组织)')
|
|
84
|
+
.requiredOption('--ids <ids>', 'AI Digital Human IDs, comma-separated (数字人ID,逗号分隔)')
|
|
85
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
86
|
+
.action(async (options) => {
|
|
87
|
+
try {
|
|
88
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
89
|
+
const handler = new ai_digital_human_handler_1.AIDigitalHumanHandler(authConfig, serviceConfig);
|
|
90
|
+
await handler.listOrganizations({
|
|
91
|
+
ids: options.ids,
|
|
92
|
+
output: options.output,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
digitalHumanCmd
|
|
101
|
+
.command('set-org')
|
|
102
|
+
.description('Set organization associations for AI Digital Humans (设置AI数字人关联的组织)')
|
|
103
|
+
.option('--config <json>', 'JSON array config (JSON数组配置)')
|
|
104
|
+
.option('--aiDigitalHumanId <id>', 'AI Digital Human ID (数字人ID)')
|
|
105
|
+
.option('--organizationIds <ids>', 'Organization IDs, comma-separated (组织ID,逗号分隔)')
|
|
106
|
+
.option('--includeChildren', 'Include child organizations (包含子组织)', true)
|
|
107
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
108
|
+
.action(async (options) => {
|
|
109
|
+
try {
|
|
110
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
111
|
+
const handler = new ai_digital_human_handler_1.AIDigitalHumanHandler(authConfig, serviceConfig);
|
|
112
|
+
await handler.setOrganizations({
|
|
113
|
+
config: options.config,
|
|
114
|
+
aiDigitalHumanId: options.aiDigitalHumanId,
|
|
115
|
+
organizationIds: options.organizationIds,
|
|
116
|
+
includeChildren: options.includeChildren,
|
|
117
|
+
output: options.output,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=ai.commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.commands.js","sourceRoot":"","sources":["../../src/commands/ai.commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { AuthConfig } from '../types/auth';
|
|
3
|
+
import { OutputFormat } from '../types/platform';
|
|
4
|
+
import { CardPushServiceConfig } from '../types/card-push';
|
|
5
|
+
export declare function loadAuthAndServiceConfig(parentOptions: Record<string, unknown>): Promise<{
|
|
6
|
+
authConfig: AuthConfig;
|
|
7
|
+
serviceConfig: CardPushServiceConfig;
|
|
8
|
+
isVerbose: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function validateOutputFormat(format: string): OutputFormat;
|
|
11
|
+
export declare function validateImageType(imageType: string): 'giftbox' | 'redpack' | 'custom' | 'weixinWork';
|
|
12
|
+
export declare function validateShowCondition(showCondition: string): 'PUSH' | 'WATCH';
|
|
13
|
+
export declare function validateDuration(duration: string): number;
|
|
14
|
+
export declare function registerCardPushCommands(program: Command): void;
|
|
15
|
+
//# sourceMappingURL=card-push.commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-push.commands.d.ts","sourceRoot":"","sources":["../../src/commands/card-push.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EACL,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAS5B,wBAAsB,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC9F,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,qBAAqB,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAwCD;AAQD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAKjE;AAQD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAMpG;AAQD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAM7E;AAQD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOzD;AAKD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwL/D"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadAuthAndServiceConfig = loadAuthAndServiceConfig;
|
|
4
|
+
exports.validateOutputFormat = validateOutputFormat;
|
|
5
|
+
exports.validateImageType = validateImageType;
|
|
6
|
+
exports.validateShowCondition = validateShowCondition;
|
|
7
|
+
exports.validateDuration = validateDuration;
|
|
8
|
+
exports.registerCardPushCommands = registerCardPushCommands;
|
|
9
|
+
const card_push_handler_1 = require("../handlers/card-push.handler");
|
|
10
|
+
const auth_adapter_1 = require("../config/auth-adapter");
|
|
11
|
+
const manager_1 = require("../config/manager");
|
|
12
|
+
const errors_1 = require("../utils/errors");
|
|
13
|
+
const DEFAULT_TIMEOUT_MS = 30000;
|
|
14
|
+
async function loadAuthAndServiceConfig(parentOptions) {
|
|
15
|
+
const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
|
|
16
|
+
if (!authResult) {
|
|
17
|
+
throw new Error(auth_adapter_1.authAdapter.getStatusMessage(parentOptions));
|
|
18
|
+
}
|
|
19
|
+
let configResult;
|
|
20
|
+
try {
|
|
21
|
+
configResult = await manager_1.configManager.load({
|
|
22
|
+
cliOptions: parentOptions,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof Error && error.message.includes('Auth configuration is incomplete')) {
|
|
27
|
+
configResult = {
|
|
28
|
+
config: {
|
|
29
|
+
baseUrl: 'https://api.polyv.net',
|
|
30
|
+
timeout: DEFAULT_TIMEOUT_MS,
|
|
31
|
+
debug: false,
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const serviceConfig = {
|
|
40
|
+
baseUrl: configResult.config.baseUrl,
|
|
41
|
+
timeout: configResult.config.timeout,
|
|
42
|
+
debug: configResult.config.debug,
|
|
43
|
+
};
|
|
44
|
+
const isVerbose = !!parentOptions['verbose'];
|
|
45
|
+
if (isVerbose) {
|
|
46
|
+
console.log('Using authentication from:', authResult.source);
|
|
47
|
+
}
|
|
48
|
+
return { authConfig: authResult.config, serviceConfig, isVerbose };
|
|
49
|
+
}
|
|
50
|
+
function validateOutputFormat(format) {
|
|
51
|
+
if (format !== 'table' && format !== 'json') {
|
|
52
|
+
throw new Error('Invalid output format. Must be table or json');
|
|
53
|
+
}
|
|
54
|
+
return format;
|
|
55
|
+
}
|
|
56
|
+
function validateImageType(imageType) {
|
|
57
|
+
const validTypes = ['giftbox', 'redpack', 'custom', 'weixinWork'];
|
|
58
|
+
if (!validTypes.includes(imageType)) {
|
|
59
|
+
throw new Error(`Invalid imageType. Must be one of: ${validTypes.join(', ')}`);
|
|
60
|
+
}
|
|
61
|
+
return imageType;
|
|
62
|
+
}
|
|
63
|
+
function validateShowCondition(showCondition) {
|
|
64
|
+
const validConditions = ['PUSH', 'WATCH'];
|
|
65
|
+
if (!validConditions.includes(showCondition)) {
|
|
66
|
+
throw new Error(`Invalid showCondition. Must be one of: ${validConditions.join(', ')}`);
|
|
67
|
+
}
|
|
68
|
+
return showCondition;
|
|
69
|
+
}
|
|
70
|
+
function validateDuration(duration) {
|
|
71
|
+
const durationNum = parseInt(duration, 10);
|
|
72
|
+
const validDurations = [0, 5, 10, 20, 30];
|
|
73
|
+
if (!validDurations.includes(durationNum)) {
|
|
74
|
+
throw new Error(`Invalid duration. Must be one of: ${validDurations.join(', ')}`);
|
|
75
|
+
}
|
|
76
|
+
return durationNum;
|
|
77
|
+
}
|
|
78
|
+
function registerCardPushCommands(program) {
|
|
79
|
+
const cardPushCmd = program
|
|
80
|
+
.command('card-push')
|
|
81
|
+
.description('Manage card push for live streaming (管理直播卡片推送)');
|
|
82
|
+
cardPushCmd
|
|
83
|
+
.command('list')
|
|
84
|
+
.description('List all card-pushes (列出所有卡片推送)')
|
|
85
|
+
.requiredOption('--channelId <id>', 'Channel ID (频道ID)')
|
|
86
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
87
|
+
.action(async (options) => {
|
|
88
|
+
try {
|
|
89
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
90
|
+
const handler = new card_push_handler_1.CardPushHandler(authConfig, serviceConfig);
|
|
91
|
+
await handler.listCardPushes({
|
|
92
|
+
channelId: options.channelId,
|
|
93
|
+
output: options.output,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
cardPushCmd
|
|
102
|
+
.command('create')
|
|
103
|
+
.description('Create a new card-push (创建新的卡片推送)')
|
|
104
|
+
.requiredOption('--channelId <id>', 'Channel ID (频道ID)')
|
|
105
|
+
.requiredOption('--imageType <type>', 'Image type (giftbox|redpack|custom|weixinWork)', validateImageType)
|
|
106
|
+
.requiredOption('--title <title>', 'Card title (卡片标题,最多16个字符)')
|
|
107
|
+
.requiredOption('--link <url>', 'Card link URL (卡片链接地址)')
|
|
108
|
+
.requiredOption('--duration <seconds>', 'Card countdown duration (0,5,10,20,30秒)', validateDuration)
|
|
109
|
+
.requiredOption('--showCondition <condition>', 'Show condition (PUSH|WATCH)', validateShowCondition)
|
|
110
|
+
.option('--cardType <type>', 'Card type (common|qrCode)', 'common')
|
|
111
|
+
.option('--durationPosition <position>', 'Duration position (bottom|top)')
|
|
112
|
+
.option('--conditionValue <value>', 'Watch duration value (观看时长)', (val) => parseInt(val, 10))
|
|
113
|
+
.option('--conditionUnit <unit>', 'Watch duration unit (SECONDS|MINUTES)')
|
|
114
|
+
.option('--countdownMsg <message>', 'Countdown message (倒计时文案,最多8个字符)')
|
|
115
|
+
.option('--enterEnabled <enabled>', 'Card entry enabled (Y|N)')
|
|
116
|
+
.option('--linkEnabled <enabled>', 'Card link enabled (Y|N)')
|
|
117
|
+
.option('--redirectType <type>', 'Redirect type (iframe|tab)')
|
|
118
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
119
|
+
.action(async (options) => {
|
|
120
|
+
try {
|
|
121
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
122
|
+
const handler = new card_push_handler_1.CardPushHandler(authConfig, serviceConfig);
|
|
123
|
+
await handler.createCardPush({
|
|
124
|
+
channelId: options.channelId,
|
|
125
|
+
cardType: options.cardType,
|
|
126
|
+
imageType: options.imageType,
|
|
127
|
+
title: options.title,
|
|
128
|
+
link: options.link,
|
|
129
|
+
duration: options.duration,
|
|
130
|
+
durationPosition: options.durationPosition,
|
|
131
|
+
showCondition: options.showCondition,
|
|
132
|
+
conditionValue: options.conditionValue,
|
|
133
|
+
conditionUnit: options.conditionUnit,
|
|
134
|
+
countdownMsg: options.countdownMsg,
|
|
135
|
+
enterEnabled: options.enterEnabled,
|
|
136
|
+
linkEnabled: options.linkEnabled,
|
|
137
|
+
redirectType: options.redirectType,
|
|
138
|
+
output: options.output,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
cardPushCmd
|
|
147
|
+
.command('update')
|
|
148
|
+
.description('Update an existing card-push (更新现有卡片推送)')
|
|
149
|
+
.requiredOption('--channelId <id>', 'Channel ID (频道ID)')
|
|
150
|
+
.requiredOption('--cardPushId <id>', 'Card-push ID (卡片推送ID)')
|
|
151
|
+
.option('--cardType <type>', 'Card type (common|qrCode)')
|
|
152
|
+
.option('--imageType <type>', 'Image type (giftbox|redpack|custom|weixinWork)', validateImageType)
|
|
153
|
+
.option('--title <title>', 'Card title (卡片标题,最多16个字符)')
|
|
154
|
+
.option('--link <url>', 'Card link URL (卡片链接地址)')
|
|
155
|
+
.option('--duration <seconds>', 'Card countdown duration (0,5,10,20,30秒)', validateDuration)
|
|
156
|
+
.option('--durationPosition <position>', 'Duration position (bottom|top)')
|
|
157
|
+
.option('--showCondition <condition>', 'Show condition (PUSH|WATCH)', validateShowCondition)
|
|
158
|
+
.option('--conditionValue <value>', 'Watch duration value (观看时长)', (val) => parseInt(val, 10))
|
|
159
|
+
.option('--conditionUnit <unit>', 'Watch duration unit (SECONDS|MINUTES)')
|
|
160
|
+
.option('--countdownMsg <message>', 'Countdown message (倒计时文案,最多8个字符)')
|
|
161
|
+
.option('--enterEnabled <enabled>', 'Card entry enabled (Y|N)')
|
|
162
|
+
.option('--linkEnabled <enabled>', 'Card link enabled (Y|N)')
|
|
163
|
+
.option('--redirectType <type>', 'Redirect type (iframe|tab)')
|
|
164
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
165
|
+
.action(async (options) => {
|
|
166
|
+
try {
|
|
167
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
168
|
+
const handler = new card_push_handler_1.CardPushHandler(authConfig, serviceConfig);
|
|
169
|
+
await handler.updateCardPush({
|
|
170
|
+
channelId: options.channelId,
|
|
171
|
+
cardPushId: options.cardPushId,
|
|
172
|
+
cardType: options.cardType,
|
|
173
|
+
imageType: options.imageType,
|
|
174
|
+
title: options.title,
|
|
175
|
+
link: options.link,
|
|
176
|
+
duration: options.duration,
|
|
177
|
+
durationPosition: options.durationPosition,
|
|
178
|
+
showCondition: options.showCondition,
|
|
179
|
+
conditionValue: options.conditionValue,
|
|
180
|
+
conditionUnit: options.conditionUnit,
|
|
181
|
+
countdownMsg: options.countdownMsg,
|
|
182
|
+
enterEnabled: options.enterEnabled,
|
|
183
|
+
linkEnabled: options.linkEnabled,
|
|
184
|
+
redirectType: options.redirectType,
|
|
185
|
+
output: options.output,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
190
|
+
process.exit(1);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
cardPushCmd
|
|
194
|
+
.command('push')
|
|
195
|
+
.description('Push a card to viewers (推送卡片到观众)')
|
|
196
|
+
.requiredOption('--channelId <id>', 'Channel ID (频道ID)')
|
|
197
|
+
.requiredOption('--cardPushId <id>', 'Card-push ID (卡片推送ID)')
|
|
198
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
199
|
+
.action(async (options) => {
|
|
200
|
+
try {
|
|
201
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
202
|
+
const handler = new card_push_handler_1.CardPushHandler(authConfig, serviceConfig);
|
|
203
|
+
await handler.pushCard({
|
|
204
|
+
channelId: options.channelId,
|
|
205
|
+
cardPushId: options.cardPushId,
|
|
206
|
+
output: options.output,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
211
|
+
process.exit(1);
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
cardPushCmd
|
|
215
|
+
.command('cancel')
|
|
216
|
+
.description('Cancel a pushing card (取消正在推送的卡片)')
|
|
217
|
+
.requiredOption('--channelId <id>', 'Channel ID (频道ID)')
|
|
218
|
+
.requiredOption('--cardPushId <id>', 'Card-push ID (卡片推送ID)')
|
|
219
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
220
|
+
.action(async (options) => {
|
|
221
|
+
try {
|
|
222
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
223
|
+
const handler = new card_push_handler_1.CardPushHandler(authConfig, serviceConfig);
|
|
224
|
+
await handler.cancelPush({
|
|
225
|
+
channelId: options.channelId,
|
|
226
|
+
cardPushId: options.cardPushId,
|
|
227
|
+
output: options.output,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
cardPushCmd
|
|
236
|
+
.command('delete')
|
|
237
|
+
.description('Delete a card-push (删除卡片推送)')
|
|
238
|
+
.requiredOption('--channelId <id>', 'Channel ID (频道ID)')
|
|
239
|
+
.requiredOption('--cardPushId <id>', 'Card-push ID (卡片推送ID)')
|
|
240
|
+
.option('-o, --output <format>', 'Output format (table|json)', validateOutputFormat, 'table')
|
|
241
|
+
.action(async (options) => {
|
|
242
|
+
try {
|
|
243
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(options);
|
|
244
|
+
const handler = new card_push_handler_1.CardPushHandler(authConfig, serviceConfig);
|
|
245
|
+
await handler.deleteCardPush({
|
|
246
|
+
channelId: options.channelId,
|
|
247
|
+
cardPushId: options.cardPushId,
|
|
248
|
+
output: options.output,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
253
|
+
process.exit(1);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=card-push.commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-push.commands.js","sourceRoot":"","sources":["../../src/commands/card-push.commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.commands.d.ts","sourceRoot":"","sources":["../../src/commands/chat.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnD;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAKpE;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"chat.commands.d.ts","sourceRoot":"","sources":["../../src/commands/chat.commands.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnD;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAKpE;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0Y3D"}
|
|
@@ -164,6 +164,158 @@ Note:
|
|
|
164
164
|
Deletion is permanent and cannot be undone.
|
|
165
165
|
Use --force to skip confirmation prompt.
|
|
166
166
|
`);
|
|
167
|
+
chatCmd
|
|
168
|
+
.command('ban')
|
|
169
|
+
.description('Ban users from chat (channel or global)')
|
|
170
|
+
.option('-c, --channel-id <id>', 'channel ID (required for channel-level ban)')
|
|
171
|
+
.requiredOption('-u, --user-ids <ids>', 'user IDs to ban (comma-separated)')
|
|
172
|
+
.option('--global', 'ban users globally (account level)')
|
|
173
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
174
|
+
.action(async (options) => {
|
|
175
|
+
try {
|
|
176
|
+
const parentOptions = program.opts();
|
|
177
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
178
|
+
const chatHandler = new chat_handler_1.ChatHandler(authConfig, serviceConfig);
|
|
179
|
+
const userIds = options.userIds.split(',').map((id) => id.trim());
|
|
180
|
+
await chatHandler.banUser({
|
|
181
|
+
channelId: options.channelId,
|
|
182
|
+
userIds,
|
|
183
|
+
global: options.global,
|
|
184
|
+
output: options.output,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
chatCmd
|
|
193
|
+
.command('unban')
|
|
194
|
+
.description('Unban users from chat (channel or global)')
|
|
195
|
+
.option('-c, --channel-id <id>', 'channel ID (required for channel-level unban)')
|
|
196
|
+
.requiredOption('-u, --user-ids <ids>', 'user IDs to unban (comma-separated)')
|
|
197
|
+
.option('--global', 'unban users globally (account level)')
|
|
198
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
199
|
+
.action(async (options) => {
|
|
200
|
+
try {
|
|
201
|
+
const parentOptions = program.opts();
|
|
202
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
203
|
+
const chatHandler = new chat_handler_1.ChatHandler(authConfig, serviceConfig);
|
|
204
|
+
const userIds = options.userIds.split(',').map((id) => id.trim());
|
|
205
|
+
await chatHandler.unbanUser({
|
|
206
|
+
channelId: options.channelId,
|
|
207
|
+
userIds,
|
|
208
|
+
global: options.global,
|
|
209
|
+
output: options.output,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
214
|
+
process.exit(1);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
chatCmd
|
|
218
|
+
.command('kick')
|
|
219
|
+
.description('Kick users from channel or globally')
|
|
220
|
+
.option('-c, --channel-id <id>', 'channel ID (required for channel-level kick)')
|
|
221
|
+
.option('--viewer-ids <ids>', 'viewer IDs to kick (comma-separated)')
|
|
222
|
+
.option('-n, --nick-names <names>', 'nicknames to kick (comma-separated)')
|
|
223
|
+
.option('--global', 'kick users globally (platform level)')
|
|
224
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
225
|
+
.action(async (options) => {
|
|
226
|
+
try {
|
|
227
|
+
const parentOptions = program.opts();
|
|
228
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
229
|
+
const chatHandler = new chat_handler_1.ChatHandler(authConfig, serviceConfig);
|
|
230
|
+
const viewerIds = options.viewerIds ? options.viewerIds.split(',').map((id) => id.trim()) : undefined;
|
|
231
|
+
const nickNames = options.nickNames ? options.nickNames.split(',').map((name) => name.trim()) : undefined;
|
|
232
|
+
await chatHandler.kickUser({
|
|
233
|
+
channelId: options.channelId,
|
|
234
|
+
viewerIds,
|
|
235
|
+
nickNames,
|
|
236
|
+
global: options.global,
|
|
237
|
+
output: options.output,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
242
|
+
process.exit(1);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
chatCmd
|
|
246
|
+
.command('unkick')
|
|
247
|
+
.description('Unkick users (cancel kick status)')
|
|
248
|
+
.option('-c, --channel-id <id>', 'channel ID (required for channel-level unkick)')
|
|
249
|
+
.option('--viewer-ids <ids>', 'viewer IDs to unkick (comma-separated)')
|
|
250
|
+
.option('-n, --nick-names <names>', 'nicknames to unkick (comma-separated)')
|
|
251
|
+
.option('--global', 'unkick users globally (platform level)')
|
|
252
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
253
|
+
.action(async (options) => {
|
|
254
|
+
try {
|
|
255
|
+
const parentOptions = program.opts();
|
|
256
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
257
|
+
const chatHandler = new chat_handler_1.ChatHandler(authConfig, serviceConfig);
|
|
258
|
+
const viewerIds = options.viewerIds ? options.viewerIds.split(',').map((id) => id.trim()) : undefined;
|
|
259
|
+
const nickNames = options.nickNames ? options.nickNames.split(',').map((name) => name.trim()) : undefined;
|
|
260
|
+
await chatHandler.unkickUser({
|
|
261
|
+
channelId: options.channelId,
|
|
262
|
+
viewerIds,
|
|
263
|
+
nickNames,
|
|
264
|
+
global: options.global,
|
|
265
|
+
output: options.output,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
270
|
+
process.exit(1);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
const bannedCmd = chatCmd.command('banned');
|
|
274
|
+
bannedCmd.description('Manage banned items');
|
|
275
|
+
bannedCmd
|
|
276
|
+
.command('list')
|
|
277
|
+
.description('List banned users, IPs, or badwords')
|
|
278
|
+
.requiredOption('-c, --channel-id <id>', 'channel ID')
|
|
279
|
+
.requiredOption('-t, --type <type>', 'banned list type (userId|ip|badword)')
|
|
280
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
281
|
+
.action(async (options) => {
|
|
282
|
+
try {
|
|
283
|
+
const parentOptions = program.opts();
|
|
284
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
285
|
+
const chatHandler = new chat_handler_1.ChatHandler(authConfig, serviceConfig);
|
|
286
|
+
await chatHandler.listBanned({
|
|
287
|
+
channelId: options.channelId,
|
|
288
|
+
type: options.type,
|
|
289
|
+
output: options.output,
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
294
|
+
process.exit(1);
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
const kickedCmd = chatCmd.command('kicked');
|
|
298
|
+
kickedCmd.description('Manage kicked users');
|
|
299
|
+
kickedCmd
|
|
300
|
+
.command('list')
|
|
301
|
+
.description('List kicked users')
|
|
302
|
+
.requiredOption('-c, --channel-id <id>', 'channel ID')
|
|
303
|
+
.option('-o, --output <format>', 'output format (table|json)', validateOutputFormat, 'table')
|
|
304
|
+
.action(async (options) => {
|
|
305
|
+
try {
|
|
306
|
+
const parentOptions = program.opts();
|
|
307
|
+
const { authConfig, serviceConfig } = await loadAuthAndServiceConfig(parentOptions);
|
|
308
|
+
const chatHandler = new chat_handler_1.ChatHandler(authConfig, serviceConfig);
|
|
309
|
+
await chatHandler.listKicked({
|
|
310
|
+
channelId: options.channelId,
|
|
311
|
+
output: options.output,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
catch (error) {
|
|
315
|
+
(0, errors_1.logError)(error instanceof Error ? error : new Error(String(error)));
|
|
316
|
+
process.exit(1);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
167
319
|
async function loadAuthAndServiceConfig(parentOptions) {
|
|
168
320
|
const authResult = auth_adapter_1.authAdapter.tryGetAuthConfig(parentOptions);
|
|
169
321
|
if (!authResult) {
|