@sovovs/bycli 2.1.33 → 2.1.34

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/cli-manifest.json CHANGED
@@ -28455,7 +28455,15 @@
28455
28455
  "markdownSize",
28456
28456
  "dataPath",
28457
28457
  "dataSize",
28458
- "error"
28458
+ "error",
28459
+ "listReads",
28460
+ "listShares",
28461
+ "listLikes",
28462
+ "listComments",
28463
+ "detailReadUsers",
28464
+ "detailShares",
28465
+ "detailLikes",
28466
+ "detailComments"
28459
28467
  ],
28460
28468
  "type": "js",
28461
28469
  "modulePath": "weixin/download-publish-data.js",
@@ -25,6 +25,8 @@ const COLUMNS = [
25
25
  'title', 'publishedAt', 'url', 'status',
26
26
  ...METRIC_COLUMNS,
27
27
  'markdownPath', 'markdownSize', 'dataPath', 'dataSize', 'error',
28
+ 'listReads', 'listShares', 'listLikes', 'listComments',
29
+ 'detailReadUsers', 'detailShares', 'detailLikes', 'detailComments',
28
30
  ];
29
31
 
30
32
  function sanitizedError(error, secrets, fallback) {
@@ -135,17 +137,43 @@ export const downloadPublishDataCommand = cli({
135
137
  const status = dataResult && markdownResult ? 'downloaded'
136
138
  : dataResult || markdownResult ? 'partial' : 'failed';
137
139
  const metrics = markdownResult?.metrics ?? null;
140
+
141
+ // Use published list data as the authoritative source for overlapping fields.
142
+ // Detail page metrics are only used for fields exclusive to the detail page.
143
+ const mergedMetrics = {
144
+ readUsers: record.reads,
145
+ avgReadMinutes: metrics?.avgReadMinutes ?? null,
146
+ finishedReadRatio: metrics?.finishedReadRatio ?? null,
147
+ newFollowers: metrics?.newFollowers ?? null,
148
+ listenUsers: metrics?.listenUsers ?? null,
149
+ shares: record.shares,
150
+ zaikan: metrics?.zaikan ?? null,
151
+ likes: record.likes,
152
+ rewardYuan: metrics?.rewardYuan ?? null,
153
+ comments: record.comments,
154
+ collections: metrics?.collections ?? null,
155
+ };
156
+
138
157
  return [{
139
158
  title: record.title,
140
159
  publishedAt: record.publishedAt,
141
160
  url: record.url,
142
161
  status,
143
- ...Object.fromEntries(METRIC_COLUMNS.map(key => [key, metrics?.[key] ?? null])),
162
+ ...mergedMetrics,
144
163
  markdownPath: markdownResult?.path ?? null,
145
164
  markdownSize: markdownResult?.size ?? null,
146
165
  dataPath: dataResult?.path ?? null,
147
166
  dataSize: dataResult?.size ?? null,
148
167
  error: errors.length > 0 ? errors.join('; ') : null,
168
+ // Data source transparency: show raw values from both sources
169
+ listReads: record.reads,
170
+ listShares: record.shares,
171
+ listLikes: record.likes,
172
+ listComments: record.comments,
173
+ detailReadUsers: metrics?.readUsers ?? null,
174
+ detailShares: metrics?.shares ?? null,
175
+ detailLikes: metrics?.likes ?? null,
176
+ detailComments: metrics?.comments ?? null,
149
177
  }];
150
178
  },
151
179
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sovovs/bycli",
3
- "version": "2.1.33",
3
+ "version": "2.1.34",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },