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.
Files changed (240) hide show
  1. package/dist/commands/ai.commands.d.ts +12 -0
  2. package/dist/commands/ai.commands.d.ts.map +1 -0
  3. package/dist/commands/ai.commands.js +126 -0
  4. package/dist/commands/ai.commands.js.map +1 -0
  5. package/dist/commands/card-push.commands.d.ts +15 -0
  6. package/dist/commands/card-push.commands.d.ts.map +1 -0
  7. package/dist/commands/card-push.commands.js +257 -0
  8. package/dist/commands/card-push.commands.js.map +1 -0
  9. package/dist/commands/chat.commands.d.ts.map +1 -1
  10. package/dist/commands/chat.commands.js +152 -0
  11. package/dist/commands/chat.commands.js.map +1 -1
  12. package/dist/commands/checkin.commands.d.ts +4 -0
  13. package/dist/commands/checkin.commands.d.ts.map +1 -0
  14. package/dist/commands/checkin.commands.js +228 -0
  15. package/dist/commands/checkin.commands.js.map +1 -0
  16. package/dist/commands/donate.commands.d.ts +5 -0
  17. package/dist/commands/donate.commands.d.ts.map +1 -0
  18. package/dist/commands/donate.commands.js +177 -0
  19. package/dist/commands/donate.commands.js.map +1 -0
  20. package/dist/commands/index.d.ts +1 -0
  21. package/dist/commands/index.d.ts.map +1 -1
  22. package/dist/commands/index.js +3 -1
  23. package/dist/commands/index.js.map +1 -1
  24. package/dist/commands/lottery.commands.d.ts +5 -0
  25. package/dist/commands/lottery.commands.d.ts.map +1 -0
  26. package/dist/commands/lottery.commands.js +330 -0
  27. package/dist/commands/lottery.commands.js.map +1 -0
  28. package/dist/commands/platform-label.commands.d.ts +11 -0
  29. package/dist/commands/platform-label.commands.d.ts.map +1 -0
  30. package/dist/commands/platform-label.commands.js +173 -0
  31. package/dist/commands/platform-label.commands.js.map +1 -0
  32. package/dist/commands/platform.commands.d.ts +13 -0
  33. package/dist/commands/platform.commands.d.ts.map +1 -0
  34. package/dist/commands/platform.commands.js +366 -0
  35. package/dist/commands/platform.commands.js.map +1 -0
  36. package/dist/commands/promotion.commands.d.ts +12 -0
  37. package/dist/commands/promotion.commands.d.ts.map +1 -0
  38. package/dist/commands/promotion.commands.js +98 -0
  39. package/dist/commands/promotion.commands.js.map +1 -0
  40. package/dist/commands/qa.commands.d.ts +4 -0
  41. package/dist/commands/qa.commands.d.ts.map +1 -0
  42. package/dist/commands/qa.commands.js +159 -0
  43. package/dist/commands/qa.commands.js.map +1 -0
  44. package/dist/commands/questionnaire.commands.d.ts +4 -0
  45. package/dist/commands/questionnaire.commands.d.ts.map +1 -0
  46. package/dist/commands/questionnaire.commands.js +187 -0
  47. package/dist/commands/questionnaire.commands.js.map +1 -0
  48. package/dist/commands/transmit.commands.d.ts +12 -0
  49. package/dist/commands/transmit.commands.d.ts.map +1 -0
  50. package/dist/commands/transmit.commands.js +98 -0
  51. package/dist/commands/transmit.commands.js.map +1 -0
  52. package/dist/commands/viewer.commands.d.ts +5 -0
  53. package/dist/commands/viewer.commands.d.ts.map +1 -0
  54. package/dist/commands/viewer.commands.js +257 -0
  55. package/dist/commands/viewer.commands.js.map +1 -0
  56. package/dist/commands/watch-condition.commands.d.ts +5 -0
  57. package/dist/commands/watch-condition.commands.d.ts.map +1 -0
  58. package/dist/commands/watch-condition.commands.js +158 -0
  59. package/dist/commands/watch-condition.commands.js.map +1 -0
  60. package/dist/commands/whitelist.commands.d.ts +5 -0
  61. package/dist/commands/whitelist.commands.d.ts.map +1 -0
  62. package/dist/commands/whitelist.commands.js +216 -0
  63. package/dist/commands/whitelist.commands.js.map +1 -0
  64. package/dist/handlers/ai-digital-human.handler.d.ts +18 -0
  65. package/dist/handlers/ai-digital-human.handler.d.ts.map +1 -0
  66. package/dist/handlers/ai-digital-human.handler.js +134 -0
  67. package/dist/handlers/ai-digital-human.handler.js.map +1 -0
  68. package/dist/handlers/card-push.handler.d.ts +25 -0
  69. package/dist/handlers/card-push.handler.d.ts.map +1 -0
  70. package/dist/handlers/card-push.handler.js +287 -0
  71. package/dist/handlers/card-push.handler.js.map +1 -0
  72. package/dist/handlers/chat.handler.d.ts +17 -1
  73. package/dist/handlers/chat.handler.d.ts.map +1 -1
  74. package/dist/handlers/chat.handler.js +272 -0
  75. package/dist/handlers/chat.handler.js.map +1 -1
  76. package/dist/handlers/checkin.handler.d.ts +22 -0
  77. package/dist/handlers/checkin.handler.d.ts.map +1 -0
  78. package/dist/handlers/checkin.handler.js +261 -0
  79. package/dist/handlers/checkin.handler.js.map +1 -0
  80. package/dist/handlers/donate.handler.d.ts +18 -0
  81. package/dist/handlers/donate.handler.d.ts.map +1 -0
  82. package/dist/handlers/donate.handler.js +221 -0
  83. package/dist/handlers/donate.handler.js.map +1 -0
  84. package/dist/handlers/lottery.handler.d.ts +29 -0
  85. package/dist/handlers/lottery.handler.d.ts.map +1 -0
  86. package/dist/handlers/lottery.handler.js +386 -0
  87. package/dist/handlers/lottery.handler.js.map +1 -0
  88. package/dist/handlers/platform-label.handler.d.ts +18 -0
  89. package/dist/handlers/platform-label.handler.d.ts.map +1 -0
  90. package/dist/handlers/platform-label.handler.js +113 -0
  91. package/dist/handlers/platform-label.handler.js.map +1 -0
  92. package/dist/handlers/platform.handler.d.ts +24 -0
  93. package/dist/handlers/platform.handler.d.ts.map +1 -0
  94. package/dist/handlers/platform.handler.js +302 -0
  95. package/dist/handlers/platform.handler.js.map +1 -0
  96. package/dist/handlers/promotion.handler.d.ts +16 -0
  97. package/dist/handlers/promotion.handler.d.ts.map +1 -0
  98. package/dist/handlers/promotion.handler.js +103 -0
  99. package/dist/handlers/promotion.handler.js.map +1 -0
  100. package/dist/handlers/qa-questionnaire.handler.d.ts +27 -0
  101. package/dist/handlers/qa-questionnaire.handler.d.ts.map +1 -0
  102. package/dist/handlers/qa-questionnaire.handler.js +386 -0
  103. package/dist/handlers/qa-questionnaire.handler.js.map +1 -0
  104. package/dist/handlers/transmit.handler.d.ts +15 -0
  105. package/dist/handlers/transmit.handler.d.ts.map +1 -0
  106. package/dist/handlers/transmit.handler.js +86 -0
  107. package/dist/handlers/transmit.handler.js.map +1 -0
  108. package/dist/handlers/viewer.handler.d.ts +23 -0
  109. package/dist/handlers/viewer.handler.d.ts.map +1 -0
  110. package/dist/handlers/viewer.handler.js +322 -0
  111. package/dist/handlers/viewer.handler.js.map +1 -0
  112. package/dist/handlers/watch-condition.handler.d.ts +18 -0
  113. package/dist/handlers/watch-condition.handler.d.ts.map +1 -0
  114. package/dist/handlers/watch-condition.handler.js +178 -0
  115. package/dist/handlers/watch-condition.handler.js.map +1 -0
  116. package/dist/handlers/whitelist.handler.d.ts +20 -0
  117. package/dist/handlers/whitelist.handler.d.ts.map +1 -0
  118. package/dist/handlers/whitelist.handler.js +241 -0
  119. package/dist/handlers/whitelist.handler.js.map +1 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +30 -4
  122. package/dist/index.js.map +1 -1
  123. package/dist/services/ai-digital-human-service.d.ts +10 -0
  124. package/dist/services/ai-digital-human-service.d.ts.map +1 -0
  125. package/dist/services/ai-digital-human-service.js +64 -0
  126. package/dist/services/ai-digital-human-service.js.map +1 -0
  127. package/dist/services/card-push-service.d.ts +16 -0
  128. package/dist/services/card-push-service.d.ts.map +1 -0
  129. package/dist/services/card-push-service.js +153 -0
  130. package/dist/services/card-push-service.js.map +1 -0
  131. package/dist/services/chat.service.sdk.d.ts +39 -1
  132. package/dist/services/chat.service.sdk.d.ts.map +1 -1
  133. package/dist/services/chat.service.sdk.js +60 -0
  134. package/dist/services/chat.service.sdk.js.map +1 -1
  135. package/dist/services/checkin-service.d.ts +14 -0
  136. package/dist/services/checkin-service.d.ts.map +1 -0
  137. package/dist/services/checkin-service.js +89 -0
  138. package/dist/services/checkin-service.js.map +1 -0
  139. package/dist/services/donate-service.d.ts +12 -0
  140. package/dist/services/donate-service.d.ts.map +1 -0
  141. package/dist/services/donate-service.js +59 -0
  142. package/dist/services/donate-service.js.map +1 -0
  143. package/dist/services/lottery-service.d.ts +17 -0
  144. package/dist/services/lottery-service.d.ts.map +1 -0
  145. package/dist/services/lottery-service.js +84 -0
  146. package/dist/services/lottery-service.js.map +1 -0
  147. package/dist/services/platform-label-service.d.ts +21 -0
  148. package/dist/services/platform-label-service.d.ts.map +1 -0
  149. package/dist/services/platform-label-service.js +56 -0
  150. package/dist/services/platform-label-service.js.map +1 -0
  151. package/dist/services/platform-service.d.ts +47 -0
  152. package/dist/services/platform-service.d.ts.map +1 -0
  153. package/dist/services/platform-service.js +144 -0
  154. package/dist/services/platform-service.js.map +1 -0
  155. package/dist/services/promotion-service.d.ts +12 -0
  156. package/dist/services/promotion-service.d.ts.map +1 -0
  157. package/dist/services/promotion-service.js +54 -0
  158. package/dist/services/promotion-service.js.map +1 -0
  159. package/dist/services/qa-questionnaire-service.d.ts +15 -0
  160. package/dist/services/qa-questionnaire-service.d.ts.map +1 -0
  161. package/dist/services/qa-questionnaire-service.js +102 -0
  162. package/dist/services/qa-questionnaire-service.js.map +1 -0
  163. package/dist/services/stream.service.sdk.d.ts.map +1 -1
  164. package/dist/services/stream.service.sdk.js +8 -12
  165. package/dist/services/stream.service.sdk.js.map +1 -1
  166. package/dist/services/transmit-service.d.ts +9 -0
  167. package/dist/services/transmit-service.d.ts.map +1 -0
  168. package/dist/services/transmit-service.js +45 -0
  169. package/dist/services/transmit-service.js.map +1 -0
  170. package/dist/services/viewer-service.d.ts +29 -0
  171. package/dist/services/viewer-service.d.ts.map +1 -0
  172. package/dist/services/viewer-service.js +106 -0
  173. package/dist/services/viewer-service.js.map +1 -0
  174. package/dist/services/watch-condition-service.d.ts +16 -0
  175. package/dist/services/watch-condition-service.d.ts.map +1 -0
  176. package/dist/services/watch-condition-service.js +38 -0
  177. package/dist/services/watch-condition-service.js.map +1 -0
  178. package/dist/services/whitelist-service.d.ts +50 -0
  179. package/dist/services/whitelist-service.d.ts.map +1 -0
  180. package/dist/services/whitelist-service.js +56 -0
  181. package/dist/services/whitelist-service.js.map +1 -0
  182. package/dist/types/ai-digital-human.d.ts +49 -0
  183. package/dist/types/ai-digital-human.d.ts.map +1 -0
  184. package/dist/types/ai-digital-human.js +3 -0
  185. package/dist/types/ai-digital-human.js.map +1 -0
  186. package/dist/types/card-push.d.ts +151 -0
  187. package/dist/types/card-push.d.ts.map +1 -0
  188. package/dist/types/card-push.js +3 -0
  189. package/dist/types/card-push.js.map +1 -0
  190. package/dist/types/chat.d.ts +35 -0
  191. package/dist/types/chat.d.ts.map +1 -1
  192. package/dist/types/checkin.d.ts +57 -0
  193. package/dist/types/checkin.d.ts.map +1 -0
  194. package/dist/types/checkin.js +3 -0
  195. package/dist/types/checkin.js.map +1 -0
  196. package/dist/types/donate.d.ts +92 -0
  197. package/dist/types/donate.d.ts.map +1 -0
  198. package/dist/types/donate.js +3 -0
  199. package/dist/types/donate.js.map +1 -0
  200. package/dist/types/index.d.ts +2 -0
  201. package/dist/types/index.d.ts.map +1 -1
  202. package/dist/types/index.js +2 -0
  203. package/dist/types/index.js.map +1 -1
  204. package/dist/types/lottery.d.ts +110 -0
  205. package/dist/types/lottery.d.ts.map +1 -0
  206. package/dist/types/lottery.js +3 -0
  207. package/dist/types/lottery.js.map +1 -0
  208. package/dist/types/platform-label.d.ts +29 -0
  209. package/dist/types/platform-label.d.ts.map +1 -0
  210. package/dist/types/platform-label.js +3 -0
  211. package/dist/types/platform-label.js.map +1 -0
  212. package/dist/types/platform.d.ts +44 -0
  213. package/dist/types/platform.d.ts.map +1 -0
  214. package/dist/types/platform.js +11 -0
  215. package/dist/types/platform.js.map +1 -0
  216. package/dist/types/promotion.d.ts +31 -0
  217. package/dist/types/promotion.d.ts.map +1 -0
  218. package/dist/types/promotion.js +3 -0
  219. package/dist/types/promotion.js.map +1 -0
  220. package/dist/types/qa.d.ts +90 -0
  221. package/dist/types/qa.d.ts.map +1 -0
  222. package/dist/types/qa.js +3 -0
  223. package/dist/types/qa.js.map +1 -0
  224. package/dist/types/transmit.d.ts +40 -0
  225. package/dist/types/transmit.d.ts.map +1 -0
  226. package/dist/types/transmit.js +3 -0
  227. package/dist/types/transmit.js.map +1 -0
  228. package/dist/types/viewer.d.ts +36 -0
  229. package/dist/types/viewer.d.ts.map +1 -0
  230. package/dist/types/viewer.js +3 -0
  231. package/dist/types/viewer.js.map +1 -0
  232. package/dist/types/watch-condition.d.ts +49 -0
  233. package/dist/types/watch-condition.d.ts.map +1 -0
  234. package/dist/types/watch-condition.js +18 -0
  235. package/dist/types/watch-condition.js.map +1 -0
  236. package/dist/types/whitelist.d.ts +36 -0
  237. package/dist/types/whitelist.d.ts.map +1 -0
  238. package/dist/types/whitelist.js +3 -0
  239. package/dist/types/whitelist.js.map +1 -0
  240. package/package.json +4 -4
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlatformHandler = void 0;
4
+ const base_handler_1 = require("./base.handler");
5
+ const errors_1 = require("../utils/errors");
6
+ const platform_service_1 = require("../services/platform-service");
7
+ const platform_1 = require("../types/platform");
8
+ class PlatformHandler extends base_handler_1.BaseHandler {
9
+ constructor(authConfig, serviceConfig) {
10
+ super();
11
+ this.platformService = new platform_service_1.PlatformServiceSdk(authConfig, serviceConfig);
12
+ }
13
+ async getAccountInfo(options) {
14
+ return this.executeWithErrorHandling(async () => {
15
+ const format = options.output || 'table';
16
+ const userInfo = await this.platformService.getUserInfo();
17
+ if (format === 'json') {
18
+ this.displayData(userInfo, 'json');
19
+ }
20
+ else {
21
+ this.displayUserInfoTable(userInfo);
22
+ }
23
+ }, 'platform.getAccountInfo');
24
+ }
25
+ async getSwitchConfig(options) {
26
+ return this.executeWithErrorHandling(async () => {
27
+ const format = options.output || 'table';
28
+ const switchConfig = await this.platformService.getSwitchConfig();
29
+ if (format === 'json') {
30
+ this.displayData(switchConfig, 'json');
31
+ }
32
+ else {
33
+ this.displaySwitchConfigTable(switchConfig.config);
34
+ }
35
+ }, 'platform.getSwitchConfig');
36
+ }
37
+ async updateSwitchConfig(options) {
38
+ return this.executeWithErrorHandling(async () => {
39
+ const format = options.output || 'table';
40
+ this.validateUpdateOptions(options);
41
+ const result = await this.platformService.updateSwitchConfig({
42
+ param: options.param,
43
+ enabled: options.enabled,
44
+ });
45
+ if (format === 'json') {
46
+ this.displayData({ success: result.success, param: options.param, enabled: options.enabled }, 'json');
47
+ }
48
+ else {
49
+ this.displaySuccess(`Successfully updated switch config: ${options.param} = ${options.enabled}`);
50
+ }
51
+ }, 'platform.updateSwitchConfig');
52
+ }
53
+ async getCallbackSettings(options) {
54
+ return this.executeWithErrorHandling(async () => {
55
+ const format = options.output || 'table';
56
+ const callbackSettings = await this.platformService.getCallbackSettings();
57
+ if (format === 'json') {
58
+ this.displayData(callbackSettings, 'json');
59
+ }
60
+ else {
61
+ this.displayCallbackSettingsTable(callbackSettings);
62
+ }
63
+ }, 'platform.getCallbackSettings');
64
+ }
65
+ async updateCallbackSettings(options) {
66
+ return this.executeWithErrorHandling(async () => {
67
+ const format = options.output || 'table';
68
+ this.validateCallbackOptions(options);
69
+ const enabledBoolean = options.enabled !== undefined ? options.enabled === 'Y' : undefined;
70
+ const updateParams = {};
71
+ if (options.url !== undefined) {
72
+ updateParams.url = options.url;
73
+ }
74
+ if (enabledBoolean !== undefined) {
75
+ updateParams.enabled = enabledBoolean;
76
+ }
77
+ await this.platformService.updateCallbackSettings(updateParams);
78
+ if (format === 'json') {
79
+ this.displayData({ success: true, url: options.url, enabled: options.enabled }, 'json');
80
+ }
81
+ else {
82
+ this.displaySuccess(`Successfully updated callback settings.`);
83
+ if (options.url) {
84
+ this.displayInfo(`Callback URL: ${options.url}`);
85
+ }
86
+ if (options.enabled) {
87
+ this.displayInfo(`Enabled: ${options.enabled === 'Y' ? 'Yes' : 'No'}`);
88
+ }
89
+ }
90
+ }, 'platform.updateCallbackSettings');
91
+ }
92
+ async getGlobalSettings(options) {
93
+ return this.executeWithErrorHandling(async () => {
94
+ const format = options.output || 'table';
95
+ const globalSettings = await this.platformService.getGlobalChannelSettings();
96
+ if (format === 'json') {
97
+ this.displayData(globalSettings, 'json');
98
+ }
99
+ else {
100
+ this.displayGlobalSettingsTable(globalSettings);
101
+ }
102
+ }, 'platform.getGlobalSettings');
103
+ }
104
+ async updateGlobalSettings(options) {
105
+ return this.executeWithErrorHandling(async () => {
106
+ const format = options.output || 'table';
107
+ this.validateGlobalSettingsOptions(options);
108
+ const updateParams = {};
109
+ if (options.channelConcurrencesEnabled !== undefined) {
110
+ updateParams.channelConcurrencesEnabled = options.channelConcurrencesEnabled;
111
+ }
112
+ if (options.timelyConvertEnabled !== undefined) {
113
+ updateParams.timelyConvertEnabled = options.timelyConvertEnabled;
114
+ }
115
+ if (options.donateEnabled !== undefined) {
116
+ updateParams.donateEnabled = options.donateEnabled;
117
+ }
118
+ if (options.rebirthAutoUploadEnabled !== undefined) {
119
+ updateParams.rebirthAutoUploadEnabled = options.rebirthAutoUploadEnabled;
120
+ }
121
+ if (options.rebirthAutoConvertEnabled !== undefined) {
122
+ updateParams.rebirthAutoConvertEnabled = options.rebirthAutoConvertEnabled;
123
+ }
124
+ if (options.pptCoveredEnabled !== undefined) {
125
+ updateParams.pptCoveredEnabled = options.pptCoveredEnabled;
126
+ }
127
+ if (options.coverImgType !== undefined) {
128
+ updateParams.coverImgType = options.coverImgType;
129
+ }
130
+ if (options.testModeButtonEnabled !== undefined) {
131
+ updateParams.testModeButtonEnabled = options.testModeButtonEnabled;
132
+ }
133
+ await this.platformService.updateGlobalChannelSettings(updateParams);
134
+ if (format === 'json') {
135
+ this.displayData({ success: true, ...updateParams }, 'json');
136
+ }
137
+ else {
138
+ this.displaySuccess('Successfully updated global settings.');
139
+ this.displayUpdatedGlobalSettingsTable(updateParams);
140
+ }
141
+ }, 'platform.updateGlobalSettings');
142
+ }
143
+ displayGlobalSettingsTable(settings) {
144
+ const fieldNames = {
145
+ channelConcurrencesEnabled: '最大并发人数开关',
146
+ timelyConvertEnabled: '自动转码开关',
147
+ donateEnabled: '打赏开关',
148
+ rebirthAutoUploadEnabled: '复活自动上传PPT',
149
+ rebirthAutoConvertEnabled: '复活自动转码',
150
+ pptCoveredEnabled: 'PPT全屏开关',
151
+ coverImgType: '封面图类型',
152
+ testModeButtonEnabled: '测试模式按钮',
153
+ };
154
+ const rows = Object.entries(settings)
155
+ .filter(([_, value]) => value !== undefined)
156
+ .map(([key, value]) => {
157
+ const displayName = fieldNames[key] || key;
158
+ let displayValue = value;
159
+ if (key !== 'coverImgType' && (value === 'Y' || value === 'N')) {
160
+ displayValue = value === 'Y' ? '开启' : '禁用';
161
+ }
162
+ return [displayName, String(displayValue)];
163
+ });
164
+ this.displayAsTable(rows.map(([displayName, displayValue]) => ({
165
+ '设置项': displayName,
166
+ '值': displayValue
167
+ })));
168
+ }
169
+ displayUpdatedGlobalSettingsTable(settings) {
170
+ const fieldNames = {
171
+ channelConcurrencesEnabled: '最大并发人数开关',
172
+ timelyConvertEnabled: '自动转码开关',
173
+ donateEnabled: '打赏开关',
174
+ rebirthAutoUploadEnabled: '复活自动上传PPT',
175
+ rebirthAutoConvertEnabled: '复活自动转码',
176
+ pptCoveredEnabled: 'PPT全屏开关',
177
+ coverImgType: '封面图类型',
178
+ testModeButtonEnabled: '测试模式按钮',
179
+ };
180
+ const rows = Object.entries(settings)
181
+ .filter(([key]) => key !== 'output')
182
+ .filter(([_, value]) => value !== undefined)
183
+ .map(([key, value]) => {
184
+ const displayName = fieldNames[key] || key;
185
+ let displayValue = value;
186
+ if (key !== 'coverImgType' && (value === 'Y' || value === 'N')) {
187
+ displayValue = value === 'Y' ? '开启' : '禁用';
188
+ }
189
+ return [displayName, String(displayValue)];
190
+ });
191
+ this.displayAsTable(rows.map(([displayName, displayValue]) => ({
192
+ '设置项': displayName,
193
+ '新值': displayValue
194
+ })));
195
+ }
196
+ validateUpdateOptions(options) {
197
+ const errors = [];
198
+ if (!options.param || typeof options.param !== 'string' || options.param.trim().length === 0) {
199
+ errors.push('param (配置项名称) 是必需的');
200
+ }
201
+ else if (!platform_1.VALID_SWITCH_PARAMS.includes(options.param)) {
202
+ errors.push(`不支持的配置项: ${options.param}。可用配置项: ${platform_1.VALID_SWITCH_PARAMS.join(', ')}`);
203
+ }
204
+ if (!options.enabled || typeof options.enabled !== 'string') {
205
+ errors.push('enabled 必须是 Y 或 N');
206
+ }
207
+ else if (options.enabled !== 'Y' && options.enabled !== 'N') {
208
+ errors.push('enabled 必须是 Y 或 N');
209
+ }
210
+ if (errors.length > 0) {
211
+ throw new errors_1.PolyVValidationError(errors.join('; '), 'options', options, 'validation_failed');
212
+ }
213
+ }
214
+ validateCallbackOptions(options) {
215
+ const errors = [];
216
+ if (!options.url && !options.enabled) {
217
+ errors.push('至少需要提供一个参数 (url 或 enabled)');
218
+ }
219
+ if (options.url !== undefined && options.url !== '') {
220
+ if (!options.url.startsWith('http://') && !options.url.startsWith('https://')) {
221
+ errors.push('url 必须以 http:// 或 https:// 开头');
222
+ }
223
+ }
224
+ if (options.enabled !== undefined) {
225
+ if (options.enabled !== 'Y' && options.enabled !== 'N') {
226
+ errors.push('enabled 必须是 Y 或 N');
227
+ }
228
+ }
229
+ if (errors.length > 0) {
230
+ throw new errors_1.PolyVValidationError(errors.join('; '), 'options', options, 'validation_failed');
231
+ }
232
+ }
233
+ displayUserInfoTable(userInfo) {
234
+ const tableData = {
235
+ '用户 ID': userInfo.userId,
236
+ '邮箱': userInfo.email,
237
+ '最大频道数': userInfo.maxChannels,
238
+ '总频道数': userInfo.totalChannels,
239
+ '可用频道数': userInfo.availableChannels,
240
+ '连麦限制': userInfo.linkMicLimit,
241
+ '观看域名': userInfo.watchDomain || '-',
242
+ };
243
+ this.displayAsTable(tableData);
244
+ }
245
+ displaySwitchConfigTable(config) {
246
+ const tableData = [
247
+ { '开关名称': '全局设置', '状态': config.globalSettingEnabled ? 'enabled' : 'disabled' },
248
+ { '开关名称': '认证', '状态': config.authEnabled ? 'enabled' : 'disabled' },
249
+ { '开关名称': '录制', '状态': config.recordEnabled ? 'enabled' : 'disabled' },
250
+ { '开关名称': '回放', '状态': config.playbackEnabled ? 'enabled' : 'disabled' },
251
+ { '开关名称': '弹幕', '状态': config.danmuEnabled ? 'enabled' : 'disabled' },
252
+ ];
253
+ this.displayAsTable(tableData);
254
+ }
255
+ displayCallbackSettingsTable(settings) {
256
+ const tableData = {
257
+ 'Callback URL': settings.url || '-',
258
+ 'Enabled': settings.enabled ? 'Yes' : 'No',
259
+ };
260
+ this.displayAsTable(tableData);
261
+ }
262
+ validateGlobalSettingsOptions(options) {
263
+ const errors = [];
264
+ if (options.channelConcurrencesEnabled === undefined &&
265
+ options.timelyConvertEnabled === undefined &&
266
+ options.donateEnabled === undefined &&
267
+ options.rebirthAutoUploadEnabled === undefined &&
268
+ options.rebirthAutoConvertEnabled === undefined &&
269
+ options.pptCoveredEnabled === undefined &&
270
+ options.coverImgType === undefined &&
271
+ options.testModeButtonEnabled === undefined) {
272
+ errors.push('至少需要提供一个参数 (At least one parameter is required)');
273
+ }
274
+ const booleanFields = [
275
+ 'channelConcurrencesEnabled',
276
+ 'timelyConvertEnabled',
277
+ 'donateEnabled',
278
+ 'rebirthAutoUploadEnabled',
279
+ 'rebirthAutoConvertEnabled',
280
+ 'pptCoveredEnabled',
281
+ 'testModeButtonEnabled',
282
+ ];
283
+ for (const field of booleanFields) {
284
+ const value = options[field];
285
+ if (value !== undefined) {
286
+ if (value !== 'Y' && value !== 'N') {
287
+ errors.push(`${field} 必须是 Y 或 N`);
288
+ }
289
+ }
290
+ }
291
+ if (options.coverImgType !== undefined) {
292
+ if (options.coverImgType !== 'contain' && options.coverImgType !== 'cover') {
293
+ errors.push('coverImgType 必须是 contain 或 cover');
294
+ }
295
+ }
296
+ if (errors.length > 0) {
297
+ throw new errors_1.PolyVValidationError(errors.join('; '), 'options', options, 'validation_failed');
298
+ }
299
+ }
300
+ }
301
+ exports.PlatformHandler = PlatformHandler;
302
+ //# sourceMappingURL=platform.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.handler.js","sourceRoot":"","sources":["../../src/handlers/platform.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { BaseHandler } from './base.handler';
2
+ import { AuthConfig } from '../types/auth';
3
+ import { PromotionListOptions, PromotionCreateOptions, PromotionServiceConfig } from '../types/promotion';
4
+ export type { PromotionListOptions, PromotionCreateOptions };
5
+ export declare class PromotionHandler extends BaseHandler {
6
+ private readonly promotionService;
7
+ constructor(authConfig: AuthConfig, serviceConfig: PromotionServiceConfig);
8
+ listPromotions(options: PromotionListOptions): Promise<void>;
9
+ createPromotions(options: PromotionCreateOptions): Promise<void>;
10
+ private validateListOptions;
11
+ private validateCreateOptions;
12
+ private displayPromotionsTable;
13
+ private displayCreatedPromotionsTable;
14
+ private formatTimestamp;
15
+ }
16
+ //# sourceMappingURL=promotion.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/promotion.handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAgB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAGvB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,CAAC;AAK7D,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;gBAO3C,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB;IAUnE,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5D,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBtE,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,qBAAqB;IAgD7B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,6BAA6B;IAgBrC,OAAO,CAAC,eAAe;CASxB"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromotionHandler = void 0;
4
+ const base_handler_1 = require("./base.handler");
5
+ const errors_1 = require("../utils/errors");
6
+ const promotion_service_1 = require("../services/promotion-service");
7
+ class PromotionHandler extends base_handler_1.BaseHandler {
8
+ constructor(authConfig, serviceConfig) {
9
+ super();
10
+ this.promotionService = new promotion_service_1.PromotionServiceSdk(authConfig, serviceConfig);
11
+ }
12
+ async listPromotions(options) {
13
+ const format = options.output || 'table';
14
+ this.validateListOptions(options);
15
+ const promotions = await this.promotionService.listPopularizations(options.channelId);
16
+ if (format === 'json') {
17
+ this.displayData(promotions, 'json');
18
+ }
19
+ else {
20
+ this.displayPromotionsTable(promotions);
21
+ }
22
+ }
23
+ async createPromotions(options) {
24
+ const format = options.output || 'table';
25
+ this.validateCreateOptions(options);
26
+ const createdPromotions = await this.promotionService.batchCreatePopularizations({
27
+ channelId: options.channelId,
28
+ names: options.names,
29
+ });
30
+ if (format === 'json') {
31
+ this.displayData(createdPromotions, 'json');
32
+ }
33
+ else {
34
+ this.displayCreatedPromotionsTable(createdPromotions);
35
+ }
36
+ }
37
+ validateListOptions(options) {
38
+ if (!options.channelId || options.channelId.trim() === '') {
39
+ throw new errors_1.PolyVValidationError('channelId is required (频道ID是必需的)', 'channelId', options.channelId, 'required');
40
+ }
41
+ if (options.output && options.output !== 'table' && options.output !== 'json') {
42
+ throw new errors_1.PolyVValidationError('output format must be table or json (输出格式必须是 table 或 json)', 'output', options.output, 'invalid_format');
43
+ }
44
+ }
45
+ validateCreateOptions(options) {
46
+ if (!options.channelId || options.channelId.trim() === '') {
47
+ throw new errors_1.PolyVValidationError('channelId is required (频道ID是必需的)', 'channelId', options.channelId, 'required');
48
+ }
49
+ if (!options.names || options.names.length === 0) {
50
+ throw new errors_1.PolyVValidationError('names is required and cannot be empty (推广渠道名称是必需的且不能为空)', 'names', options.names, 'required');
51
+ }
52
+ for (const name of options.names) {
53
+ if (!name || name.trim() === '') {
54
+ throw new errors_1.PolyVValidationError('names cannot contain empty strings (推广渠道名称不能包含空字符串)', 'names', options.names, 'invalid_value');
55
+ }
56
+ }
57
+ for (const name of options.names) {
58
+ if (name.length > 20) {
59
+ throw new errors_1.PolyVValidationError('each name cannot exceed 20 characters (每个名称不能超过20个字符)', 'names', options.names, 'invalid_length');
60
+ }
61
+ }
62
+ }
63
+ displayPromotionsTable(promotions) {
64
+ if (promotions.length === 0) {
65
+ console.log('No promotions found (未找到推广渠道)');
66
+ return;
67
+ }
68
+ const tableData = promotions.map((promotion) => {
69
+ return {
70
+ '推广ID': promotion.promoteId,
71
+ '推广名称': promotion.popularizationName,
72
+ '访问次数': promotion.visitsNum,
73
+ '观看人数': promotion.viewerNum,
74
+ '创建时间': this.formatTimestamp(promotion.createdTime),
75
+ };
76
+ });
77
+ this.displayAsTable(tableData);
78
+ }
79
+ displayCreatedPromotionsTable(promotions) {
80
+ if (promotions.length === 0) {
81
+ console.log('No promotions created (未创建推广渠道)');
82
+ return;
83
+ }
84
+ const tableData = promotions.map((promotion) => {
85
+ return {
86
+ '推广ID': promotion.promoteId,
87
+ '推广名称': promotion.popularizationName,
88
+ };
89
+ });
90
+ this.displayAsTable(tableData);
91
+ }
92
+ formatTimestamp(timestamp) {
93
+ const date = new Date(timestamp);
94
+ const year = date.getFullYear();
95
+ const month = String(date.getMonth() + 1).padStart(2, '0');
96
+ const day = String(date.getDate()).padStart(2, '0');
97
+ const hours = String(date.getHours()).padStart(2, '0');
98
+ const minutes = String(date.getMinutes()).padStart(2, '0');
99
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
100
+ }
101
+ }
102
+ exports.PromotionHandler = PromotionHandler;
103
+ //# sourceMappingURL=promotion.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion.handler.js","sourceRoot":"","sources":["../../src/handlers/promotion.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { BaseHandler } from './base.handler';
2
+ import { QaQuestionnaireServiceConfig, QaSendOptions, QaListOptions, QaStopOptions, QuestionnaireCreateOptions, QuestionnaireListOptions, QuestionnaireDetailOptions } from '../types/qa';
3
+ import { AuthConfig } from '../types/auth';
4
+ export declare class QaQuestionnaireHandler extends BaseHandler {
5
+ private readonly service;
6
+ constructor(authConfig: AuthConfig, serviceConfig: QaQuestionnaireServiceConfig);
7
+ sendQa(options: QaSendOptions): Promise<void>;
8
+ listQa(options: QaListOptions): Promise<void>;
9
+ stopQa(options: QaStopOptions): Promise<void>;
10
+ createQuestionnaire(options: QuestionnaireCreateOptions): Promise<void>;
11
+ listQuestionnaires(options: QuestionnaireListOptions): Promise<void>;
12
+ getQuestionnaireDetail(options: QuestionnaireDetailOptions): Promise<void>;
13
+ private validateSendOptions;
14
+ private validateListOptions;
15
+ private validateStopOptions;
16
+ private validateCreateOptions;
17
+ private validateListQuestionnairesOptions;
18
+ private validateDetailOptions;
19
+ private displaySendResult;
20
+ private displayListResult;
21
+ private displayStopResult;
22
+ private displayCreateResult;
23
+ private displayListQuestionnairesResult;
24
+ private displayDetailResult;
25
+ private truncate;
26
+ }
27
+ //# sourceMappingURL=qa-questionnaire.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qa-questionnaire.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/qa-questionnaire.handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACL,4BAA4B,EAC5B,aAAa,EACb,aAAa,EACb,aAAa,EACb,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,qBAAa,sBAAuB,SAAQ,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAOxC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,4BAA4B;IAiBzE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7C,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B7C,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B7C,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCvE,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCpE,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhF,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,qBAAqB;IAmE7B,OAAO,CAAC,iCAAiC;IAyCzC,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,+BAA+B;IA4BvC,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,QAAQ;CAIjB"}