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,322 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewerHandler = void 0;
4
+ const base_handler_1 = require("./base.handler");
5
+ const viewer_service_1 = require("../services/viewer-service");
6
+ const errors_1 = require("../utils/errors");
7
+ class ViewerHandler extends base_handler_1.BaseHandler {
8
+ constructor(authConfig, serviceConfig) {
9
+ super();
10
+ this.viewerService = new viewer_service_1.ViewerServiceSdk(authConfig, serviceConfig);
11
+ }
12
+ async getViewer(options) {
13
+ return this.executeWithErrorHandling(async () => {
14
+ this.validateGetOptions(options);
15
+ const result = await this.viewerService.getViewerRecord({
16
+ viewerUnionId: options.viewerId,
17
+ });
18
+ this.displayGetResult(result, options);
19
+ }, 'viewer.get');
20
+ }
21
+ async listViewers(options) {
22
+ return this.executeWithErrorHandling(async () => {
23
+ this.validatePaginationOptions(options);
24
+ const params = {
25
+ pageNumber: options.page ?? 1,
26
+ pageSize: options.size ?? 10,
27
+ };
28
+ if (options.source) {
29
+ params.source = options.source;
30
+ }
31
+ if (options.mobile) {
32
+ params.mobile = options.mobile;
33
+ }
34
+ if (options.email) {
35
+ params.email = options.email;
36
+ }
37
+ if (options.area) {
38
+ params.area = options.area;
39
+ }
40
+ const result = await this.viewerService.listViewerRecords(params);
41
+ this.displayListResult(result, options);
42
+ }, 'viewer.list');
43
+ }
44
+ async listViewerTags(options) {
45
+ return this.executeWithErrorHandling(async () => {
46
+ this.validatePaginationOptions(options);
47
+ const result = await this.viewerService.listViewerLabels();
48
+ let contents = result?.contents || [];
49
+ if (options.keyword) {
50
+ const keywordLower = options.keyword.toLowerCase();
51
+ contents = contents.filter((label) => label.labelName?.toLowerCase().includes(keywordLower));
52
+ }
53
+ const page = options.page ?? 1;
54
+ const size = options.size ?? 10;
55
+ const startIndex = (page - 1) * size;
56
+ const paginatedContents = contents.slice(startIndex, startIndex + size);
57
+ this.displayTagListResult({
58
+ contents: paginatedContents,
59
+ totalItems: contents.length,
60
+ pageNumber: page,
61
+ pageSize: size,
62
+ totalPages: Math.ceil(contents.length / size),
63
+ }, options);
64
+ }, 'viewer.tag.list');
65
+ }
66
+ async addViewerTag(options) {
67
+ return this.executeWithErrorHandling(async () => {
68
+ const { viewerIds, labelIds } = this.parseAndValidateTagOptions(options);
69
+ const total = viewerIds.length * labelIds.length;
70
+ if (total > 10) {
71
+ this.displayInfo(`正在为 ${viewerIds.length} 个观众添加 ${labelIds.length} 个标签 (共 ${total} 个操作)...`);
72
+ }
73
+ const summary = await this.viewerService.addViewersLabels(viewerIds, labelIds, total > 50 ? (completed, total) => {
74
+ if (completed % 10 === 0 || completed === total) {
75
+ this.displayInfo(`进度: ${completed}/${total}`);
76
+ }
77
+ } : undefined);
78
+ this.displayTagActionResult('添加', summary, options);
79
+ }, 'viewer.tag.add');
80
+ }
81
+ async removeViewerTag(options) {
82
+ return this.executeWithErrorHandling(async () => {
83
+ const { viewerIds, labelIds } = this.parseAndValidateTagOptions(options);
84
+ const total = viewerIds.length * labelIds.length;
85
+ if (total > 10) {
86
+ this.displayInfo(`正在为 ${viewerIds.length} 个观众移除 ${labelIds.length} 个标签 (共 ${total} 个操作)...`);
87
+ }
88
+ const summary = await this.viewerService.removeViewersLabels(viewerIds, labelIds, total > 50 ? (completed, total) => {
89
+ if (completed % 10 === 0 || completed === total) {
90
+ this.displayInfo(`进度: ${completed}/${total}`);
91
+ }
92
+ } : undefined);
93
+ this.displayTagActionResult('移除', summary, options);
94
+ }, 'viewer.tag.remove');
95
+ }
96
+ validateGetOptions(options) {
97
+ const errors = [];
98
+ if (!options.viewerId || options.viewerId.trim() === '') {
99
+ errors.push('观众ID是必需的');
100
+ }
101
+ if (options.output && !['table', 'json'].includes(options.output)) {
102
+ errors.push('输出格式必须是 "table" 或 "json"');
103
+ }
104
+ if (errors.length > 0) {
105
+ throw new errors_1.PolyVValidationError(errors.join(', '), 'options', options, 'validation_failed');
106
+ }
107
+ }
108
+ validatePaginationOptions(options) {
109
+ const errors = [];
110
+ if (options.page !== undefined) {
111
+ if (typeof options.page !== 'number' || !Number.isInteger(options.page) || options.page < 1) {
112
+ errors.push('页码必须是正整数');
113
+ }
114
+ }
115
+ if (options.size !== undefined) {
116
+ if (typeof options.size !== 'number' || !Number.isInteger(options.size) || options.size < 1) {
117
+ errors.push('每页数量必须是正整数');
118
+ }
119
+ if (options.size > 1000) {
120
+ errors.push('每页数量不能超过 1000');
121
+ }
122
+ }
123
+ if (options.output && !['table', 'json'].includes(options.output)) {
124
+ errors.push('输出格式必须是 "table" 或 "json"');
125
+ }
126
+ if (errors.length > 0) {
127
+ throw new errors_1.PolyVValidationError(errors.join(', '), 'options', options, 'validation_failed');
128
+ }
129
+ }
130
+ parseAndValidateTagOptions(options) {
131
+ const errors = [];
132
+ if (!options.viewerIds || options.viewerIds.trim() === '') {
133
+ errors.push('观众ID列表是必需的');
134
+ }
135
+ if (!options.labelIds || options.labelIds.trim() === '') {
136
+ errors.push('标签ID列表是必需的');
137
+ }
138
+ let viewerIds = [];
139
+ if (options.viewerIds && options.viewerIds.trim() !== '') {
140
+ viewerIds = options.viewerIds
141
+ .split(',')
142
+ .map(id => id.trim())
143
+ .filter(id => id.length > 0);
144
+ if (viewerIds.length === 0) {
145
+ errors.push('观众ID列表不能为空');
146
+ }
147
+ }
148
+ let labelIds = [];
149
+ if (options.labelIds && options.labelIds.trim() !== '') {
150
+ const parsedIds = options.labelIds
151
+ .split(',')
152
+ .map(id => {
153
+ const trimmed = id.trim();
154
+ if (trimmed === '')
155
+ return NaN;
156
+ return parseInt(trimmed, 10);
157
+ });
158
+ const invalidIds = parsedIds.filter(id => isNaN(id));
159
+ if (invalidIds.length > 0) {
160
+ errors.push('标签ID格式无效,必须是数字');
161
+ }
162
+ labelIds = parsedIds.filter(id => !isNaN(id));
163
+ if (labelIds.length === 0 && invalidIds.length === 0) {
164
+ errors.push('标签ID列表不能为空');
165
+ }
166
+ }
167
+ if (options.output && !['table', 'json'].includes(options.output)) {
168
+ errors.push('输出格式必须是 "table" 或 "json"');
169
+ }
170
+ if (errors.length > 0) {
171
+ throw new errors_1.PolyVValidationError(errors.join(', '), 'options', options, 'validation_failed');
172
+ }
173
+ return { viewerIds, labelIds };
174
+ }
175
+ displayGetResult(result, options) {
176
+ if (!result) {
177
+ this.displayInfo(`未找到观众: ${options.viewerId}`);
178
+ return;
179
+ }
180
+ const output = options.output || 'table';
181
+ if (output === 'json') {
182
+ this.displayData(result, 'json');
183
+ }
184
+ else {
185
+ console.log('观众详情:');
186
+ const tableData = {
187
+ '观众ID': this.truncate(result.viewerUnionId || '-', 30),
188
+ '昵称': result.nickname || '-',
189
+ '手机号': result.mobile || '-',
190
+ '来源': result.source || '-',
191
+ '姓名': result.name || '-',
192
+ '邮箱': result.email || '-',
193
+ '地区': result.area || '-',
194
+ '观看时长': this.formatDuration(result.watchDuration),
195
+ '观看频道数': result.watchChannelCount?.toString() || '-',
196
+ '创建时间': this.formatTime(result.createTime),
197
+ };
198
+ this.displayAsTable(tableData);
199
+ }
200
+ }
201
+ displayListResult(result, options) {
202
+ const contents = result?.contents || [];
203
+ const totalItems = result?.totalItems || 0;
204
+ if (totalItems === 0) {
205
+ this.displayInfo('未找到观众');
206
+ return;
207
+ }
208
+ const output = options.output || 'table';
209
+ if (output === 'json') {
210
+ this.displayData({
211
+ pageNumber: result.pageNumber,
212
+ pageSize: result.pageSize,
213
+ totalPages: result.totalPages,
214
+ totalItems: result.totalItems,
215
+ contents: contents
216
+ }, 'json');
217
+ }
218
+ else {
219
+ const tableData = contents.map((item) => ({
220
+ '观众ID': this.truncate(item.viewerUnionId || '-', 20),
221
+ '昵称': this.truncate(item.nickname || '-', 20),
222
+ '手机号': item.mobile || '-',
223
+ '来源': item.source || '-',
224
+ '观看时长': this.formatDuration(item.watchDuration),
225
+ '频道数': item.watchChannelCount?.toString() || '-',
226
+ '创建时间': this.formatTime(item.createTime),
227
+ }));
228
+ console.log(`找到 ${totalItems} 个观众`);
229
+ console.log(`页码: ${result.pageNumber}, 每页: ${result.pageSize}`);
230
+ console.log(`总页数: ${result.totalPages}`);
231
+ if (tableData.length > 0) {
232
+ this.displayAsTable(tableData);
233
+ }
234
+ }
235
+ }
236
+ displayTagListResult(result, options) {
237
+ const contents = result?.contents || [];
238
+ const totalItems = result?.totalItems || 0;
239
+ if (totalItems === 0) {
240
+ const message = options.keyword
241
+ ? `未找到包含关键词 "${options.keyword}" 的标签`
242
+ : '未找到标签';
243
+ this.displayInfo(message);
244
+ return;
245
+ }
246
+ const output = options.output || 'table';
247
+ if (output === 'json') {
248
+ this.displayData({
249
+ pageNumber: result.pageNumber,
250
+ pageSize: result.pageSize,
251
+ totalPages: result.totalPages,
252
+ totalItems: result.totalItems,
253
+ contents: contents
254
+ }, 'json');
255
+ }
256
+ else {
257
+ const tableData = contents.map((item) => ({
258
+ '标签ID': item.labelId?.toString() || '-',
259
+ '标签名称': this.truncate(item.labelName || '-', 30),
260
+ }));
261
+ console.log(`找到 ${totalItems} 个标签`);
262
+ console.log(`页码: ${result.pageNumber}, 每页: ${result.pageSize}`);
263
+ if (tableData.length > 0) {
264
+ this.displayAsTable(tableData);
265
+ }
266
+ }
267
+ }
268
+ displayTagActionResult(action, summary, options) {
269
+ const output = options.output || 'table';
270
+ if (output === 'json') {
271
+ this.displayData({
272
+ action,
273
+ succeeded: summary.succeeded,
274
+ failed: summary.failed,
275
+ total: summary.total,
276
+ results: summary.results,
277
+ }, 'json');
278
+ }
279
+ else {
280
+ if (summary.failed === 0) {
281
+ this.displaySuccess(`成功${action} ${summary.succeeded} 个操作`);
282
+ }
283
+ else {
284
+ this.displayWarning(`${action}完成: 成功 ${summary.succeeded} 个, 失败 ${summary.failed} 个`);
285
+ const failures = summary.results.filter(r => !r.success);
286
+ if (failures.length > 0 && failures.length <= 5) {
287
+ for (const f of failures) {
288
+ console.log(` - 观众 ${f.viewerUnionId}, 标签 ${f.labelId}: ${f.error}`);
289
+ }
290
+ }
291
+ }
292
+ }
293
+ }
294
+ truncate(str, maxLength) {
295
+ if (!str)
296
+ return '-';
297
+ return str.length > maxLength ? str.substring(0, maxLength) + '...' : str;
298
+ }
299
+ formatDuration(seconds) {
300
+ if (!seconds)
301
+ return '-';
302
+ const hours = Math.floor(seconds / 3600);
303
+ const minutes = Math.floor((seconds % 3600) / 60);
304
+ const secs = seconds % 60;
305
+ if (hours > 0) {
306
+ return `${hours}小时 ${minutes}分钟`;
307
+ }
308
+ else if (minutes > 0) {
309
+ return `${minutes}分钟 ${secs}秒`;
310
+ }
311
+ else {
312
+ return `${secs}秒`;
313
+ }
314
+ }
315
+ formatTime(timestamp) {
316
+ if (!timestamp)
317
+ return '-';
318
+ return new Date(timestamp).toLocaleString();
319
+ }
320
+ }
321
+ exports.ViewerHandler = ViewerHandler;
322
+ //# sourceMappingURL=viewer.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer.handler.js","sourceRoot":"","sources":["../../src/handlers/viewer.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BaseHandler } from './base.handler';
2
+ import { WatchConditionServiceConfig, WatchConditionGetOptions, WatchConditionSetOptions } from '../types/watch-condition';
3
+ import { AuthConfig } from '../types/auth';
4
+ export declare class WatchConditionHandler extends BaseHandler {
5
+ private readonly watchConditionService;
6
+ constructor(authConfig: AuthConfig, serviceConfig: WatchConditionServiceConfig);
7
+ getWatchCondition(options: WatchConditionGetOptions): Promise<void>;
8
+ setWatchCondition(options: WatchConditionSetOptions): Promise<void>;
9
+ private validateGetOptions;
10
+ private validateAndBuildAuthSettings;
11
+ private loadAuthSettingsFromConfig;
12
+ private buildAuthSettingsFromOptions;
13
+ private displayGetResult;
14
+ private getAuthTypeDetails;
15
+ private displaySetResult;
16
+ private truncate;
17
+ }
18
+ //# sourceMappingURL=watch-condition.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-condition.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/watch-condition.handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EAIzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2B;gBAOrD,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,2BAA2B;IAiBxE,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnE,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzE,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,0BAA0B;IAiDlC,OAAO,CAAC,4BAA4B;IA6DpC,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,QAAQ;CAIjB"}
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WatchConditionHandler = void 0;
4
+ const fs_1 = require("fs");
5
+ const base_handler_1 = require("./base.handler");
6
+ const watch_condition_service_1 = require("../services/watch-condition-service");
7
+ const watch_condition_1 = require("../types/watch-condition");
8
+ const errors_1 = require("../utils/errors");
9
+ class WatchConditionHandler extends base_handler_1.BaseHandler {
10
+ constructor(authConfig, serviceConfig) {
11
+ super();
12
+ this.watchConditionService = new watch_condition_service_1.WatchConditionServiceSdk(authConfig, serviceConfig);
13
+ }
14
+ async getWatchCondition(options) {
15
+ return this.executeWithErrorHandling(async () => {
16
+ this.validateGetOptions(options);
17
+ const params = {};
18
+ if (options.channelId) {
19
+ params.channelId = options.channelId;
20
+ }
21
+ const result = await this.watchConditionService.getWatchCondition(params);
22
+ this.displayGetResult(result, options);
23
+ }, 'watch-condition.get');
24
+ }
25
+ async setWatchCondition(options) {
26
+ return this.executeWithErrorHandling(async () => {
27
+ const authSettings = this.validateAndBuildAuthSettings(options);
28
+ const params = {
29
+ authSettings,
30
+ };
31
+ if (options.channelId) {
32
+ params.channelId = options.channelId;
33
+ }
34
+ await this.watchConditionService.setWatchCondition(params);
35
+ this.displaySetResult(options);
36
+ }, 'watch-condition.set');
37
+ }
38
+ validateGetOptions(options) {
39
+ const errors = [];
40
+ if (options.output && !['table', 'json'].includes(options.output)) {
41
+ errors.push('输出格式必须是 "table" 或 "json"');
42
+ }
43
+ if (errors.length > 0) {
44
+ throw new errors_1.PolyVValidationError(errors.join(', '), 'options', options, 'validation_failed');
45
+ }
46
+ }
47
+ validateAndBuildAuthSettings(options) {
48
+ if (options.configFile) {
49
+ return this.loadAuthSettingsFromConfig(options.configFile);
50
+ }
51
+ return this.buildAuthSettingsFromOptions(options);
52
+ }
53
+ loadAuthSettingsFromConfig(configPath) {
54
+ if (!(0, fs_1.existsSync)(configPath)) {
55
+ throw new errors_1.PolyVValidationError('配置文件不存在', 'config', configPath, 'file_not_found');
56
+ }
57
+ let configContent;
58
+ try {
59
+ configContent = (0, fs_1.readFileSync)(configPath, 'utf8');
60
+ }
61
+ catch (error) {
62
+ throw new errors_1.PolyVValidationError('无法读取配置文件', 'config', configPath, 'file_read_error');
63
+ }
64
+ let config;
65
+ try {
66
+ config = JSON.parse(configContent);
67
+ }
68
+ catch {
69
+ throw new errors_1.PolyVValidationError('配置文件 JSON 格式无效', 'config', configPath, 'invalid_json');
70
+ }
71
+ if (!config.authSettings || !Array.isArray(config.authSettings)) {
72
+ throw new errors_1.PolyVValidationError('配置文件必须包含 authSettings 字段', 'config', configPath, 'invalid_structure');
73
+ }
74
+ return config.authSettings;
75
+ }
76
+ buildAuthSettingsFromOptions(options) {
77
+ const errors = [];
78
+ if (options.rank !== undefined && ![1, 2].includes(options.rank)) {
79
+ errors.push('rank 必须是 1 (主要条件) 或 2 (次要条件)');
80
+ }
81
+ if (options.authType !== undefined && !watch_condition_1.VALID_AUTH_TYPES.includes(options.authType)) {
82
+ errors.push('无效的认证类型,支持的类型: none, code, pay, phone, info, custom, external, direct');
83
+ }
84
+ if (options.enabled !== undefined && !['Y', 'N'].includes(options.enabled)) {
85
+ errors.push('enabled 必须是 Y 或 N');
86
+ }
87
+ if (options.output && !['table', 'json'].includes(options.output)) {
88
+ errors.push('输出格式必须是 "table" 或 "json"');
89
+ }
90
+ if (errors.length > 0) {
91
+ throw new errors_1.PolyVValidationError(errors.join(', '), 'options', options, 'validation_failed');
92
+ }
93
+ const authSetting = {
94
+ rank: options.rank,
95
+ };
96
+ if (options.enabled !== undefined) {
97
+ authSetting.enabled = options.enabled;
98
+ }
99
+ if (options.authType !== undefined && options.authType !== 'none') {
100
+ authSetting.authType = options.authType;
101
+ }
102
+ if (options.authCode !== undefined) {
103
+ authSetting.authCode = options.authCode;
104
+ }
105
+ if (options.price !== undefined) {
106
+ authSetting.payAmount = Math.round(options.price * 100);
107
+ }
108
+ return [authSetting];
109
+ }
110
+ displayGetResult(result, options) {
111
+ if (!result || result.length === 0) {
112
+ this.displayInfo('未找到观看条件配置');
113
+ return;
114
+ }
115
+ const output = options.output || 'table';
116
+ if (output === 'json') {
117
+ this.displayData(result, 'json');
118
+ }
119
+ else {
120
+ console.log(`找到 ${result.length} 条观看条件配置`);
121
+ const tableData = result.map((item, index) => {
122
+ const authType = item.authType;
123
+ const rank = item.rank ?? (index === 0 ? 1 : 2);
124
+ const row = {
125
+ '条件级别': rank === 1 ? '主要 (1)' : '次要 (2)',
126
+ '状态': item.enabled === 'Y' ? '启用 (Y)' : '禁用 (N)',
127
+ '认证类型': (authType && watch_condition_1.AUTH_TYPE_LABELS[authType]) || authType || '-',
128
+ };
129
+ const details = this.getAuthTypeDetails(item);
130
+ row['详细配置'] = details;
131
+ return row;
132
+ });
133
+ if (tableData.length > 0) {
134
+ this.displayAsTable(tableData);
135
+ }
136
+ }
137
+ }
138
+ getAuthTypeDetails(item) {
139
+ switch (item.authType) {
140
+ case 'code':
141
+ return item.code ? `密码: ${item.code}` : '-';
142
+ case 'pay':
143
+ return item.payAmount ? `价格: ${(item.payAmount / 100).toFixed(2)} 元` : '-';
144
+ case 'external':
145
+ return item.externalUri ? `链接: ${this.truncate(item.externalUri, 30)}` : '-';
146
+ case 'custom':
147
+ return item.customUri ? `链接: ${this.truncate(item.customUri, 30)}` : '-';
148
+ case 'info':
149
+ return item.infoFields ? `字段数: ${item.infoFields.length}` : '-';
150
+ case 'direct':
151
+ return item.directKey ? `Key: ${this.truncate(item.directKey, 20)}` : '-';
152
+ default:
153
+ return '-';
154
+ }
155
+ }
156
+ displaySetResult(options) {
157
+ const output = options.output || 'table';
158
+ if (output === 'json') {
159
+ this.displayData({
160
+ success: true,
161
+ channelId: options.channelId || 'global',
162
+ }, 'json');
163
+ }
164
+ else {
165
+ const target = options.channelId
166
+ ? `channel ${options.channelId}`
167
+ : 'global settings';
168
+ this.displaySuccess(`Successfully updated watch condition for ${target}`);
169
+ }
170
+ }
171
+ truncate(str, maxLength) {
172
+ if (!str)
173
+ return '-';
174
+ return str.length > maxLength ? str.substring(0, maxLength) + '...' : str;
175
+ }
176
+ }
177
+ exports.WatchConditionHandler = WatchConditionHandler;
178
+ //# sourceMappingURL=watch-condition.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-condition.handler.js","sourceRoot":"","sources":["../../src/handlers/watch-condition.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BaseHandler } from './base.handler';
2
+ import { WhitelistServiceConfig, WhitelistListOptions, WhitelistAddOptions, WhitelistUpdateOptions, WhitelistRemoveOptions } from '../types/whitelist';
3
+ import { AuthConfig } from '../types/auth';
4
+ export declare class WhitelistHandler extends BaseHandler {
5
+ private readonly whitelistService;
6
+ constructor(authConfig: AuthConfig, serviceConfig: WhitelistServiceConfig);
7
+ listWhitelist(options: WhitelistListOptions): Promise<void>;
8
+ addWhitelist(options: WhitelistAddOptions): Promise<void>;
9
+ updateWhitelist(options: WhitelistUpdateOptions): Promise<void>;
10
+ removeWhitelist(options: WhitelistRemoveOptions): Promise<void>;
11
+ private validateListOptions;
12
+ private validateAddOptions;
13
+ private validateUpdateOptions;
14
+ private validateRemoveOptions;
15
+ private displayListResult;
16
+ private displayAddResult;
17
+ private displayUpdateResult;
18
+ private displayRemoveResult;
19
+ }
20
+ //# sourceMappingURL=whitelist.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whitelist.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/whitelist.handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;gBAO3C,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB;IAiBnE,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C3D,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCzD,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC/D,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BrE,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,qBAAqB;IAwC7B,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,mBAAmB;CAyB5B"}