@optima-chat/scout-cli 0.10.1 → 0.10.3

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.
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const douyinCommand: Command;
3
+ //# sourceMappingURL=douyin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"douyin.d.ts","sourceRoot":"","sources":["../../src/commands/douyin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,aAAa,SAEzB,CAAC"}
@@ -0,0 +1,576 @@
1
+ import { Command } from 'commander';
2
+ import { api } from '../utils/api.js';
3
+ function outputError(error, format) {
4
+ const message = error instanceof Error ? error.message : String(error);
5
+ if (format === 'json') {
6
+ console.log(JSON.stringify({ success: false, error: message }, null, 2));
7
+ }
8
+ else {
9
+ console.error(`Error: ${message}`);
10
+ }
11
+ process.exit(1);
12
+ }
13
+ export const douyinCommand = new Command('douyin').description('Douyin (抖音) video and creator discovery');
14
+ /**
15
+ * scout douyin search-videos - 搜索抖音视频
16
+ */
17
+ douyinCommand
18
+ .command('search-videos')
19
+ .description('Search Douyin videos by keyword')
20
+ .argument('<keyword>', 'Search keyword')
21
+ .option('--cursor <number>', 'Pagination cursor', '0')
22
+ .option('--sort-type <type>', 'Sort: 0=comprehensive 1=most-liked 2=latest', '0')
23
+ .option('--publish-time <time>', 'Filter: 0=all 1=day 7=week 180=half-year', '0')
24
+ .option('--filter-duration <duration>', 'Filter: 0=all 0-1=<1min 1-5=1-5min 5-10000=>5min', '0')
25
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
26
+ .action(async (keyword, options) => {
27
+ try {
28
+ const response = await api.searchDouyinVideos(keyword, {
29
+ cursor: parseInt(options.cursor, 10),
30
+ sortType: options.sortType,
31
+ publishTime: options.publishTime,
32
+ filterDuration: options.filterDuration,
33
+ });
34
+ if (options.format === 'json') {
35
+ console.log(JSON.stringify(response, null, 2));
36
+ }
37
+ else {
38
+ console.log(`Douyin Videos for "${keyword}":`);
39
+ console.log('='.repeat(100));
40
+ console.log('');
41
+ response.data?.forEach((video, index) => {
42
+ console.log(`${index + 1}. @${video.creator.username} - ${video.creator.displayName}`);
43
+ if (video.likes)
44
+ console.log(` Likes: ${video.likes.toLocaleString()}`);
45
+ if (video.comments)
46
+ console.log(` Comments: ${video.comments.toLocaleString()}`);
47
+ if (video.collects)
48
+ console.log(` Collects: ${video.collects.toLocaleString()}`);
49
+ console.log(` Description: ${video.description.substring(0, 100)}...`);
50
+ console.log(` URL: ${video.url}`);
51
+ console.log('');
52
+ });
53
+ console.log('='.repeat(100));
54
+ console.log(`Total: ${response.meta?.count || 0} videos`);
55
+ }
56
+ }
57
+ catch (error) {
58
+ outputError(error, options.format);
59
+ }
60
+ });
61
+ /**
62
+ * scout douyin video-detail - 获取视频详情
63
+ */
64
+ douyinCommand
65
+ .command('video-detail')
66
+ .description('Get Douyin video details')
67
+ .argument('<awemeId>', 'Video aweme_id')
68
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
69
+ .action(async (awemeId, options) => {
70
+ try {
71
+ const response = await api.getDouyinVideoDetail(awemeId);
72
+ if (options.format === 'json') {
73
+ console.log(JSON.stringify(response, null, 2));
74
+ }
75
+ else {
76
+ const video = response.data;
77
+ console.log('Video Details:');
78
+ console.log('='.repeat(100));
79
+ console.log(` Creator: @${video.creator.username} - ${video.creator.displayName}`);
80
+ if (video.views)
81
+ console.log(` Views: ${video.views.toLocaleString()}`);
82
+ if (video.likes)
83
+ console.log(` Likes: ${video.likes.toLocaleString()}`);
84
+ if (video.comments)
85
+ console.log(` Comments: ${video.comments.toLocaleString()}`);
86
+ if (video.shares)
87
+ console.log(` Shares: ${video.shares.toLocaleString()}`);
88
+ if (video.collects)
89
+ console.log(` Collects: ${video.collects.toLocaleString()}`);
90
+ if (video.videoUrl)
91
+ console.log(` Play URL: ${video.videoUrl}`);
92
+ console.log(` Description: ${video.description}`);
93
+ console.log('='.repeat(100));
94
+ }
95
+ }
96
+ catch (error) {
97
+ outputError(error, options.format);
98
+ }
99
+ });
100
+ /**
101
+ * scout douyin video-by-url - 通过分享链接获取视频详情
102
+ */
103
+ douyinCommand
104
+ .command('video-by-url')
105
+ .description('Get Douyin video details by share URL')
106
+ .argument('<shareUrl>', 'Douyin share URL (e.g. https://www.douyin.com/video/xxx)')
107
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
108
+ .action(async (shareUrl, options) => {
109
+ try {
110
+ const response = await api.getDouyinVideoByUrl(shareUrl);
111
+ if (options.format === 'json') {
112
+ console.log(JSON.stringify(response, null, 2));
113
+ }
114
+ else {
115
+ const video = response.data;
116
+ console.log('Video Details (by URL):');
117
+ console.log('='.repeat(100));
118
+ console.log(` Creator: @${video.creator.username} - ${video.creator.displayName}`);
119
+ if (video.views)
120
+ console.log(` Views: ${video.views.toLocaleString()}`);
121
+ if (video.likes)
122
+ console.log(` Likes: ${video.likes.toLocaleString()}`);
123
+ if (video.comments)
124
+ console.log(` Comments: ${video.comments.toLocaleString()}`);
125
+ if (video.shares)
126
+ console.log(` Shares: ${video.shares.toLocaleString()}`);
127
+ if (video.collects)
128
+ console.log(` Collects: ${video.collects.toLocaleString()}`);
129
+ if (video.videoUrl)
130
+ console.log(` Play URL: ${video.videoUrl}`);
131
+ console.log(` Description: ${video.description}`);
132
+ console.log('='.repeat(100));
133
+ }
134
+ }
135
+ catch (error) {
136
+ outputError(error, options.format);
137
+ }
138
+ });
139
+ /**
140
+ * scout douyin video-download - 获取视频下载链接
141
+ */
142
+ douyinCommand
143
+ .command('video-download')
144
+ .description('Get Douyin video download URLs (original quality, no watermark)')
145
+ .argument('<awemeId>', 'Video aweme_id')
146
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
147
+ .action(async (awemeId, options) => {
148
+ try {
149
+ const response = await api.getDouyinVideoDownloadUrl(awemeId);
150
+ if (options.format === 'json') {
151
+ console.log(JSON.stringify(response, null, 2));
152
+ }
153
+ else {
154
+ const data = response.data;
155
+ console.log('Video Download URLs:');
156
+ console.log('='.repeat(100));
157
+ console.log(` Video ID: ${data.videoId}`);
158
+ if (data.fileSizeMb)
159
+ console.log(` File Size: ${data.fileSizeMb} MB`);
160
+ if (data.originalUrl) {
161
+ console.log('');
162
+ console.log(' Original (no watermark, highest quality):');
163
+ console.log(` ${data.originalUrl}`);
164
+ }
165
+ if (data.playUrls?.length > 0) {
166
+ console.log('');
167
+ console.log(` Play URLs (no watermark, ${data.playUrls.length} CDN nodes):`);
168
+ data.playUrls.forEach((url, i) => console.log(` [${i}] ${url}`));
169
+ }
170
+ if (data.downloadUrls?.length > 0) {
171
+ console.log('');
172
+ console.log(` Download URLs (with watermark, ${data.downloadUrls.length} CDN nodes):`);
173
+ data.downloadUrls.forEach((url, i) => console.log(` [${i}] ${url}`));
174
+ }
175
+ console.log('='.repeat(100));
176
+ }
177
+ }
178
+ catch (error) {
179
+ outputError(error, options.format);
180
+ }
181
+ });
182
+ /**
183
+ * scout douyin video-comments - 获取视频评论
184
+ */
185
+ douyinCommand
186
+ .command('video-comments')
187
+ .description('Get Douyin video comments')
188
+ .argument('<awemeId>', 'Video aweme_id')
189
+ .option('-c, --count <number>', 'Number of comments', '20')
190
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
191
+ .action(async (awemeId, options) => {
192
+ try {
193
+ const response = await api.getDouyinVideoComments(awemeId, parseInt(options.count, 10));
194
+ if (options.format === 'json') {
195
+ console.log(JSON.stringify(response, null, 2));
196
+ }
197
+ else {
198
+ console.log(`Comments for video ${awemeId}:`);
199
+ console.log('='.repeat(100));
200
+ response.data?.forEach((comment, index) => {
201
+ console.log(` ${index + 1}. ${comment.text} (${comment.likes} likes)${comment.author ? ` - @${comment.author}` : ''}`);
202
+ });
203
+ console.log('='.repeat(100));
204
+ console.log(`Total: ${response.meta?.count || 0} comments`);
205
+ }
206
+ }
207
+ catch (error) {
208
+ outputError(error, options.format);
209
+ }
210
+ });
211
+ /**
212
+ * scout douyin video-insights - 获取视频洞察(详情 + 评论)
213
+ */
214
+ douyinCommand
215
+ .command('video-insights')
216
+ .description('Get Douyin video insights (detail + comments)')
217
+ .argument('<awemeId>', 'Video aweme_id')
218
+ .option('--no-comments', 'Skip comments')
219
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
220
+ .action(async (awemeId, options) => {
221
+ try {
222
+ const response = await api.getDouyinVideoInsights(awemeId, {
223
+ includeComments: options.comments,
224
+ });
225
+ if (options.format === 'json') {
226
+ console.log(JSON.stringify(response, null, 2));
227
+ }
228
+ else {
229
+ const { video, comments } = response.data;
230
+ console.log('Video Insights:');
231
+ console.log('='.repeat(100));
232
+ console.log('');
233
+ console.log('Video Details:');
234
+ console.log(` Creator: @${video.creator.username} - ${video.creator.displayName}`);
235
+ if (video.views)
236
+ console.log(` Views: ${video.views.toLocaleString()}`);
237
+ if (video.likes)
238
+ console.log(` Likes: ${video.likes.toLocaleString()}`);
239
+ if (video.comments)
240
+ console.log(` Comments: ${video.comments.toLocaleString()}`);
241
+ if (video.shares)
242
+ console.log(` Shares: ${video.shares.toLocaleString()}`);
243
+ if (video.collects)
244
+ console.log(` Collects: ${video.collects.toLocaleString()}`);
245
+ if (video.videoUrl)
246
+ console.log(` Play URL: ${video.videoUrl}`);
247
+ console.log(` Description: ${video.description}`);
248
+ console.log('');
249
+ if (comments && comments.length > 0) {
250
+ console.log(`Top Comments (${comments.length}):`);
251
+ comments.slice(0, 10).forEach((comment, index) => {
252
+ console.log(` ${index + 1}. ${comment.text} (${comment.likes} likes)${comment.author ? ` - @${comment.author}` : ''}`);
253
+ });
254
+ console.log('');
255
+ }
256
+ console.log('='.repeat(100));
257
+ }
258
+ }
259
+ catch (error) {
260
+ outputError(error, options.format);
261
+ }
262
+ });
263
+ /**
264
+ * scout douyin search-users - 搜索用户
265
+ */
266
+ douyinCommand
267
+ .command('search-users')
268
+ .description('Search Douyin users/creators')
269
+ .argument('<keyword>', 'Search keyword')
270
+ .option('--cursor <number>', 'Pagination cursor', '0')
271
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
272
+ .action(async (keyword, options) => {
273
+ try {
274
+ const response = await api.searchDouyinUsers(keyword, parseInt(options.cursor, 10));
275
+ if (options.format === 'json') {
276
+ console.log(JSON.stringify(response, null, 2));
277
+ }
278
+ else {
279
+ console.log(`Douyin Users for "${keyword}":`);
280
+ console.log('='.repeat(100));
281
+ response.data?.forEach((user, index) => {
282
+ console.log(`${index + 1}. @${user.username} - ${user.displayName}`);
283
+ console.log(` Followers: ${user.followers.toLocaleString()}`);
284
+ console.log(` Videos: ${user.totalVideos.toLocaleString()}`);
285
+ console.log(` Likes: ${user.totalLikes.toLocaleString()}`);
286
+ if (user.bio)
287
+ console.log(` Bio: ${user.bio.substring(0, 80)}`);
288
+ console.log('');
289
+ });
290
+ console.log('='.repeat(100));
291
+ console.log(`Total: ${response.meta?.count || 0} users`);
292
+ }
293
+ }
294
+ catch (error) {
295
+ outputError(error, options.format);
296
+ }
297
+ });
298
+ /**
299
+ * scout douyin user-profile - 获取用户主页
300
+ */
301
+ douyinCommand
302
+ .command('user-profile')
303
+ .description('Get Douyin user profile')
304
+ .argument('<secUserId>', 'User sec_user_id')
305
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
306
+ .action(async (secUserId, options) => {
307
+ try {
308
+ const response = await api.getDouyinUserProfile(secUserId);
309
+ if (options.format === 'json') {
310
+ console.log(JSON.stringify(response, null, 2));
311
+ }
312
+ else {
313
+ const user = response.data;
314
+ console.log('User Profile:');
315
+ console.log('='.repeat(100));
316
+ console.log(` Name: @${user.username} - ${user.displayName}`);
317
+ console.log(` Followers: ${user.followers.toLocaleString()}`);
318
+ console.log(` Following: ${user.following.toLocaleString()}`);
319
+ console.log(` Videos: ${user.totalVideos.toLocaleString()}`);
320
+ console.log(` Likes: ${user.totalLikes.toLocaleString()}`);
321
+ if (user.engagementRate)
322
+ console.log(` Engagement Rate: ${user.engagementRate}%`);
323
+ if (user.bio)
324
+ console.log(` Bio: ${user.bio}`);
325
+ if (user.profileUrl)
326
+ console.log(` URL: ${user.profileUrl}`);
327
+ console.log('='.repeat(100));
328
+ }
329
+ }
330
+ catch (error) {
331
+ outputError(error, options.format);
332
+ }
333
+ });
334
+ /**
335
+ * scout douyin user-videos - 获取用户视频列表
336
+ */
337
+ douyinCommand
338
+ .command('user-videos')
339
+ .description('Get Douyin user video list')
340
+ .argument('<secUserId>', 'User sec_user_id')
341
+ .option('-c, --count <number>', 'Number of videos', '20')
342
+ .option('--max-cursor <number>', 'Pagination cursor', '0')
343
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
344
+ .action(async (secUserId, options) => {
345
+ try {
346
+ const response = await api.getDouyinUserVideos(secUserId, {
347
+ count: parseInt(options.count, 10),
348
+ maxCursor: parseInt(options.maxCursor, 10),
349
+ });
350
+ if (options.format === 'json') {
351
+ console.log(JSON.stringify(response, null, 2));
352
+ }
353
+ else {
354
+ console.log('User Videos:');
355
+ console.log('='.repeat(100));
356
+ response.data?.forEach((video, index) => {
357
+ console.log(`${index + 1}. ${video.description.substring(0, 80)}`);
358
+ if (video.likes)
359
+ console.log(` Likes: ${video.likes.toLocaleString()}`);
360
+ if (video.comments)
361
+ console.log(` Comments: ${video.comments.toLocaleString()}`);
362
+ console.log('');
363
+ });
364
+ console.log('='.repeat(100));
365
+ console.log(`Total: ${response.meta?.count || 0} videos | Has More: ${response.meta?.hasMore}`);
366
+ }
367
+ }
368
+ catch (error) {
369
+ outputError(error, options.format);
370
+ }
371
+ });
372
+ /**
373
+ * scout douyin hot-search - 热搜榜
374
+ */
375
+ douyinCommand
376
+ .command('hot-search')
377
+ .description('Get Douyin hot search list')
378
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
379
+ .action(async (options) => {
380
+ try {
381
+ const response = await api.getDouyinHotSearch();
382
+ if (options.format === 'json') {
383
+ console.log(JSON.stringify(response, null, 2));
384
+ }
385
+ else {
386
+ console.log('Douyin Hot Search:');
387
+ console.log('='.repeat(100));
388
+ response.data?.forEach((item) => {
389
+ console.log(` #${item.position} ${item.word} (${item.hotValue.toLocaleString()})`);
390
+ });
391
+ console.log('='.repeat(100));
392
+ console.log(`Total: ${response.meta?.count || 0} items`);
393
+ }
394
+ }
395
+ catch (error) {
396
+ outputError(error, options.format);
397
+ }
398
+ });
399
+ /**
400
+ * scout douyin trending-challenges - 热门挑战
401
+ */
402
+ douyinCommand
403
+ .command('trending-challenges')
404
+ .description('Get Douyin trending challenges')
405
+ .option('-p, --page <number>', 'Page number', '1')
406
+ .option('--page-size <number>', 'Items per page', '20')
407
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
408
+ .action(async (options) => {
409
+ try {
410
+ const response = await api.getDouyinChallenges({
411
+ page: parseInt(options.page, 10),
412
+ pageSize: parseInt(options.pageSize, 10),
413
+ });
414
+ if (options.format === 'json') {
415
+ console.log(JSON.stringify(response, null, 2));
416
+ }
417
+ else {
418
+ console.log('Douyin Trending Challenges:');
419
+ console.log('='.repeat(100));
420
+ response.data?.forEach((item) => {
421
+ console.log(` #${item.rank} ${item.title} (score: ${item.hotScore.toLocaleString()})`);
422
+ });
423
+ console.log('='.repeat(100));
424
+ console.log(`Total: ${response.meta?.count || 0} items`);
425
+ }
426
+ }
427
+ catch (error) {
428
+ outputError(error, options.format);
429
+ }
430
+ });
431
+ /**
432
+ * scout douyin billboard - 热搜总榜
433
+ */
434
+ douyinCommand
435
+ .command('billboard')
436
+ .description('Get Douyin hot billboard')
437
+ .option('-p, --page <number>', 'Page number', '1')
438
+ .option('--page-size <number>', 'Items per page', '20')
439
+ .option('-t, --type <type>', 'Type: snapshot or range', 'range')
440
+ .option('--start-date <date>', 'Start date (yyyyMMdd)')
441
+ .option('--end-date <date>', 'End date (yyyyMMdd)')
442
+ .option('--snapshot-time <time>', 'Snapshot time (yyyyMMddHHmmss)')
443
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
444
+ .action(async (options) => {
445
+ try {
446
+ const response = await api.getDouyinBillboard({
447
+ page: parseInt(options.page, 10),
448
+ pageSize: parseInt(options.pageSize, 10),
449
+ type: options.type,
450
+ snapshotTime: options.snapshotTime,
451
+ startDate: options.startDate,
452
+ endDate: options.endDate,
453
+ });
454
+ if (options.format === 'json') {
455
+ console.log(JSON.stringify(response, null, 2));
456
+ }
457
+ else {
458
+ console.log('Douyin Hot Billboard:');
459
+ console.log('='.repeat(100));
460
+ response.data?.forEach((item) => {
461
+ console.log(` #${item.rank} ${item.title} (score: ${item.hotScore.toLocaleString()})`);
462
+ });
463
+ console.log('='.repeat(100));
464
+ console.log(`Total: ${response.meta?.count || 0} items`);
465
+ }
466
+ }
467
+ catch (error) {
468
+ outputError(error, options.format);
469
+ }
470
+ });
471
+ /**
472
+ * scout douyin search-challenges - 搜索话题
473
+ */
474
+ douyinCommand
475
+ .command('search-challenges')
476
+ .description('Search Douyin challenges/hashtags')
477
+ .argument('<keyword>', 'Search keyword')
478
+ .option('--cursor <number>', 'Pagination cursor', '0')
479
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
480
+ .action(async (keyword, options) => {
481
+ try {
482
+ const response = await api.searchDouyinChallenges(keyword, parseInt(options.cursor, 10));
483
+ if (options.format === 'json') {
484
+ console.log(JSON.stringify(response, null, 2));
485
+ }
486
+ else {
487
+ console.log(`Douyin Challenges for "${keyword}":`);
488
+ console.log('='.repeat(100));
489
+ response.data?.forEach((item, index) => {
490
+ console.log(`${index + 1}. #${item.name} (${item.id})`);
491
+ if (item.viewCount)
492
+ console.log(` Views: ${item.viewCount.toLocaleString()}`);
493
+ console.log('');
494
+ });
495
+ console.log('='.repeat(100));
496
+ console.log(`Total: ${response.meta?.count || 0} challenges`);
497
+ }
498
+ }
499
+ catch (error) {
500
+ outputError(error, options.format);
501
+ }
502
+ });
503
+ /**
504
+ * scout douyin product-reviews - 商品评价列表
505
+ */
506
+ douyinCommand
507
+ .command('product-reviews')
508
+ .description('Get Douyin product reviews')
509
+ .argument('<productId>', 'Product ID')
510
+ .requiredOption('--shop-id <id>', 'Shop ID (required)')
511
+ .option('-c, --count <number>', 'Number of reviews', '20')
512
+ .option('--sort-type <type>', 'Sort: 0=default 1=latest', '0')
513
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
514
+ .action(async (productId, options) => {
515
+ try {
516
+ const response = await api.getDouyinProductReviews(productId, options.shopId, parseInt(options.count, 10), parseInt(options.sortType, 10));
517
+ if (options.format === 'json') {
518
+ console.log(JSON.stringify(response, null, 2));
519
+ }
520
+ else {
521
+ console.log(`Product Reviews for ${productId}:`);
522
+ console.log('='.repeat(100));
523
+ response.data?.forEach((review, index) => {
524
+ console.log(` ${index + 1}. ${review.Content} (${review.Likes} likes)`);
525
+ if (review.CommentTime)
526
+ console.log(` Time: ${review.CommentTime}`);
527
+ console.log('');
528
+ });
529
+ console.log('='.repeat(100));
530
+ console.log(`Total: ${response.meta?.count || 0} reviews`);
531
+ }
532
+ }
533
+ catch (error) {
534
+ outputError(error, options.format);
535
+ }
536
+ });
537
+ /**
538
+ * scout douyin product - 商品详情
539
+ */
540
+ douyinCommand
541
+ .command('product')
542
+ .description('Get Douyin product details (assembled from reviews + SKU)')
543
+ .argument('<productId>', 'Product ID')
544
+ .requiredOption('--shop-id <id>', 'Shop ID (required)')
545
+ .option('--author-id <id>', 'Author ID (for SKU data)')
546
+ .option('-f, --format <format>', 'Output format (json|text)', 'json')
547
+ .action(async (productId, options) => {
548
+ try {
549
+ const response = await api.getDouyinProduct(productId, options.shopId, options.authorId);
550
+ if (options.format === 'json') {
551
+ console.log(JSON.stringify(response, null, 2));
552
+ }
553
+ else {
554
+ const product = response.data;
555
+ console.log('Product Details:');
556
+ console.log('='.repeat(100));
557
+ if (product.name)
558
+ console.log(` Name: ${product.name}`);
559
+ if (product.price)
560
+ console.log(` Price: ¥${product.price.toFixed(2)}`);
561
+ if (product.shop)
562
+ console.log(` Shop: ${product.shop.name} (${product.shop.id})`);
563
+ if (product.rating) {
564
+ console.log(` Rating: ${product.rating.goodRatio}% positive (${product.rating.total} reviews)`);
565
+ }
566
+ if (product.tags?.length) {
567
+ console.log(` Tags: ${product.tags.map((t) => `${t.name}(${t.count})`).join(', ')}`);
568
+ }
569
+ console.log('='.repeat(100));
570
+ }
571
+ }
572
+ catch (error) {
573
+ outputError(error, options.format);
574
+ }
575
+ });
576
+ //# sourceMappingURL=douyin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"douyin.js","sourceRoot":"","sources":["../../src/commands/douyin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const xhsCommand: Command;
3
+ //# sourceMappingURL=xhs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xhs.d.ts","sourceRoot":"","sources":["../../src/commands/xhs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,UAAU,SAEtB,CAAC"}