karin-plugin-kkk 2.23.1 → 2.24.0
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/CHANGELOG.md +35 -0
- package/config/default_config/app.yaml +4 -1
- package/config/default_config/upload.yaml +7 -4
- package/lib/apps/admin.js +2 -2
- package/lib/apps/help.js +2 -2
- package/lib/apps/push.js +2 -2
- package/lib/apps/qrlogin.js +2 -2
- package/lib/apps/statistics.js +2 -2
- package/lib/apps/tools.js +2 -2
- package/lib/apps/update.js +2 -2
- package/lib/build-metadata.json +5 -5
- package/lib/core_chunk/{main-BdZy8WYB.js → main-1eljaHiz.js} +1336 -1163
- package/lib/core_chunk/{template-CnW8M_F0.js → template-DekmxKd7.js} +282 -128
- package/lib/core_chunk/template.d.mts +4 -9
- package/lib/core_chunk/template.js +1 -1
- package/lib/index.js +2 -2
- package/lib/karin-plugin-kkk.css +16 -36
- package/lib/root.js +1 -1
- package/lib/web.config.js +2 -2
- package/package.json +2 -2
|
@@ -1370,6 +1370,7 @@ var init_ViteLogo = __esmMin(() => {
|
|
|
1370
1370
|
var init_DefaultLayout = __esmMin(() => {
|
|
1371
1371
|
init_dist();
|
|
1372
1372
|
init_clsx();
|
|
1373
|
+
init_date_fns();
|
|
1373
1374
|
init_lucide_react();
|
|
1374
1375
|
__toESM(require_react(), 1);
|
|
1375
1376
|
init_GlowImage();
|
|
@@ -1510,7 +1511,17 @@ var init_DefaultLayout = __esmMin(() => {
|
|
|
1510
1511
|
})] })
|
|
1511
1512
|
]
|
|
1512
1513
|
})
|
|
1513
|
-
}) : (0, import_jsx_runtime$36.jsx)("div", {
|
|
1514
|
+
}) : (0, import_jsx_runtime$36.jsx)("div", {
|
|
1515
|
+
className: "h-24 flex items-center justify-center px-4",
|
|
1516
|
+
children: (0, import_jsx_runtime$36.jsx)("span", {
|
|
1517
|
+
className: "text-xl font-medium text-center leading-relaxed select-none opacity-5",
|
|
1518
|
+
style: {
|
|
1519
|
+
mixBlendMode: "difference",
|
|
1520
|
+
color: "#ffffff"
|
|
1521
|
+
},
|
|
1522
|
+
children: (() => `【法律声明】karin-plugin-kkk 软件作品的完整著作权及相关衍生权利均归作者ikenxuan所有,依据《GNU通用公共许可证第3版》(GPL-3.0)之规定授权公开发布。任何未遵守GPL-3.0协议条款的商业使用行为,均构成对本著作权的侵权行为。完整协议文本查阅地址:https://github.com/ikenxuan/karin-plugin-kkk?tab=GPL-3.0-1-ov-file | 溯源时间戳:${format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")} | 移除本声明的行为,视为违反GPL-3.0协议约定,作者保留追究相关主体法律责任的权利。`)()
|
|
1523
|
+
})
|
|
1524
|
+
})]
|
|
1514
1525
|
}) });
|
|
1515
1526
|
};
|
|
1516
1527
|
});
|
|
@@ -2211,7 +2222,7 @@ var init_Dynamic = __esmMin(() => {
|
|
|
2211
2222
|
className: "flex overflow-hidden gap-8 py-1 pr-2 w-full",
|
|
2212
2223
|
style: { scrollbarWidth: "thin" },
|
|
2213
2224
|
children: [items.slice(0, visibleCount).map((c, idx) => {
|
|
2214
|
-
const avatar = c.
|
|
2225
|
+
const avatar = c.avatar_url;
|
|
2215
2226
|
return (0, import_jsx_runtime$34.jsxs)("div", {
|
|
2216
2227
|
className: "flex flex-col items-center min-w-38 w-38 shrink-0",
|
|
2217
2228
|
children: [
|
|
@@ -2412,13 +2423,17 @@ var init_VideoWork = __esmMin(() => {
|
|
|
2412
2423
|
children: ["@", props.data.username]
|
|
2413
2424
|
}), (0, import_jsx_runtime$33.jsxs)("div", {
|
|
2414
2425
|
className: "flex gap-2 items-center text-4xl text-default-500",
|
|
2415
|
-
children: [
|
|
2416
|
-
size: 32,
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2426
|
+
children: [
|
|
2427
|
+
(0, import_jsx_runtime$33.jsx)(Hash, { size: 32 }),
|
|
2428
|
+
(0, import_jsx_runtime$33.jsxs)("span", {
|
|
2429
|
+
className: "select-text",
|
|
2430
|
+
children: ["抖音号: ", props.data.抖音号]
|
|
2431
|
+
}),
|
|
2432
|
+
props.data.cooperation_info?.subscriber_role && (0, import_jsx_runtime$33.jsx)("span", {
|
|
2433
|
+
className: "ml-5 px-3 py-1 rounded-xl bg-default-200 text-3xl",
|
|
2434
|
+
children: props.data.cooperation_info.subscriber_role
|
|
2435
|
+
})
|
|
2436
|
+
]
|
|
2422
2437
|
})]
|
|
2423
2438
|
})]
|
|
2424
2439
|
}), (0, import_jsx_runtime$33.jsxs)("div", {
|
|
@@ -2487,8 +2502,8 @@ var init_VideoWork = __esmMin(() => {
|
|
|
2487
2502
|
]
|
|
2488
2503
|
})]
|
|
2489
2504
|
});
|
|
2490
|
-
CoCreatorsInfo$1 = ({ info }) => {
|
|
2491
|
-
const creators = info?.co_creators ?? [];
|
|
2505
|
+
CoCreatorsInfo$1 = ({ info, subscriberNickname }) => {
|
|
2506
|
+
const creators = (info?.co_creators ?? []).filter((c) => !subscriberNickname || c.nickname !== subscriberNickname);
|
|
2492
2507
|
if (creators.length === 0) return null;
|
|
2493
2508
|
const items = creators.slice(0, 50);
|
|
2494
2509
|
const listRef = import_react$35.useRef(null);
|
|
@@ -2512,9 +2527,9 @@ var init_VideoWork = __esmMin(() => {
|
|
|
2512
2527
|
className: "flex overflow-hidden gap-8 py-1 pr-2 w-full",
|
|
2513
2528
|
style: { scrollbarWidth: "thin" },
|
|
2514
2529
|
children: [items.slice(0, visibleCount).map((c, idx) => {
|
|
2515
|
-
const avatar = c.
|
|
2530
|
+
const avatar = c.avatar_url;
|
|
2516
2531
|
return (0, import_jsx_runtime$33.jsxs)("div", {
|
|
2517
|
-
className: "flex flex-col items-center min-w-
|
|
2532
|
+
className: "flex flex-col items-center min-w-42 w-42 shrink-0",
|
|
2518
2533
|
children: [
|
|
2519
2534
|
(0, import_jsx_runtime$33.jsx)("div", {
|
|
2520
2535
|
className: "flex justify-center items-center bg-white rounded-full w-30 h-30",
|
|
@@ -2525,7 +2540,7 @@ var init_VideoWork = __esmMin(() => {
|
|
|
2525
2540
|
})
|
|
2526
2541
|
}),
|
|
2527
2542
|
(0, import_jsx_runtime$33.jsx)("div", {
|
|
2528
|
-
className: "overflow-hidden mt-6 w-full text-3xl font-medium leading-tight text-center truncate whitespace-nowrap select-text text-foreground
|
|
2543
|
+
className: "overflow-hidden mt-6 w-full text-3xl font-medium leading-tight text-center truncate whitespace-nowrap select-text text-foreground",
|
|
2529
2544
|
children: c.nickname || "未提供"
|
|
2530
2545
|
}),
|
|
2531
2546
|
(0, import_jsx_runtime$33.jsx)("div", {
|
|
@@ -2538,7 +2553,7 @@ var init_VideoWork = __esmMin(() => {
|
|
|
2538
2553
|
className: "flex flex-col items-center min-w-38 w-38 shrink-0",
|
|
2539
2554
|
children: [
|
|
2540
2555
|
(0, import_jsx_runtime$33.jsx)("div", {
|
|
2541
|
-
className: "flex justify-center items-center rounded-full bg-default-200 w-
|
|
2556
|
+
className: "flex justify-center items-center rounded-full bg-default-200 w-30 h-30",
|
|
2542
2557
|
children: (0, import_jsx_runtime$33.jsx)("span", {
|
|
2543
2558
|
className: "text-[42px] leading-none text-foreground-500",
|
|
2544
2559
|
children: "···"
|
|
@@ -2586,7 +2601,10 @@ var init_VideoWork = __esmMin(() => {
|
|
|
2586
2601
|
children: [coCreatorCount, "人共创"]
|
|
2587
2602
|
})]
|
|
2588
2603
|
})
|
|
2589
|
-
}), (0, import_jsx_runtime$33.jsx)(CoCreatorsInfo$1, {
|
|
2604
|
+
}), (0, import_jsx_runtime$33.jsx)(CoCreatorsInfo$1, {
|
|
2605
|
+
info: props.data.cooperation_info,
|
|
2606
|
+
subscriberNickname: props.data.username
|
|
2607
|
+
})]
|
|
2590
2608
|
}), (0, import_jsx_runtime$33.jsxs)("div", {
|
|
2591
2609
|
className: "flex justify-between items-start px-20 pb-20",
|
|
2592
2610
|
children: [(0, import_jsx_runtime$33.jsx)(UserInfoSection$3, { ...props }), (0, import_jsx_runtime$33.jsx)("div", {
|
|
@@ -2813,7 +2831,7 @@ var init_ImageWork = __esmMin(() => {
|
|
|
2813
2831
|
className: "flex overflow-hidden gap-8 py-1 pr-2 w-full",
|
|
2814
2832
|
style: { scrollbarWidth: "thin" },
|
|
2815
2833
|
children: [items.slice(0, visibleCount).map((c, idx) => {
|
|
2816
|
-
const avatar = c.
|
|
2834
|
+
const avatar = c.avatar_url;
|
|
2817
2835
|
return (0, import_jsx_runtime$32.jsxs)("div", {
|
|
2818
2836
|
className: "flex flex-col items-center min-w-38 w-38 shrink-0",
|
|
2819
2837
|
children: [
|
|
@@ -4295,80 +4313,87 @@ var init_UserList$1 = __esmMin(() => {
|
|
|
4295
4313
|
})
|
|
4296
4314
|
}),
|
|
4297
4315
|
(0, import_jsx_runtime$25.jsxs)("div", {
|
|
4298
|
-
className: "relative z-10 p-
|
|
4316
|
+
className: "relative z-10 p-6 flex flex-col gap-4",
|
|
4299
4317
|
children: [(0, import_jsx_runtime$25.jsxs)("div", {
|
|
4300
|
-
className: "
|
|
4301
|
-
children: [(0, import_jsx_runtime$25.jsx)("div", {
|
|
4302
|
-
className: "w-28 h-28 rounded-full p-1 bg-default-100/20 backdrop-blur-md border border-default-200/30 shadow-lg",
|
|
4303
|
-
children: (0, import_jsx_runtime$25.jsx)("img", {
|
|
4304
|
-
src: props.avatar_img,
|
|
4305
|
-
alt: "Avatar",
|
|
4306
|
-
className: "w-full h-full rounded-full object-cover"
|
|
4307
|
-
})
|
|
4308
|
-
}), (0, import_jsx_runtime$25.jsxs)("div", {
|
|
4309
|
-
className: `absolute -bottom-1 -right-1 px-3 py-1 rounded-full border-2 border-background flex items-center gap-1.5 shadow-md ${props.switch ? "bg-success text-white" : "bg-danger-500 text-default-100"}`,
|
|
4310
|
-
children: [(0, import_jsx_runtime$25.jsx)("div", { className: `w-1.5 h-1.5 rounded-full ${props.switch ? "bg-white" : "bg-default-300"}` }), (0, import_jsx_runtime$25.jsx)("span", {
|
|
4311
|
-
className: "text-[10px] font-bold uppercase tracking-wider leading-none",
|
|
4312
|
-
children: props.switch ? "ON" : "OFF"
|
|
4313
|
-
})]
|
|
4314
|
-
})]
|
|
4315
|
-
}), (0, import_jsx_runtime$25.jsxs)("div", {
|
|
4316
|
-
className: "flex-1 min-w-0",
|
|
4318
|
+
className: "flex items-center gap-4",
|
|
4317
4319
|
children: [
|
|
4320
|
+
(0, import_jsx_runtime$25.jsx)("div", {
|
|
4321
|
+
className: "w-20 h-20 rounded-full p-1 bg-default-100/20 backdrop-blur-md border border-default-200/30 shadow-lg shrink-0",
|
|
4322
|
+
children: (0, import_jsx_runtime$25.jsx)("img", {
|
|
4323
|
+
src: props.avatar_img,
|
|
4324
|
+
alt: "Avatar",
|
|
4325
|
+
className: "w-full h-full rounded-full object-cover"
|
|
4326
|
+
})
|
|
4327
|
+
}),
|
|
4318
4328
|
(0, import_jsx_runtime$25.jsxs)("div", {
|
|
4319
|
-
className: "
|
|
4329
|
+
className: "flex-1 min-w-0",
|
|
4320
4330
|
children: [(0, import_jsx_runtime$25.jsx)("h3", {
|
|
4321
|
-
className: "text-
|
|
4331
|
+
className: "text-3xl font-black tracking-tight text-foreground truncate drop-shadow-sm mb-1.5",
|
|
4322
4332
|
children: props.username
|
|
4323
|
-
}), (0, import_jsx_runtime$25.
|
|
4324
|
-
className: "flex items-center gap-2
|
|
4325
|
-
children: (0, import_jsx_runtime$25.
|
|
4326
|
-
className: "px-1.5 py-0.5 rounded-md bg-default-100/50 border border-default-200/50 text-[10px] font-mono font-bold text-default-500 flex items-center gap-1",
|
|
4327
|
-
children: [(0, import_jsx_runtime$25.jsx)(RiHashtag, { className: "w-2.5 h-2.5 opacity-70" }), props.short_id]
|
|
4328
|
-
})
|
|
4333
|
+
}), (0, import_jsx_runtime$25.jsxs)("span", {
|
|
4334
|
+
className: "inline-flex items-center gap-1 px-2 py-1 rounded-md bg-default-100/50 border border-default-200/50 text-xs font-mono font-bold text-default-500",
|
|
4335
|
+
children: [(0, import_jsx_runtime$25.jsx)(RiHashtag, { className: "w-3 h-3 opacity-70" }), props.short_id]
|
|
4329
4336
|
})]
|
|
4330
4337
|
}),
|
|
4331
|
-
(0, import_jsx_runtime$25.jsx)("div", {
|
|
4332
|
-
className: "flex flex-wrap gap-2 mb-4",
|
|
4333
|
-
children: Object.entries(pushTypeConfig).map(([type, config$1]) => {
|
|
4334
|
-
const isActive = props.pushTypes?.includes(type);
|
|
4335
|
-
const Icon = config$1.icon;
|
|
4336
|
-
return (0, import_jsx_runtime$25.jsxs)("div", {
|
|
4337
|
-
className: `px-2 py-0.5 rounded-md border flex items-center gap-1.5 transition-colors duration-200 ${isActive ? config$1.color : "bg-default-100/50 text-default-400 border-transparent dark:bg-default-100/10"}`,
|
|
4338
|
-
children: [(0, import_jsx_runtime$25.jsx)(Icon, { className: `w-3 h-3 ${isActive ? "" : "opacity-50"}` }), (0, import_jsx_runtime$25.jsx)("span", {
|
|
4339
|
-
className: "text-[10px] font-bold",
|
|
4340
|
-
children: config$1.label
|
|
4341
|
-
})]
|
|
4342
|
-
}, type);
|
|
4343
|
-
})
|
|
4344
|
-
}),
|
|
4345
4338
|
(0, import_jsx_runtime$25.jsxs)("div", {
|
|
4346
|
-
className:
|
|
4347
|
-
children: [
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
className: "text-sm font-bold font-mono text-default-600 leading-none",
|
|
4352
|
-
children: props.fans
|
|
4353
|
-
})]
|
|
4354
|
-
}),
|
|
4355
|
-
(0, import_jsx_runtime$25.jsxs)("div", {
|
|
4356
|
-
className: "flex-1 flex flex-col items-center justify-center py-1.5 px-2 rounded-lg bg-content2/20 border border-default-200/20 backdrop-blur-sm",
|
|
4357
|
-
children: [(0, import_jsx_runtime$25.jsx)(RiHeart3Line, { className: "w-3.5 h-3.5 mb-0.5 text-default-400" }), (0, import_jsx_runtime$25.jsx)("span", {
|
|
4358
|
-
className: "text-sm font-bold font-mono text-default-600 leading-none",
|
|
4359
|
-
children: props.total_favorited
|
|
4360
|
-
})]
|
|
4361
|
-
}),
|
|
4362
|
-
(0, import_jsx_runtime$25.jsxs)("div", {
|
|
4363
|
-
className: "flex-1 flex flex-col items-center justify-center py-1.5 px-2 rounded-lg bg-content2/20 border border-default-200/20 backdrop-blur-sm",
|
|
4364
|
-
children: [(0, import_jsx_runtime$25.jsx)(RiUserFollowLine, { className: "w-3.5 h-3.5 mb-0.5 text-default-400" }), (0, import_jsx_runtime$25.jsx)("span", {
|
|
4365
|
-
className: "text-sm font-bold font-mono text-default-600 leading-none",
|
|
4366
|
-
children: props.following_count
|
|
4367
|
-
})]
|
|
4368
|
-
})
|
|
4369
|
-
]
|
|
4339
|
+
className: `px-4 py-2 rounded-full border-2 border-background flex items-center gap-2 shadow-md shrink-0 ${props.switch ? "bg-success text-white" : "bg-danger-500 text-default-100"}`,
|
|
4340
|
+
children: [(0, import_jsx_runtime$25.jsx)("div", { className: `w-2 h-2 rounded-full ${props.switch ? "bg-white" : "bg-default-300"}` }), (0, import_jsx_runtime$25.jsx)("span", {
|
|
4341
|
+
className: "text-xs font-bold uppercase tracking-wider leading-none",
|
|
4342
|
+
children: props.switch ? "ON" : "OFF"
|
|
4343
|
+
})]
|
|
4370
4344
|
})
|
|
4371
4345
|
]
|
|
4346
|
+
}), (0, import_jsx_runtime$25.jsxs)("div", {
|
|
4347
|
+
className: "flex gap-6",
|
|
4348
|
+
children: [(0, import_jsx_runtime$25.jsx)("div", {
|
|
4349
|
+
className: "flex gap-2.5",
|
|
4350
|
+
children: Object.entries(pushTypeConfig).map(([type, config$1]) => {
|
|
4351
|
+
const isActive = props.pushTypes?.includes(type);
|
|
4352
|
+
const Icon = config$1.icon;
|
|
4353
|
+
return (0, import_jsx_runtime$25.jsxs)("div", {
|
|
4354
|
+
className: `px-2.5 py-3 rounded-xl border flex flex-col items-center gap-2.5 transition-colors duration-200 ${isActive ? config$1.color : "bg-default-100/50 text-default-400 border-transparent dark:bg-default-100/10"}`,
|
|
4355
|
+
children: [(0, import_jsx_runtime$25.jsx)(Icon, { className: `w-5 h-5 ${isActive ? "" : "opacity-50"}` }), (0, import_jsx_runtime$25.jsx)("span", {
|
|
4356
|
+
className: "text-xs font-bold whitespace-nowrap tracking-wide",
|
|
4357
|
+
style: { writingMode: "vertical-rl" },
|
|
4358
|
+
children: config$1.label
|
|
4359
|
+
})]
|
|
4360
|
+
}, type);
|
|
4361
|
+
})
|
|
4362
|
+
}), (0, import_jsx_runtime$25.jsx)("div", {
|
|
4363
|
+
className: "flex-1 flex flex-col gap-2",
|
|
4364
|
+
children: [
|
|
4365
|
+
{
|
|
4366
|
+
icon: RiGroupLine,
|
|
4367
|
+
value: props.fans,
|
|
4368
|
+
label: "粉丝"
|
|
4369
|
+
},
|
|
4370
|
+
{
|
|
4371
|
+
icon: RiHeart3Line,
|
|
4372
|
+
value: props.total_favorited,
|
|
4373
|
+
label: "获赞"
|
|
4374
|
+
},
|
|
4375
|
+
{
|
|
4376
|
+
icon: RiUserFollowLine,
|
|
4377
|
+
value: props.following_count,
|
|
4378
|
+
label: "关注"
|
|
4379
|
+
}
|
|
4380
|
+
].map((item, index) => {
|
|
4381
|
+
const Icon = item.icon;
|
|
4382
|
+
return (0, import_jsx_runtime$25.jsxs)("div", {
|
|
4383
|
+
className: "flex items-center gap-3 px-4 py-2 rounded-lg bg-content2/30 border border-default-200/30 backdrop-blur-sm",
|
|
4384
|
+
children: [(0, import_jsx_runtime$25.jsx)(Icon, { className: "w-5 h-5 text-default-400 shrink-0" }), (0, import_jsx_runtime$25.jsxs)("div", {
|
|
4385
|
+
className: "flex items-baseline gap-2 flex-1",
|
|
4386
|
+
children: [(0, import_jsx_runtime$25.jsx)("span", {
|
|
4387
|
+
className: "text-base font-bold font-mono text-foreground",
|
|
4388
|
+
children: item.value
|
|
4389
|
+
}), (0, import_jsx_runtime$25.jsx)("span", {
|
|
4390
|
+
className: "text-xs text-default-400 font-medium",
|
|
4391
|
+
children: item.label
|
|
4392
|
+
})]
|
|
4393
|
+
})]
|
|
4394
|
+
}, index);
|
|
4395
|
+
})
|
|
4396
|
+
})]
|
|
4372
4397
|
})]
|
|
4373
4398
|
})
|
|
4374
4399
|
]
|
|
@@ -4559,11 +4584,101 @@ var init_videoInfo$1 = __esmMin(() => {
|
|
|
4559
4584
|
className: "relative",
|
|
4560
4585
|
children: [(0, import_jsx_runtime$24.jsxs)("div", {
|
|
4561
4586
|
className: "absolute inset-0 overflow-hidden -z-10",
|
|
4562
|
-
children: [
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4587
|
+
children: [
|
|
4588
|
+
(0, import_jsx_runtime$24.jsx)("img", {
|
|
4589
|
+
src: props.data.image_url,
|
|
4590
|
+
alt: "",
|
|
4591
|
+
className: "w-full h-full object-cover scale-150 blur-[120px] saturate-[1.8] opacity-50"
|
|
4592
|
+
}),
|
|
4593
|
+
(0, import_jsx_runtime$24.jsx)("div", { className: "absolute inset-0 bg-linear-to-b from-default-50/70 via-default-50/50 to-default-50/70 dark:from-black/40 dark:via-black/30 dark:to-black/40" }),
|
|
4594
|
+
(0, import_jsx_runtime$24.jsx)("div", {
|
|
4595
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.35] mix-blend-overlay dark:mix-blend-soft-light",
|
|
4596
|
+
children: (0, import_jsx_runtime$24.jsxs)("svg", {
|
|
4597
|
+
className: "w-full h-full",
|
|
4598
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4599
|
+
children: [(0, import_jsx_runtime$24.jsxs)("defs", { children: [(0, import_jsx_runtime$24.jsxs)("filter", {
|
|
4600
|
+
id: "douyinNoise",
|
|
4601
|
+
children: [
|
|
4602
|
+
(0, import_jsx_runtime$24.jsx)("feTurbulence", {
|
|
4603
|
+
type: "fractalNoise",
|
|
4604
|
+
baseFrequency: "1.2",
|
|
4605
|
+
numOctaves: "3",
|
|
4606
|
+
stitchTiles: "stitch"
|
|
4607
|
+
}),
|
|
4608
|
+
(0, import_jsx_runtime$24.jsx)("feColorMatrix", {
|
|
4609
|
+
type: "saturate",
|
|
4610
|
+
values: "0"
|
|
4611
|
+
}),
|
|
4612
|
+
(0, import_jsx_runtime$24.jsxs)("feComponentTransfer", { children: [
|
|
4613
|
+
(0, import_jsx_runtime$24.jsx)("feFuncR", {
|
|
4614
|
+
type: "discrete",
|
|
4615
|
+
tableValues: "0 1"
|
|
4616
|
+
}),
|
|
4617
|
+
(0, import_jsx_runtime$24.jsx)("feFuncG", {
|
|
4618
|
+
type: "discrete",
|
|
4619
|
+
tableValues: "0 1"
|
|
4620
|
+
}),
|
|
4621
|
+
(0, import_jsx_runtime$24.jsx)("feFuncB", {
|
|
4622
|
+
type: "discrete",
|
|
4623
|
+
tableValues: "0 1"
|
|
4624
|
+
})
|
|
4625
|
+
] }),
|
|
4626
|
+
(0, import_jsx_runtime$24.jsx)("feComponentTransfer", { children: (0, import_jsx_runtime$24.jsx)("feFuncA", {
|
|
4627
|
+
type: "linear",
|
|
4628
|
+
slope: "2",
|
|
4629
|
+
intercept: "-0.5"
|
|
4630
|
+
}) })
|
|
4631
|
+
]
|
|
4632
|
+
}), (0, import_jsx_runtime$24.jsxs)("mask", {
|
|
4633
|
+
id: "noiseMask",
|
|
4634
|
+
children: [(0, import_jsx_runtime$24.jsxs)("linearGradient", {
|
|
4635
|
+
id: "noiseGradient",
|
|
4636
|
+
x1: "0%",
|
|
4637
|
+
y1: "0%",
|
|
4638
|
+
x2: "0%",
|
|
4639
|
+
y2: "100%",
|
|
4640
|
+
children: [
|
|
4641
|
+
(0, import_jsx_runtime$24.jsx)("stop", {
|
|
4642
|
+
offset: "0%",
|
|
4643
|
+
stopColor: "white",
|
|
4644
|
+
stopOpacity: "1"
|
|
4645
|
+
}),
|
|
4646
|
+
(0, import_jsx_runtime$24.jsx)("stop", {
|
|
4647
|
+
offset: "15%",
|
|
4648
|
+
stopColor: "white",
|
|
4649
|
+
stopOpacity: "0.6"
|
|
4650
|
+
}),
|
|
4651
|
+
(0, import_jsx_runtime$24.jsx)("stop", {
|
|
4652
|
+
offset: "50%",
|
|
4653
|
+
stopColor: "white",
|
|
4654
|
+
stopOpacity: "0.15"
|
|
4655
|
+
}),
|
|
4656
|
+
(0, import_jsx_runtime$24.jsx)("stop", {
|
|
4657
|
+
offset: "85%",
|
|
4658
|
+
stopColor: "white",
|
|
4659
|
+
stopOpacity: "0.6"
|
|
4660
|
+
}),
|
|
4661
|
+
(0, import_jsx_runtime$24.jsx)("stop", {
|
|
4662
|
+
offset: "100%",
|
|
4663
|
+
stopColor: "white",
|
|
4664
|
+
stopOpacity: "1"
|
|
4665
|
+
})
|
|
4666
|
+
]
|
|
4667
|
+
}), (0, import_jsx_runtime$24.jsx)("rect", {
|
|
4668
|
+
width: "100%",
|
|
4669
|
+
height: "100%",
|
|
4670
|
+
fill: "url(#noiseGradient)"
|
|
4671
|
+
})]
|
|
4672
|
+
})] }), (0, import_jsx_runtime$24.jsx)("rect", {
|
|
4673
|
+
width: "100%",
|
|
4674
|
+
height: "100%",
|
|
4675
|
+
filter: "url(#douyinNoise)",
|
|
4676
|
+
mask: "url(#noiseMask)",
|
|
4677
|
+
fill: "white"
|
|
4678
|
+
})]
|
|
4679
|
+
})
|
|
4680
|
+
})
|
|
4681
|
+
]
|
|
4567
4682
|
}), (0, import_jsx_runtime$24.jsx)("div", {
|
|
4568
4683
|
className: "relative w-full overflow-hidden text-default-900",
|
|
4569
4684
|
children: (0, import_jsx_runtime$24.jsxs)("div", {
|
|
@@ -13017,56 +13132,95 @@ var init_GlobalStatistics = __esmMin(() => {
|
|
|
13017
13132
|
children: [(0, import_jsx_runtime.jsx)("div", { className: "w-5 h-24 rounded-full bg-violet-500" }), (0, import_jsx_runtime.jsxs)("div", {
|
|
13018
13133
|
className: "flex flex-col",
|
|
13019
13134
|
children: [(0, import_jsx_runtime.jsx)("h2", {
|
|
13020
|
-
className: "text-[5rem] font-black tracking-tight leading-none text-
|
|
13135
|
+
className: "text-[5rem] font-black tracking-tight leading-none text-default-900/90",
|
|
13021
13136
|
children: "平台详情"
|
|
13022
13137
|
}), (0, import_jsx_runtime.jsx)("span", {
|
|
13023
|
-
className: "text-2xl font-medium tracking-[0.15em] uppercase text-
|
|
13138
|
+
className: "text-2xl font-medium tracking-[0.15em] uppercase text-default-500/70 mt-2",
|
|
13024
13139
|
children: "PLATFORMS"
|
|
13025
13140
|
})]
|
|
13026
13141
|
})]
|
|
13027
|
-
}), (0, import_jsx_runtime.
|
|
13028
|
-
className: "
|
|
13029
|
-
children:
|
|
13030
|
-
|
|
13031
|
-
|
|
13032
|
-
|
|
13033
|
-
|
|
13034
|
-
|
|
13035
|
-
children:
|
|
13036
|
-
|
|
13037
|
-
|
|
13038
|
-
|
|
13039
|
-
|
|
13040
|
-
|
|
13041
|
-
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13142
|
+
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
13143
|
+
className: "flex flex-col items-center gap-20",
|
|
13144
|
+
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
13145
|
+
className: "relative w-full h-200 flex items-center justify-center",
|
|
13146
|
+
children: (0, import_jsx_runtime.jsx)("svg", {
|
|
13147
|
+
width: "1200",
|
|
13148
|
+
height: "1000",
|
|
13149
|
+
viewBox: "0 0 1200 1000",
|
|
13150
|
+
children: (0, import_jsx_runtime.jsx)(VictoryPie, {
|
|
13151
|
+
standalone: false,
|
|
13152
|
+
width: 1200,
|
|
13153
|
+
height: 1e3,
|
|
13154
|
+
data: Object.entries(platformStats).map(([platform, count]) => {
|
|
13155
|
+
const config$1 = platformConfig[platform];
|
|
13156
|
+
const total = Object.values(platformStats).reduce((sum, c) => sum + c, 0);
|
|
13157
|
+
const percentage = total > 0 ? (count / total * 100).toFixed(0) : "0";
|
|
13158
|
+
return {
|
|
13159
|
+
x: config$1.name,
|
|
13160
|
+
y: count,
|
|
13161
|
+
label: `${config$1.name} ${percentage}%\n${formatNumber$4(count)}次`,
|
|
13162
|
+
fill: config$1.color
|
|
13163
|
+
};
|
|
13164
|
+
}),
|
|
13165
|
+
innerRadius: 220,
|
|
13166
|
+
radius: 320,
|
|
13167
|
+
padAngle: 3,
|
|
13168
|
+
colorScale: Object.keys(platformStats).map((platform) => platformConfig[platform].color),
|
|
13169
|
+
style: { labels: {
|
|
13170
|
+
fontSize: 40,
|
|
13171
|
+
fontFamily: "HarmonyOSHans-Regular",
|
|
13172
|
+
fontWeight: "bold",
|
|
13173
|
+
fill: useDarkTheme ? "#fff" : "#000"
|
|
13174
|
+
} },
|
|
13175
|
+
labelRadius: 400
|
|
13176
|
+
})
|
|
13177
|
+
})
|
|
13178
|
+
}), (0, import_jsx_runtime.jsx)("div", {
|
|
13179
|
+
className: "w-full grid grid-cols-2 gap-x-16 gap-y-8",
|
|
13180
|
+
children: Object.entries(platformStats).map(([platform, count]) => {
|
|
13181
|
+
if (count === 0) return null;
|
|
13182
|
+
const config$1 = platformConfig[platform];
|
|
13183
|
+
const total = Object.values(platformStats).reduce((sum, c) => sum + c, 0);
|
|
13184
|
+
const percentage = total > 0 ? (count / total * 100).toFixed(1) : "0.0";
|
|
13185
|
+
return (0, import_jsx_runtime.jsxs)("div", {
|
|
13186
|
+
className: "flex items-center gap-8",
|
|
13187
|
+
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
13188
|
+
className: "w-14 h-14 rounded-lg shrink-0",
|
|
13189
|
+
style: { backgroundColor: config$1.color }
|
|
13190
|
+
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
13191
|
+
className: "flex-1",
|
|
13192
|
+
children: [
|
|
13193
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
13046
13194
|
className: "text-4xl font-bold text-default-900/90 mb-2",
|
|
13047
13195
|
children: config$1.name
|
|
13048
|
-
}),
|
|
13049
|
-
|
|
13196
|
+
}),
|
|
13197
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
13198
|
+
className: "text-2xl text-default-600/80 mb-2",
|
|
13050
13199
|
children: config$1.nameEn
|
|
13051
|
-
})
|
|
13052
|
-
|
|
13053
|
-
|
|
13054
|
-
|
|
13055
|
-
|
|
13056
|
-
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
|
|
13068
|
-
|
|
13069
|
-
|
|
13200
|
+
}),
|
|
13201
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
13202
|
+
className: "text-3xl text-default-600/80",
|
|
13203
|
+
children: [
|
|
13204
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
13205
|
+
className: "font-black text-default-900/90",
|
|
13206
|
+
children: formatWithCommas(count)
|
|
13207
|
+
}),
|
|
13208
|
+
" 次",
|
|
13209
|
+
(0, import_jsx_runtime.jsxs)("span", {
|
|
13210
|
+
className: "text-2xl ml-2",
|
|
13211
|
+
children: [
|
|
13212
|
+
"(",
|
|
13213
|
+
percentage,
|
|
13214
|
+
"%)"
|
|
13215
|
+
]
|
|
13216
|
+
})
|
|
13217
|
+
]
|
|
13218
|
+
})
|
|
13219
|
+
]
|
|
13220
|
+
})]
|
|
13221
|
+
}, platform);
|
|
13222
|
+
})
|
|
13223
|
+
})]
|
|
13070
13224
|
})]
|
|
13071
13225
|
}),
|
|
13072
13226
|
(0, import_jsx_runtime.jsxs)("div", { children: [(0, import_jsx_runtime.jsxs)("div", {
|
|
@@ -142,9 +142,7 @@ interface DouyinDynamicProps extends BaseComponentProps {
|
|
|
142
142
|
cooperation_info?: {
|
|
143
143
|
co_creator_nums: number;
|
|
144
144
|
co_creators: Array<{
|
|
145
|
-
|
|
146
|
-
url_list: string[];
|
|
147
|
-
};
|
|
145
|
+
avatar_url?: string;
|
|
148
146
|
nickname: string;
|
|
149
147
|
role_title: string;
|
|
150
148
|
}>;
|
|
@@ -209,9 +207,7 @@ interface DouyinImageWorkProps extends BaseComponentProps {
|
|
|
209
207
|
cooperation_info?: {
|
|
210
208
|
co_creator_nums: number;
|
|
211
209
|
co_creators: Array<{
|
|
212
|
-
|
|
213
|
-
url_list: string[];
|
|
214
|
-
};
|
|
210
|
+
avatar_url?: string;
|
|
215
211
|
nickname: string;
|
|
216
212
|
role_title: string;
|
|
217
213
|
}>;
|
|
@@ -451,12 +447,11 @@ interface DouyinVideoWorkProps extends BaseComponentProps {
|
|
|
451
447
|
cooperation_info?: {
|
|
452
448
|
co_creator_nums: number;
|
|
453
449
|
co_creators: Array<{
|
|
454
|
-
|
|
455
|
-
url_list: string[];
|
|
456
|
-
};
|
|
450
|
+
avatar_url?: string;
|
|
457
451
|
nickname: string;
|
|
458
452
|
role_title: string;
|
|
459
453
|
}>;
|
|
454
|
+
subscriber_role?: string;
|
|
460
455
|
};
|
|
461
456
|
};
|
|
462
457
|
/** 预生成的二维码数据URL */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import "./rolldown-runtime-BMXAG3ag.js";
|
|
2
2
|
import "./vendor-DxfKHvj-.js";
|
|
3
|
-
import { r as reactServerRender, t as template_default } from "./template-
|
|
3
|
+
import { r as reactServerRender, t as template_default } from "./template-DekmxKd7.js";
|
|
4
4
|
export { template_default as default, reactServerRender };
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./core_chunk/rolldown-runtime-BMXAG3ag.js";
|
|
2
|
-
import "./core_chunk/main-
|
|
2
|
+
import "./core_chunk/main-1eljaHiz.js";
|
|
3
3
|
import "./core_chunk/vendor-DxfKHvj-.js";
|
|
4
|
-
import "./core_chunk/template-
|
|
4
|
+
import "./core_chunk/template-DekmxKd7.js";
|
|
5
5
|
export {};
|