socialdatax-skills 0.2.42 → 0.2.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -89,7 +89,7 @@ Common search phrases for this skill package:
89
89
  - Reserved future SocialDataX namespace names for existing platform listings without draft files yet: `com.socialdatax/kuaishou-insights`, `com.socialdatax/bilibili-insights`, `com.socialdatax/weibo-insights`, `com.socialdatax/wechat-channels-insights`, `com.socialdatax/zhihu-insights`, `com.socialdatax/instagram-insights`, `com.socialdatax/x-insights`, `com.socialdatax/youtube-insights`, and `com.socialdatax/tiktok-insights`.
90
90
  - Hosted endpoint without a repo-tracked standalone listing: Sensitive Words Check.
91
91
  - Unified MCP registry name: none; this package installs skills and calls explicit hosted MCP entries.
92
- - Current public capability version: `0.2.42`
92
+ - Current public capability version: `0.2.44`
93
93
 
94
94
  ## Direct CLI
95
95
 
@@ -169,6 +169,7 @@ npx -y socialdatax-skills@latest weibo search --keyword "露营" --pretty
169
169
  npx -y socialdatax-skills@latest weibo detail --post-id "<post_id>" --pretty
170
170
  npx -y socialdatax-skills@latest weibo detail --post-url "<weibo_post_url_or_share_text>" --pretty
171
171
  npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --pretty
172
+ npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --sort-type time_descending --pretty
172
173
  npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --all --include-replies --pretty
173
174
  npx -y socialdatax-skills@latest weibo comments --post-url "<weibo_post_url_or_share_text>" --pretty
174
175
  npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-id "<comment_id>" --pretty
@@ -193,6 +194,7 @@ npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --obj
193
194
  npx -y socialdatax-skills@latest wechat comments --url "<wechat_video_url_or_share_text>" --pretty
194
195
  npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty
195
196
  npx -y socialdatax-skills@latest wechat user-info --user-id "<v2_finder_user_id>" --pretty
197
+ npx -y socialdatax-skills@latest wechat user-info --url "<wechat_work_url_or_share_text>" --pretty
196
198
  npx -y socialdatax-skills@latest wechat user-posts --user-id "<v2_finder_user_id>" --pretty
197
199
  npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_work_url_or_share_text>" --pretty
198
200
  npx -y socialdatax-skills@latest wechat transcript --url "<wechat_video_url_or_share_text>" --pretty
@@ -277,7 +279,7 @@ YouTube reply pagination starts from the returned first-level comment `reply_tok
277
279
  XHS comments accept optional `--sort-type` values: `default`,
278
280
  `time_descending`, and `like_count_descending`; omit it for the platform
279
281
  default comment order.
280
- Bilibili and YouTube comments accept optional `--sort-type` values: `hot` and
282
+ Bilibili, Weibo, and YouTube comments accept optional `--sort-type` values: `hot` and
281
283
  `time_descending`; Zhihu comments accept `default` and `time_descending`.
282
284
  Omit comment sort values for the platform default order.
283
285
 
@@ -529,7 +531,7 @@ Current Weibo workflows include:
529
531
  - Fetch the current Weibo / 微博 hot-search list.
530
532
  - Search related Weibo posts by keyword.
531
533
  - Resolve a Weibo post URL, short link, share text, or post_id into structured post details.
532
- - Fetch paginated first-level comments for comment analysis.
534
+ - Fetch paginated first-level comments for comment analysis, optionally sorted by `hot` or `time_descending`.
533
535
  - Fetch paginated replies under a first-level comment.
534
536
  - Continue Weibo list pagination only when `next_page_token` is non-empty; an empty string means there are no more results to request.
535
537
  - Read Weibo creator profile data from a user profile link or user_id.
@@ -705,8 +707,8 @@ Current Sensitive Words Check workflows include:
705
707
  | `weibo_search_posts` | Search Weibo posts by keyword with optional `page_token` continuation; do not pass `page`. |
706
708
  | `weibo_get_post_detail_by_post_id` | Fetch structured Weibo post details when the caller already has a post_id. |
707
709
  | `weibo_get_post_detail_by_post_url` | Resolve a Weibo post URL, short link, or share text into structured post details. |
708
- | `weibo_get_post_comments_by_post_id` | Fetch paginated first-level comments when the caller already has a post_id. |
709
- | `weibo_get_post_comments_by_post_url` | Fetch paginated first-level comments directly from a Weibo post URL, short link, or share text. |
710
+ | `weibo_get_post_comments_by_post_id` | Fetch paginated first-level comments by post_id with optional `sort_type` (`hot` or `time_descending`). |
711
+ | `weibo_get_post_comments_by_post_url` | Fetch paginated first-level comments from a Weibo post URL, short link, or share text with optional `sort_type` (`hot` or `time_descending`). |
710
712
  | `weibo_get_post_comment_replies_by_comment_id` | Fetch paginated replies under a first-level comment by post_id and comment_id. |
711
713
  | `weibo_get_post_liker_list_by_post_id` | Fetch paginated users who liked a Weibo post by post_id. |
712
714
  | `weibo_get_post_liker_list_by_post_url` | Fetch paginated users who liked a Weibo post from a post page link, short link, or share text. |
package/cli.mjs CHANGED
@@ -22,7 +22,7 @@ import { decryptWechatMediaCommand } from "./lib/media/wechat-decrypt.mjs";
22
22
  export { decryptWechatMediaCommand };
23
23
 
24
24
  const PACKAGE_NAME = "socialdatax-skills";
25
- const PACKAGE_VERSION = "0.2.42";
25
+ const PACKAGE_VERSION = "0.2.44";
26
26
  const PACKAGE_SPEC = `${PACKAGE_NAME}@latest`;
27
27
  const LOG_PREFIX = `[${PACKAGE_NAME}]`;
28
28
  const MIN_NODE_VERSION = "20.18.1";
@@ -702,6 +702,7 @@ const WEIBO_DIRECT_ACTION_OPTIONS = {
702
702
  "all",
703
703
  "maxItems",
704
704
  "includeReplies",
705
+ "sortType",
705
706
  "pretty",
706
707
  ],
707
708
  replies: [
@@ -739,6 +740,7 @@ const WEIBO_OPTION_DISPLAY_NAMES = {
739
740
  sinceDays: "--since-days",
740
741
  all: "--all",
741
742
  includeReplies: "--include-replies",
743
+ sortType: "--sort-type",
742
744
  postId: "--post-id",
743
745
  postUrl: "--post-url",
744
746
  commentId: "--comment-id",
@@ -751,6 +753,7 @@ const WEIBO_OPTION_DISPLAY_NAMES = {
751
753
  outputDir: "--output-dir",
752
754
  proxy: "--proxy",
753
755
  };
756
+ const WEIBO_COMMENT_SORT_TYPES = ["hot", "time_descending"];
754
757
  const WECHAT_DIRECT_ACTION_OPTIONS = {
755
758
  "hot-search": ["pretty"],
756
759
  search: [
@@ -788,7 +791,7 @@ const WECHAT_DIRECT_ACTION_OPTIONS = {
788
791
  "includeReplies",
789
792
  "pretty",
790
793
  ],
791
- "user-info": ["userId", "pretty"],
794
+ "user-info": ["userId", "url", "pretty"],
792
795
  "user-posts": [
793
796
  "userId",
794
797
  "url",
@@ -1251,11 +1254,13 @@ const PLATFORMS = {
1251
1254
  },
1252
1255
  {
1253
1256
  name: "weibo_get_post_comments_by_post_id",
1254
- description: "Fetch paginated first-level comments when the caller already has a post_id.",
1257
+ description:
1258
+ "Fetch paginated first-level comments by post_id with optional hot or newest-first sorting.",
1255
1259
  },
1256
1260
  {
1257
1261
  name: "weibo_get_post_comments_by_post_url",
1258
- description: "Fetch paginated first-level comments from a Weibo post URL, short link, or share text.",
1262
+ description:
1263
+ "Fetch paginated first-level comments from a Weibo post URL, short link, or share text with optional hot or newest-first sorting.",
1259
1264
  },
1260
1265
  {
1261
1266
  name: "weibo_get_post_comment_replies_by_comment_id",
@@ -3077,6 +3082,9 @@ function printHelp() {
3077
3082
  console.log(` npx -y ${PACKAGE_SPEC} wechat user-info --user-id "<v2_finder_user_id>" --pretty`);
3078
3083
  console.log(" Call the WeChat Channels / 视频号 creator profile tool with a v2_...@finder user_id.");
3079
3084
  console.log("");
3085
+ console.log(` npx -y ${PACKAGE_SPEC} wechat user-info --url "<wechat_work_url_or_share_text>" --pretty`);
3086
+ console.log(" Resolve a WeChat Channels / 视频号 video or image-post link or share text into creator profile data.");
3087
+ console.log("");
3080
3088
  console.log(` npx -y ${PACKAGE_SPEC} wechat user-posts --user-id "<v2_finder_user_id>" --pretty`);
3081
3089
  console.log(" Call the WeChat Channels / 视频号 creator videos and image posts tool with a v2_...@finder user_id.");
3082
3090
  console.log("");
@@ -3354,7 +3362,7 @@ function printHelp() {
3354
3362
  console.log(" --publish-time-range <all|day|week|month|three_months|half_year|year>");
3355
3363
  console.log(" Zhihu search publish-time filter; omit for no filter.");
3356
3364
  console.log(" --sort-type <hot|time_descending>");
3357
- console.log(" X search sort and YouTube comments sort; omit for default sort.");
3365
+ console.log(" X search, Weibo comments, and YouTube comments sort; omit for default sort.");
3358
3366
  console.log(" --sort-type <general|time_descending|view_count_descending|rating>");
3359
3367
  console.log(" YouTube search sort; omit for default sort.");
3360
3368
  console.log(" --video-type <all|video|movie>");
@@ -4400,6 +4408,7 @@ function buildWeiboOperation(action, options) {
4400
4408
  idDisplay: "--post-id",
4401
4409
  urlDisplay: "--post-url",
4402
4410
  pageToken: options.pageToken,
4411
+ extraArguments: buildWeiboCommentsExtraArguments(options),
4403
4412
  }),
4404
4413
  PLATFORMS.weibo
4405
4414
  );
@@ -4531,12 +4540,15 @@ function buildWechatOperation(action, options) {
4531
4540
  case "user-info":
4532
4541
  return buildDirectOperation(
4533
4542
  "user-info",
4534
- buildRequiredIdCall(options, {
4543
+ buildOneOfCall(options, {
4535
4544
  idOption: "userId",
4536
- tool: "wechat_get_user_info_by_user_id",
4545
+ urlOption: "url",
4546
+ idTool: "wechat_get_user_info_by_user_id",
4547
+ urlTool: "wechat_get_user_info_by_url",
4537
4548
  idArgument: "user_id",
4549
+ urlArgument: "url",
4538
4550
  idDisplay: "--user-id",
4539
- platformLabel: "wechat user-info",
4551
+ urlDisplay: "--url",
4540
4552
  }),
4541
4553
  PLATFORMS.wechat
4542
4554
  );
@@ -5129,6 +5141,19 @@ function buildXhsCommentsExtraArguments(options) {
5129
5141
  return toolArguments;
5130
5142
  }
5131
5143
 
5144
+ function buildWeiboCommentsExtraArguments(options) {
5145
+ const toolArguments = {};
5146
+ if (options.sortType !== undefined) {
5147
+ toolArguments.sort_type = parseAllowedStringOption(
5148
+ options.sortType,
5149
+ "--sort-type",
5150
+ WEIBO_COMMENT_SORT_TYPES,
5151
+ WEIBO_COMMENT_SORT_TYPES.join(", ")
5152
+ );
5153
+ }
5154
+ return toolArguments;
5155
+ }
5156
+
5132
5157
  function buildTranscriptCall(
5133
5158
  options,
5134
5159
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socialdatax-skills",
3
- "version": "0.2.42",
3
+ "version": "0.2.44",
4
4
  "description": "SocialDataX / 社媒数据助手 skill installer and direct CLI helper for hosted MCP services.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -242,6 +242,7 @@ Optional arguments:
242
242
  - TikTok `--post-id <post_id>` or `--url <tiktok_post_url_or_share_text>`: use for first-level comments; replies require `--post-id <post_id>` and `--comment-id <comment_id>`.
243
243
  - Weibo `--post-id <post_id>`: preferred when the Weibo post ID is already known and should anchor the comment thread.
244
244
  - Weibo `--post-url <weibo_post_url_or_share_text>`: use for a Weibo post URL, short link, or share text for first-level comments.
245
+ - Weibo comments `--sort-type <hot|time_descending>`: optional first-level comment sort order; omit it for the default `hot` order, and keep it unchanged when continuing with `--page-token`.
245
246
  - WeChat Channels / 视频号 `--object-id <object_id>` and `--object-nonce-id <object_nonce_id>`: use together when both values are already known and should anchor the comment thread.
246
247
  - WeChat Channels / 视频号 `--url <wechat_video_url_or_share_text>`: use for a WeChat Channels video link or share text for first-level comments.
247
248
  - `--source-client socialdatax-skills --source-platform npm --source-skill media-comments`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
@@ -300,8 +301,8 @@ If MCP tools are already available in the current agent, use one of these tools:
300
301
  - `tiktok_get_post_comments_by_post_id`: use when the TikTok post_id is known.
301
302
  - `tiktok_get_post_comments_by_url`: use for TikTok post URLs or share text.
302
303
  - `tiktok_get_post_comment_replies`: use when the TikTok post_id and first-level comment ID are known.
303
- - `weibo_get_post_comments_by_post_id`: use when the post_id is known.
304
- - `weibo_get_post_comments_by_post_url`: use for Weibo post URLs, short links, or share text.
304
+ - `weibo_get_post_comments_by_post_id`: use when the post_id is known; optional `sort_type` accepts `hot` or `time_descending`.
305
+ - `weibo_get_post_comments_by_post_url`: use for Weibo post URLs, short links, or share text; optional `sort_type` accepts `hot` or `time_descending`.
305
306
  - `weibo_get_post_comment_replies_by_comment_id`: use when the post_id and first-level comment ID are known.
306
307
  - For Weibo comments and replies, continue only when `next_page_token` is non-empty; an empty string means there are no more comments or replies to request.
307
308
  - `wechat_get_video_comments_by_object_id`: use when both object_id and object_nonce_id are known.
@@ -142,6 +142,10 @@ npx -y socialdatax-skills@latest weibo user-info \
142
142
  npx -y socialdatax-skills@latest wechat user-info \
143
143
  --user-id "<v2_finder_user_id>" --pretty --source-client socialdatax-skills \
144
144
  --source-platform npm --source-skill media-user-info
145
+
146
+ npx -y socialdatax-skills@latest wechat user-info \
147
+ --url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills \
148
+ --source-platform npm --source-skill media-user-info
145
149
  ```
146
150
 
147
151
  Optional arguments:
@@ -166,9 +170,10 @@ Optional arguments:
166
170
  - Weibo `--user-id <user_id>`: preferred when the creator user_id is already known.
167
171
  - Weibo `--profile-url <profile_url>`: use for a Weibo user profile URL.
168
172
  - WeChat Channels / 视频号 `--user-id <v2_finder_user_id>`: use when the creator `v2_...@finder` user_id is already known.
173
+ - WeChat Channels / 视频号 `--url <wechat_work_url_or_share_text>`: use for a video or image-post link or share text that can resolve the creator profile.
169
174
  - `--source-client socialdatax-skills --source-platform npm --source-skill media-user-info`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
170
175
 
171
- Use either the ID option or the profile URL option for a single command, not both.
176
+ Use exactly one supported identifier or URL entrypoint for a single command; do not combine them.
172
177
 
173
178
  The command prints JSON with `platform`, `tool`, `arguments`, and `data`.
174
179
 
@@ -190,9 +195,9 @@ MCP tools matching the direct CLI commands above:
190
195
  - YOUTUBE: `youtube_get_channel_info_by_url`
191
196
  - TIKTOK: `tiktok_get_user_info_by_tiktok_id`, `tiktok_get_user_info_by_profile_url`
192
197
  - WEIBO: `weibo_get_user_info_by_user_id`, `weibo_get_user_info_by_profile_url`
193
- - WECHAT: `wechat_get_user_info_by_user_id`
198
+ - WECHAT: `wechat_get_user_info_by_user_id`, `wechat_get_user_info_by_url`
194
199
 
195
- MCP-only tools not available through the direct CLI: `douyin_get_user_info_by_douyin_id`, `wechat_get_user_info_by_url`
200
+ MCP-only tools not available through the direct CLI: `douyin_get_user_info_by_douyin_id`
196
201
 
197
202
  If MCP tools are already available in the current agent, use one of these tools:
198
203
  - `xhs_get_user_info_by_user_id`: preferred when `user_id` is already known from search, detail, comments, or creator note lists.
@@ -254,6 +254,7 @@ npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-i
254
254
  npx -y socialdatax-skills@latest wechat detail --url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
255
255
  npx -y socialdatax-skills@latest wechat article --url "<mp_article_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
256
256
  npx -y socialdatax-skills@latest wechat comments --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
257
+ npx -y socialdatax-skills@latest wechat user-info --url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
257
258
  npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
258
259
  npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
259
260
  ```
@@ -326,9 +327,9 @@ MCP tools matching the direct CLI commands above:
326
327
  - YOUTUBE: `youtube_search_videos`, `youtube_get_video_detail_by_url`, `youtube_get_video_comments_by_url`, `youtube_get_channel_info_by_url`, `youtube_get_user_posted_videos_by_channel_url`, `youtube_get_video_comment_replies`
327
328
  - TIKTOK: `tiktok_search_posts`, `tiktok_get_post_detail_by_url`, `tiktok_get_post_comments_by_post_id`, `tiktok_get_user_info_by_tiktok_id`, `tiktok_get_user_posts_by_tiktok_id`, `tiktok_get_post_comments_by_url`, `tiktok_get_post_comment_replies`, `tiktok_get_user_info_by_profile_url`, `tiktok_get_user_posts_by_profile_url`
328
329
  - WEIBO: `weibo_get_hot_search_list`, `weibo_search_posts`, `weibo_get_post_detail_by_post_id`, `weibo_get_post_comments_by_post_id`, `weibo_get_user_info_by_user_id`, `weibo_get_user_posts_by_user_id`, `weibo_get_post_detail_by_post_url`, `weibo_get_post_comments_by_post_url`, `weibo_get_post_liker_list_by_post_id`, `weibo_get_post_repost_list_by_post_id`, `weibo_get_user_info_by_profile_url`, `weibo_get_user_posts_by_profile_url`, `weibo_get_post_comment_replies_by_comment_id`
329
- - WECHAT: `wechat_get_hot_search_list`, `wechat_search_videos`, `wechat_get_video_detail_by_encrypted_object_id`, `wechat_get_video_comments_by_object_id`, `wechat_get_user_info_by_user_id`, `wechat_get_user_posted_videos_by_user_id`, `wechat_get_video_detail_by_url`, `wechat_get_mp_article_detail_by_url`, `wechat_get_video_comments_by_url`, `wechat_get_user_posted_videos_by_url`, `wechat_get_video_comment_replies_by_comment_id`
330
+ - WECHAT: `wechat_get_hot_search_list`, `wechat_search_videos`, `wechat_get_video_detail_by_encrypted_object_id`, `wechat_get_video_comments_by_object_id`, `wechat_get_user_info_by_user_id`, `wechat_get_user_posted_videos_by_user_id`, `wechat_get_video_detail_by_url`, `wechat_get_mp_article_detail_by_url`, `wechat_get_video_comments_by_url`, `wechat_get_user_info_by_url`, `wechat_get_user_posted_videos_by_url`, `wechat_get_video_comment_replies_by_comment_id`
330
331
 
331
- MCP-only tools not available through the direct CLI: `douyin_search_users`, `douyin_get_user_info_by_douyin_id`, `weibo_get_post_liker_list_by_post_url`, `weibo_get_post_repost_list_by_post_url`, `wechat_get_user_info_by_url`
332
+ MCP-only tools not available through the direct CLI: `douyin_search_users`, `douyin_get_user_info_by_douyin_id`, `weibo_get_post_liker_list_by_post_url`, `weibo_get_post_repost_list_by_post_url`
332
333
 
333
334
  Use the automatically listed MCP tools above as the source of truth for tool names. Pick the narrowest tool for the user's platform and task. For search pagination, omit `page_token` on the first request and pass only the complete returned `next_page_token` when continuing the same chain.
334
335