twikoo-func 1.7.9 → 1.7.11
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/package.json +1 -1
- package/utils/import.js +36 -11
package/package.json
CHANGED
package/utils/import.js
CHANGED
|
@@ -3,6 +3,41 @@ const { getMarked, getDomPurify, getMd5 } = require('./lib')
|
|
|
3
3
|
const marked = getMarked()
|
|
4
4
|
const md5 = getMd5()
|
|
5
5
|
|
|
6
|
+
const ARRAY_FIELDS = ['like', 'ups', 'downs']
|
|
7
|
+
|
|
8
|
+
const parseJsonArrayField = (value) => {
|
|
9
|
+
if (Array.isArray(value)) return value
|
|
10
|
+
if (typeof value !== 'string') return value
|
|
11
|
+
const trimmed = value.trim()
|
|
12
|
+
if (!trimmed.startsWith('[')) return value
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(trimmed)
|
|
15
|
+
return Array.isArray(parsed) ? parsed : value
|
|
16
|
+
} catch (e) {
|
|
17
|
+
return value
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const normalizeTwikooComment = (comment) => {
|
|
22
|
+
const parsed = { ...comment }
|
|
23
|
+
if (comment._id && comment._id.$oid) {
|
|
24
|
+
// 解决 id 历史数据问题
|
|
25
|
+
parsed._id = comment._id.$oid
|
|
26
|
+
}
|
|
27
|
+
if (comment.pid === null) {
|
|
28
|
+
delete parsed.pid
|
|
29
|
+
}
|
|
30
|
+
if (comment.rid === null) {
|
|
31
|
+
delete parsed.rid
|
|
32
|
+
}
|
|
33
|
+
for (const field of ARRAY_FIELDS) {
|
|
34
|
+
if (field in parsed) {
|
|
35
|
+
parsed[field] = parseJsonArrayField(parsed[field])
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return parsed
|
|
39
|
+
}
|
|
40
|
+
|
|
6
41
|
const fn = {
|
|
7
42
|
// 兼容 Leancloud 两种 JSON 导出格式
|
|
8
43
|
jsonParse (content) {
|
|
@@ -240,17 +275,7 @@ const fn = {
|
|
|
240
275
|
log(`共 ${arr.length} 条评论`)
|
|
241
276
|
for (const comment of arr) {
|
|
242
277
|
try {
|
|
243
|
-
const parsed = comment
|
|
244
|
-
if (comment._id.$oid) {
|
|
245
|
-
// 解决 id 历史数据问题
|
|
246
|
-
parsed._id = comment._id.$oid
|
|
247
|
-
}
|
|
248
|
-
if (comment.pid === null) {
|
|
249
|
-
delete comment.pid
|
|
250
|
-
}
|
|
251
|
-
if (comment.rid === null) {
|
|
252
|
-
delete comment.rid
|
|
253
|
-
}
|
|
278
|
+
const parsed = normalizeTwikooComment(comment)
|
|
254
279
|
comments.push(parsed)
|
|
255
280
|
log(`${comment._id} 解析成功`)
|
|
256
281
|
} catch (e) {
|