karin-plugin-kkk 2.30.1 → 2.30.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.
@@ -1,9 +1,9 @@
1
1
  import { i as __toESM } from "./rolldown-runtime.js";
2
- import { A as solar_default, B as require_heic_decode, C as clsx, D as addCollection, E as Icon$1, F as lucide_default, H as Chalk, I as ant_design_default, L as require_png, M as ri_default, N as mingcute_default, O as require_react, P as material_symbols_default, R as require_jsQR, S as Button, T as require_server_node, U as Xhshow, V as require_protobufjs, W as zod_default, _ as fromUnixTime, a as purify, b as differenceInSeconds, c as VictoryLine, d as VictoryLabel, f as VictoryTheme, g as parse, h as zhCN, i as Window, j as simple_icons_default, k as tabler_default, l as VictoryChart, m as Markdown, n as require_lib, o as VictoryScatter, p as rehypeHighlight, r as require_qr_code_styling, s as VictoryPie, t as require_dist, u as VictoryAxis, v as formatDistanceToNow, w as require_jsx_runtime, x as Chip, y as format, z as require_jpeg_js } from "./vendor.js";
2
+ import { $ as zhCN, $t as Hash, A as n, An as Button, At as Save, B as RiPieChart2Fill, Bn as Chalk, Bt as Palette, C as BiImage, Cn as Camera, Ct as ShoppingBag, D as AiOutlineVideoCamera, Dn as Bookmark, Dt as Settings2, E as AiFillStar, En as Bot, Et as Share2, F as RiHeart3Fill, Fn as require_png, Ft as QrCode, G as RiTiktokFill, Gt as Menu, H as RiStarFill, Hn as zod_default, Ht as Moon, I as RiHeart3Line, In as require_jsQR, It as Puzzle, J as RiVerifiedBadgeFill, Jt as LoaderCircle, K as RiTrophyFill, Kt as Maximize, L as RiHeartLine, Ln as require_jpeg_js, Lt as Plus, M as RiArrowRightFill, Mn as require_jsx_runtime, Mt as RefreshCw, N as RiGroupLine, Nn as require_server_node, Nt as Radio, O as m, On as BellRing, Ot as Search, P as RiHashtag, Pn as require_react, Pt as Quote, Q as SiAnthropic, Qt as Heart, R as RiLiveLine, Rn as require_heic_decode, Rt as Play, S as FaUserGroup, Sn as ChartColumn, St as Smartphone, T as AiFillPushpin, Tn as Box, Tt as ShieldCheck, U as RiStarLine, Ut as Monitor, V as RiShareForwardFill, Vn as Xhshow, Vt as Music, W as RiThumbUpFill, Wt as MessageCircle, X as SiGithub, Xt as Info, Y as RiVideoLine, Yt as LayoutTemplate, Z as SiBilibili, Zt as Image$1, _ as MdLocationOn, _n as CircleEllipsis, _t as Sun, a as purify, an as Eye, at as Zap, b as FaMusic, bn as CircleAlert, bt as SquarePen, c as VictoryLine, cn as Download, ct as Video, d as VictoryLabel, dn as CornerDownLeft, dt as User, en as GitBranch, et as parse, f as VictoryTheme, fn as Copy, ft as UserPlus, g as MdLightbulbOutline, gn as CircleFadingArrowUp, gt as Terminal, h as MdInfoOutline, hn as CircleQuestionMark, ht as Trash2, i as Window, in as FilePlay, it as differenceInSeconds, j as Markdown, jn as clsx, jt as RotateCcw, k as a, kn as Chip, kt as ScanLine, l as VictoryChart, ln as Crown, lt as Users, m as MdFitScreen, mn as Clock, mt as TriangleAlert, n as require_lib, nn as Gamepad2, nt as formatDistanceToNow, o as VictoryScatter, on as EyeOff, ot as X, p as rehypeHighlight, pn as Code, pt as Upload, q as RiUserFollowLine, qt as MapPin, r as require_qr_code_styling, rn as FileText, rt as format, s as VictoryPie, sn as ExternalLink, st as WandSparkles, t as createProxyMiddleware, tn as Gift, tt as fromUnixTime, u as VictoryAxis, un as Cpu, ut as UsersRound, v as MdSchedule, vn as CircleCheckBig, vt as Star, w as AiFillHeart, wn as Calendar, wt as Shield, x as FaTiktok, xn as Check, xt as Sparkles, y as FaCommentDots, yn as CircleCheck, yt as Square, z as RiMessage3Fill, zn as require_protobufjs, zt as Pencil } from "./vendor.js";
3
3
  import "node:module";
4
4
  import fs from "node:fs";
5
5
  import path, { resolve } from "node:path";
6
- import URL$1, { fileURLToPath } from "node:url";
6
+ import URL$2, { fileURLToPath } from "node:url";
7
7
  import os, { platform } from "node:os";
8
8
  import karin$1, { BOT_CONNECT, app, authMiddleware, checkPkgUpdate, checkPort, common, components, config, copyConfigSync, createBadRequestResponse, createNotFoundResponse, createServerErrorResponse, createSuccessResponse, db, defineConfig, ffmpeg, ffprobe, filesByExt, getBot, hooks, karin, karinPathHtml, karinPathTemp, logger, logger as logger$1, logs, mkdirSync, parseChangelog, range, render, requireFileSync, restart, segment, updatePkg, watch } from "node-karin";
9
9
  import _ from "node-karin/lodash";
@@ -104,7 +104,9 @@ function checkDeprecation(apiName) {
104
104
  * @returns 格式化的废弃提示消息字符串
105
105
  */
106
106
  function buildDeprecationMessage(config) {
107
- const lines = [`[DEPRECATED] "${config.name}" 已在 v${config.deprecatedIn} 版本废弃。`, `请使用 "${config.replacement}" 替代。`];
107
+ const lines = [`[DEPRECATED] "${config.name}" 已在 v${config.deprecatedIn} 版本废弃。`];
108
+ if (config.replacement) lines.push(`请使用 "${config.replacement}" 替代。`);
109
+ else lines.push("此接口已被上游删除,无法继续使用,无可用替代方案。");
108
110
  if (config.removedIn) lines.push(`此 API 将在 v${config.removedIn} 版本移除。`);
109
111
  if (config.migrationGuide) lines.push(`迁移指南: ${config.migrationGuide}`);
110
112
  return lines.join("\n");
@@ -212,10 +214,6 @@ registerDeprecatedApi({
212
214
  name: "动态详情数据",
213
215
  replacement: "fetchDynamicDetail"
214
216
  },
215
- {
216
- name: "动态卡片数据",
217
- replacement: "fetchDynamicCard"
218
- },
219
217
  {
220
218
  name: "直播间信息",
221
219
  replacement: "fetchLiveRoomInfo"
@@ -365,6 +363,20 @@ registerDeprecatedApi({
365
363
  throwError: true
366
364
  });
367
365
  });
366
+ registerDeprecatedApi({
367
+ name: `methodType: '动态卡片数据'`,
368
+ deprecatedIn: "6.0.0",
369
+ removedIn: "7.0.0",
370
+ migrationGuide: "https://amagi-docs.vercel.app/docs/changelog/6.1.3",
371
+ throwError: false
372
+ });
373
+ registerDeprecatedApi({
374
+ name: "fetchDynamicCard",
375
+ deprecatedIn: "6.1.3",
376
+ removedIn: "7.0.0",
377
+ migrationGuide: "https://amagi-docs.vercel.app/docs/changelog/6.1.3",
378
+ throwError: false
379
+ });
368
380
  //#endregion
369
381
  //#region ../amagi/packages/core/src/model/DataFetchers.ts
370
382
  /**
@@ -544,9 +556,14 @@ var BilibiliAPI = class {
544
556
  getDynamicDetail(data) {
545
557
  return `https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=${data.dynamic_id}&features=itemOpusStyle,opusBigCover,onlyfansVote,endFooterHidden,decorationCard,onlyfansAssetsV2,ugcDelete,onlyfansQaCard,editable,opusPrivateVisible,avatarAutoTheme`;
546
558
  }
547
- /** 获取动态卡片信息 */
559
+ /**
560
+ * 获取动态卡片信息
561
+ *
562
+ * @deprecated B站官方已于 `2025-08-09` 删除原 `dynamic_svr` 接口,该接口已停用。
563
+ * 调用将返回错误信息,请使用 {@link getDynamicDetail} 替代。
564
+ */
548
565
  getDynamicCard(data) {
549
- return `https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail?dynamic_id=${data.dynamic_id}`;
566
+ return this.getDynamicDetail(data);
550
567
  }
551
568
  /** 获取用户名片信息 */
552
569
  getUserCard(data) {
@@ -1790,15 +1807,20 @@ async function fetchBilibiliInternal(methodType, options, config) {
1790
1807
  const rawData = await fetchBilibili({ ...validateBilibiliParams(methodType, options) }, config.cookie, config.requestConfig);
1791
1808
  const duration = Date.now() - startTime;
1792
1809
  if (rawData.code !== 0) {
1810
+ const errorMessage = rawData.message || "B站数据获取失败";
1793
1811
  emitApiError({
1794
1812
  platform: "bilibili",
1795
1813
  methodType,
1796
1814
  errorCode: rawData.code,
1797
- errorMessage: "B站数据获取失败",
1815
+ errorMessage,
1798
1816
  url: void 0,
1799
1817
  duration
1800
1818
  });
1801
- return createErrorResponse(rawData.amagiError, "B站数据获取失败", rawData.code, rawData.data);
1819
+ return createErrorResponse(rawData.amagiError ?? {
1820
+ errorDescription: errorMessage,
1821
+ requestType: methodType,
1822
+ requestUrl: void 0
1823
+ }, errorMessage, rawData.code, rawData);
1802
1824
  }
1803
1825
  const result = createSuccessResponse$1(rawData, "获取成功", 200);
1804
1826
  emitApiSuccess({
@@ -2107,18 +2129,24 @@ async function fetchDynamicDetail(options, cookie, requestConfig) {
2107
2129
  }
2108
2130
  /**
2109
2131
  * 获取B站动态卡片信息
2132
+ *
2133
+ * @deprecated v6.1.3 已废弃,B站官方已于 `2025-08-09` 删除原 `dynamic_svr` 接口。
2134
+ * 调用将返回错误信息
2135
+ * 计划于 v7.0.0 移除。
2136
+ *
2110
2137
  * @param options - 动态参数
2111
2138
  * @param options.dynamic_id - 动态 ID
2112
2139
  * @param cookie - B站 Cookie (可选)
2113
2140
  * @param requestConfig - 请求配置 (可选)
2114
- * @returns 动态卡片数据
2141
+ * @returns 动态卡片数据(已停用,返回错误信息)
2115
2142
  * @example
2116
2143
  * ```typescript
2117
2144
  * const result = await fetchDynamicCard({ dynamic_id: '123456789' }, cookie)
2118
- * console.log(result.data.card) // 动态卡片
2145
+ * // result.success === false,错误信息提示接口已停用
2119
2146
  * ```
2120
2147
  */
2121
2148
  async function fetchDynamicCard(options, cookie, requestConfig) {
2149
+ checkDeprecation("fetchDynamicCard");
2122
2150
  return fetchBilibiliInternal("dynamicCard", options, {
2123
2151
  cookie,
2124
2152
  requestConfig
@@ -2388,6 +2416,7 @@ function createBoundBilibiliFetcher(cookie, requestConfig) {
2388
2416
  fetchUserSpaceInfo: (options) => fetchUserSpaceInfo(options, cookie, requestConfig),
2389
2417
  fetchUploaderTotalViews: (options) => fetchUploaderTotalViews(options, cookie, requestConfig),
2390
2418
  fetchDynamicDetail: (options) => fetchDynamicDetail(options, cookie, requestConfig),
2419
+ /** @deprecated v6.1.3 已废弃,调用将返回错误信息 */
2391
2420
  fetchDynamicCard: (options) => fetchDynamicCard(options, cookie, requestConfig),
2392
2421
  fetchBangumiInfo: (options) => fetchBangumiInfo(options, cookie, requestConfig),
2393
2422
  fetchBangumiStreamUrl: (options) => fetchBangumiStreamUrl(options, cookie, requestConfig),
@@ -3241,7 +3270,7 @@ var XBogus = class {
3241
3270
  * @returns 包含完整URL、X-Bogus值和使用的User-Agent的元组
3242
3271
  */
3243
3272
  getXBogus(url, ua) {
3244
- const parsedUrl = new URL$1.URL(url);
3273
+ const parsedUrl = new URL$2.URL(url);
3245
3274
  const urlPath = parsedUrl.pathname + parsedUrl.search;
3246
3275
  const currentUa = ua ?? this.defaultUa;
3247
3276
  const rc4EncryptedUa = this.rc4Encrypt(this.uaKey, currentUa);
@@ -5433,6 +5462,8 @@ var encodeBase64Url = (bytes) => {
5433
5462
  * 数据流而最小化保留的局部算法。
5434
5463
  */
5435
5464
  var KuaishouChaChaCipher = class {
5465
+ key;
5466
+ nonce;
5436
5467
  wordIndex = 0;
5437
5468
  state = new Array(16).fill(0);
5438
5469
  constructor(key, nonce) {
@@ -8577,19 +8608,12 @@ var fetchBilibili = async (data, cookie, requestConfig) => {
8577
8608
  url: bilibiliApiUrls.getDynamicDetail({ dynamic_id: data.dynamic_id })
8578
8609
  });
8579
8610
  }
8580
- case "dynamicCard": {
8581
- const { dynamic_id } = data;
8582
- const hasExternalReferer = requestConfig?.headers && "referer" in requestConfig.headers;
8583
- const customHeaders = {
8584
- ...baseRequestConfig.headers,
8585
- ...!hasExternalReferer && { Referer: void 0 }
8586
- };
8587
- return await GlobalGetData(data.methodType, {
8588
- ...baseRequestConfig,
8589
- headers: customHeaders,
8590
- url: bilibiliApiUrls.getDynamicCard({ dynamic_id })
8591
- });
8592
- }
8611
+ case "dynamicCard": return {
8612
+ code: -404,
8613
+ message: "接口已停用:B站官方已于 `2025-08-09` 删除 dynamic_svr 接口,fetchDynamicCard 方法已废弃,调用讲返回错误信息",
8614
+ ttl: 1,
8615
+ data: null
8616
+ };
8593
8617
  case "userCard": {
8594
8618
  const { host_mid } = data;
8595
8619
  return await GlobalGetData(data.methodType, {
@@ -9493,13 +9517,13 @@ var createAmagiClient = (options) => {
9493
9517
  * @param event - 事件名称
9494
9518
  * @param listener - 事件处理函数
9495
9519
  */
9496
- on: amagiEvents.on.bind(amagiEvents),
9520
+ on: (event, listener) => amagiEvents.on(event, listener),
9497
9521
  /**
9498
9522
  * 注册一次性事件监听器
9499
9523
  * @param event - 事件名称
9500
9524
  * @param listener - 事件处理函数 (只触发一次)
9501
9525
  */
9502
- once: amagiEvents.once.bind(amagiEvents),
9526
+ once: (event, listener) => amagiEvents.once(event, listener),
9503
9527
  /** @deprecated v6 已废弃,请使用 douyin.fetcher 替代 */
9504
9528
  getDouyinData,
9505
9529
  /** @deprecated v6 已废弃,请使用 bilibili.fetcher 替代 */
@@ -9663,7 +9687,7 @@ var AdditionalType = /* @__PURE__ */ function(AdditionalType) {
9663
9687
  return AdditionalType;
9664
9688
  }({});
9665
9689
  //#endregion
9666
- //#region ../amagi/packages/core/src/types/ReturnDataType/Bilibili/DynamicInfo.ts
9690
+ //#region ../amagi/packages/core/src/types/ReturnDataType/Bilibili/DynamicInfo/index.ts
9667
9691
  var DynamicType = /* @__PURE__ */ function(DynamicType) {
9668
9692
  DynamicType["AV"] = "DYNAMIC_TYPE_AV";
9669
9693
  DynamicType["DRAW"] = "DYNAMIC_TYPE_DRAW";
@@ -10163,6 +10187,11 @@ var CreateApp = CreateAmagiApp;
10163
10187
  /** After instantiation, it can interact with the specified platform API to quickly obtain data. */
10164
10188
  var Client = CreateApp;
10165
10189
  var amagi = Client;
10190
+ /*!
10191
+ * @ikenxuan/amagi
10192
+ * Copyright(c) 2023 ikenxuan
10193
+ * GPL-3.0 Licensed
10194
+ */
10166
10195
  //#endregion
10167
10196
  //#region src/module/utils/Config.ts
10168
10197
  var Cfg = class {
@@ -12613,11 +12642,17 @@ var Downloader = class {
12613
12642
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
12614
12643
  let intervalId = null;
12615
12644
  let throttleStream = null;
12645
+ let writer = null;
12616
12646
  try {
12617
12647
  let startByte = 0;
12618
12648
  if (fs.existsSync(this.filepath)) {
12619
- startByte = fs.statSync(this.filepath).size;
12620
- logger.debug(`检测到部分下载文件,从 ${formatBytes(startByte)} 处继续下载`);
12649
+ const stats = fs.statSync(this.filepath);
12650
+ startByte = Math.max(0, stats.size - 256 * 1024);
12651
+ if (startByte > 0 && startByte < stats.size) {
12652
+ fs.truncateSync(this.filepath, startByte);
12653
+ logger.debug(`检测到部分下载文件,截断到 ${formatBytes(startByte)} 后重新下载(回退 256KB 安全裕量)`);
12654
+ } else if (startByte > 0) logger.debug(`检测到部分下载文件,从 ${formatBytes(startByte)} 处继续下载(回退 256KB 安全裕量)`);
12655
+ else logger.debug("检测到部分下载文件,文件较小,将重新下载");
12621
12656
  }
12622
12657
  const requestConfig = {
12623
12658
  url: this.url,
@@ -12696,7 +12731,10 @@ var Downloader = class {
12696
12731
  const totalBytes = supportsRange ? startByte + contentLength : contentLength;
12697
12732
  let downloadedBytes = startByte;
12698
12733
  let lastPrintedPercentage = -1;
12699
- const writer = fs.createWriteStream(this.filepath, { flags: startByte > 0 ? "a" : "w" });
12734
+ writer = fs.createWriteStream(this.filepath, {
12735
+ flags: startByte > 0 ? "r+" : "w",
12736
+ start: startByte > 0 ? startByte : void 0
12737
+ });
12700
12738
  const printProgress = () => {
12701
12739
  if (totalBytes > 0) {
12702
12740
  const progressPercentage = Math.floor(downloadedBytes / totalBytes * 100);
@@ -12734,7 +12772,7 @@ var Downloader = class {
12734
12772
  if (actualSize < expectedSize) {
12735
12773
  logger.warn(`文件大小不匹配: 实际 ${formatBytes(actualSize)}, 预期 ${formatBytes(expectedSize)}`);
12736
12774
  logger.warn(`差异: ${formatBytes(expectedSize - actualSize)} (${((expectedSize - actualSize) / expectedSize * 100).toFixed(2)}%)`);
12737
- if ((expectedSize - actualSize) / expectedSize > .01) throw new Error(`文件下载不完整: 实际 ${formatBytes(actualSize)}, 预期 ${formatBytes(expectedSize)}`);
12775
+ if (expectedSize - actualSize > 10 * 1024) throw new Error(`文件下载不完整: 实际 ${formatBytes(actualSize)}, 预期 ${formatBytes(expectedSize)}`);
12738
12776
  } else logger.debug(`文件大小验证通过: ${formatBytes(actualSize)}`);
12739
12777
  }
12740
12778
  this.consecutiveResets = 0;
@@ -12762,6 +12800,20 @@ var Downloader = class {
12762
12800
  }
12763
12801
  const nextDelay = calculateBackoffDelay(retryCount);
12764
12802
  if (retryCount < this.maxRetries) {
12803
+ if (writer && !(writer.closed ?? false)) {
12804
+ const ws = writer;
12805
+ await new Promise((resolve) => {
12806
+ const timeout = setTimeout(() => {
12807
+ ws.off("close", onClose);
12808
+ resolve();
12809
+ }, 1e3);
12810
+ const onClose = () => {
12811
+ clearTimeout(timeout);
12812
+ resolve();
12813
+ };
12814
+ ws.once("close", onClose);
12815
+ });
12816
+ }
12765
12817
  if (isRecoverable && fs.existsSync(this.filepath)) {
12766
12818
  const stats = fs.statSync(this.filepath);
12767
12819
  logger.warn(`检测到可恢复的网络错误,保留已下载的 ${formatBytes(stats.size)} 数据`);
@@ -13485,12 +13537,6 @@ var PreviewLayout = ({ state }) => {
13485
13537
  });
13486
13538
  };
13487
13539
  //#endregion
13488
- //#region ../template/src/components/common/Icon.tsx
13489
- var Icon = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon$1, {
13490
- ...props,
13491
- ssr: true
13492
- });
13493
- //#endregion
13494
13540
  //#region ../template/src/components/common/GlowImage.tsx
13495
13541
  var GlowImage = ({ src, children, alt, className, imgClassName, mode = "blur-layer", blurRadius = 18, glowStrength = .6, scale = 1.06, shadowRadius = 28, crossOrigin }) => {
13496
13542
  const [shadowColor, setShadowColor] = import_react.useState("rgba(255,255,255,0.5)");
@@ -14577,23 +14623,19 @@ var DefaultLayout = ({ children, version, data, scale = 3, className = "", style
14577
14623
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14578
14624
  className: "flex items-center mb-1 space-x-2 text-sm font-bold tracking-widest uppercase text-foreground/80",
14579
14625
  children: [
14580
- version.hasUpdate && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14581
- icon: "lucide:circle-fading-arrow-up",
14626
+ version.hasUpdate && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleFadingArrowUp, {
14582
14627
  strokeWidth: 3,
14583
14628
  className: "w-4 h-4 text-success"
14584
14629
  }),
14585
- !version.hasUpdate && version.releaseType === "Stable" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14586
- icon: "lucide:check-circle",
14630
+ !version.hasUpdate && version.releaseType === "Stable" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleCheckBig, {
14587
14631
  strokeWidth: 3,
14588
14632
  className: "w-4 h-4"
14589
14633
  }),
14590
- !version.hasUpdate && version.releaseType === "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14591
- icon: "lucide:alert-triangle",
14634
+ !version.hasUpdate && version.releaseType === "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, {
14592
14635
  strokeWidth: 3,
14593
14636
  className: "w-4 h-4 text-warning"
14594
14637
  }),
14595
- !version.hasUpdate && version.releaseType !== "Stable" && version.releaseType !== "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14596
- icon: "lucide:info",
14638
+ !version.hasUpdate && version.releaseType !== "Stable" && version.releaseType !== "Preview" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Info, {
14597
14639
  strokeWidth: 3,
14598
14640
  className: "w-4 h-4"
14599
14641
  }),
@@ -14620,8 +14662,7 @@ var DefaultLayout = ({ children, version, data, scale = 3, className = "", style
14620
14662
  className: "flex flex-col items-start",
14621
14663
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14622
14664
  className: "flex items-center mb-1 space-x-2 text-sm font-bold tracking-widest uppercase text-foreground/80",
14623
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14624
- icon: "lucide:zap",
14665
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Zap, {
14625
14666
  strokeWidth: 3,
14626
14667
  className: "w-4 h-4 opacity-90"
14627
14668
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -14860,12 +14901,10 @@ var BangumiBilibiliHeader = (props) => {
14860
14901
  }),
14861
14902
  props.upInfo.verify_type > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
14862
14903
  className: "flex items-center",
14863
- children: props.upInfo.verify_type === 1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14864
- icon: "lucide:shield",
14904
+ children: props.upInfo.verify_type === 1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Shield, {
14865
14905
  width: 20,
14866
14906
  className: "text-warning"
14867
- }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14868
- icon: "lucide:crown",
14907
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Crown, {
14869
14908
  width: 20,
14870
14909
  className: "text-accent"
14871
14910
  })
@@ -14885,10 +14924,7 @@ var BangumiBilibiliHeader = (props) => {
14885
14924
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14886
14925
  className: "flex gap-6 items-center text-3xl select-text text-foreground",
14887
14926
  children: [
14888
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14889
- icon: "lucide:users",
14890
- width: 30
14891
- }),
14927
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { size: 30 }),
14892
14928
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [formatNumber$3(props.upInfo.follower), "粉丝"] }),
14893
14929
  props.upInfo.is_follow === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
14894
14930
  size: "sm",
@@ -14901,10 +14937,7 @@ var BangumiBilibiliHeader = (props) => {
14901
14937
  }),
14902
14938
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14903
14939
  className: "flex gap-2 items-center text-2xl select-text text-foreground/70",
14904
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14905
- icon: "lucide:hash",
14906
- width: 20
14907
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["UID: ", props.upInfo.mid] })]
14940
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 20 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["UID: ", props.upInfo.mid] })]
14908
14941
  })
14909
14942
  ]
14910
14943
  })]
@@ -14944,10 +14977,7 @@ var BangumiBilibiliHeader = (props) => {
14944
14977
  className: "mb-12",
14945
14978
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14946
14979
  className: "flex gap-6 items-center mb-6 text-3xl select-text text-foreground",
14947
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14948
- icon: "lucide:users",
14949
- width: 30
14950
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "声优阵容" })]
14980
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { size: 30 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "声优阵容" })]
14951
14981
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14952
14982
  className: "flex flex-wrap gap-8",
14953
14983
  children: [actorList.slice(0, 6).map((actor, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -14967,10 +14997,7 @@ var BangumiBilibiliHeader = (props) => {
14967
14997
  className: "mb-12",
14968
14998
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
14969
14999
  className: "flex gap-6 items-center mb-6 text-3xl select-text text-foreground",
14970
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
14971
- icon: "lucide:star",
14972
- width: 30
14973
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "评价" })]
15000
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 30 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "评价" })]
14974
15001
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
14975
15002
  className: "text-3xl leading-relaxed select-text text-foreground",
14976
15003
  children: props.evaluate
@@ -15083,10 +15110,7 @@ var BangumiBilibiliEpisodes = (props) => {
15083
15110
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15084
15111
  className: "flex gap-8 items-center mb-20 text-5xl font-bold select-text text-foreground",
15085
15112
  children: [
15086
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15087
- icon: "lucide:play",
15088
- width: 46
15089
- }),
15113
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Play, { size: 46 }),
15090
15114
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "剧集列表" }),
15091
15115
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Chip, {
15092
15116
  size: "lg",
@@ -15144,10 +15168,7 @@ var BangumiBilibiliEpisodes = (props) => {
15144
15168
  children: props.UPInfo ? props.UPInfo.uname : props.Title
15145
15169
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15146
15170
  className: "flex gap-4 items-center text-3xl select-text text-foreground/70",
15147
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15148
- icon: "lucide:calendar",
15149
- width: 30
15150
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "发布了内容" })]
15171
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calendar, { size: 30 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "发布了内容" })]
15151
15172
  })]
15152
15173
  })]
15153
15174
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -15193,30 +15214,21 @@ var BangumiBilibiliEpisodes = (props) => {
15193
15214
  children: [
15194
15215
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15195
15216
  className: "flex gap-6 items-center select-text text-foreground/70",
15196
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15197
- icon: "lucide:hash",
15198
- width: 36
15199
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15217
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 36 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15200
15218
  className: "truncate",
15201
15219
  children: episode.bvid
15202
15220
  })]
15203
15221
  }),
15204
15222
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15205
15223
  className: "flex gap-6 items-center select-text text-foreground/70",
15206
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15207
- icon: "lucide:clock",
15208
- width: 36
15209
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15224
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15210
15225
  className: "whitespace-nowrap",
15211
15226
  children: formatDateTime(episode.pub_time)
15212
15227
  })]
15213
15228
  }),
15214
15229
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
15215
15230
  className: "flex gap-6 items-center select-text text-foreground/70",
15216
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
15217
- icon: "lucide:share-2",
15218
- width: 36
15219
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15231
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 36 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
15220
15232
  className: "truncate",
15221
15233
  children: episode.link
15222
15234
  })]
@@ -16616,10 +16628,7 @@ var BilibiliArticleUserInfo = import_react.memo((props) => {
16616
16628
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.data.usernameMeta })
16617
16629
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16618
16630
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
16619
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16620
- icon: "mingcute:time-fill",
16621
- width: 36
16622
- }), props.data.create_time]
16631
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.data.create_time]
16623
16632
  })]
16624
16633
  })]
16625
16634
  }), props.data.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -16704,10 +16713,7 @@ var BilibiliArticleStatus = import_react.memo((props) => {
16704
16713
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16705
16714
  className: "flex gap-3 items-center text-[42px]",
16706
16715
  children: [
16707
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16708
- icon: "mingcute:comment-2-fill",
16709
- width: 32
16710
- }),
16716
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 32 }),
16711
16717
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16712
16718
  className: "font-medium",
16713
16719
  children: props.data.stats.reply || 0
@@ -16739,10 +16745,7 @@ var BilibiliArticleStatus = import_react.memo((props) => {
16739
16745
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16740
16746
  className: "flex gap-2 items-center",
16741
16747
  children: [
16742
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16743
- icon: "mingcute:eye-fill",
16744
- width: 28
16745
- }),
16748
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }),
16746
16749
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16747
16750
  className: "font-medium",
16748
16751
  children: "阅读量"
@@ -16756,10 +16759,7 @@ var BilibiliArticleStatus = import_react.memo((props) => {
16756
16759
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16757
16760
  className: "flex gap-2 items-center",
16758
16761
  children: [
16759
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16760
- icon: "mingcute:bookmark-fill",
16761
- width: 28
16762
- }),
16762
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { size: 28 }),
16763
16763
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16764
16764
  className: "font-medium",
16765
16765
  children: "收藏"
@@ -16817,10 +16817,7 @@ var BilibiliArticleFooter = import_react.memo((props) => {
16817
16817
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.data.usernameMeta })
16818
16818
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16819
16819
  className: "flex gap-2 items-center text-4xl text-muted",
16820
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16821
- icon: "mingcute:hashtag-fill",
16822
- width: 32
16823
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
16820
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
16824
16821
  className: "select-text",
16825
16822
  children: ["UID: ", props.data.user_shortid]
16826
16823
  })]
@@ -16851,10 +16848,7 @@ var BilibiliArticleFooter = import_react.memo((props) => {
16851
16848
  children: [
16852
16849
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16853
16850
  className: "flex gap-1 items-center",
16854
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16855
- icon: "mingcute:eye-fill",
16856
- width: 28
16857
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16851
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16858
16852
  className: "text-muted",
16859
16853
  children: "关注"
16860
16854
  })]
@@ -16871,10 +16865,7 @@ var BilibiliArticleFooter = import_react.memo((props) => {
16871
16865
  children: [
16872
16866
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
16873
16867
  className: "flex gap-1 items-center",
16874
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
16875
- icon: "mingcute:group-fill",
16876
- width: 28
16877
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16868
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
16878
16869
  className: "text-muted",
16879
16870
  children: "粉丝"
16880
16871
  })]
@@ -17013,10 +17004,7 @@ var BilibiliVideoDynamicContent = (props) => {
17013
17004
  }),
17014
17005
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17015
17006
  className: "flex gap-3 items-center",
17016
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17017
- icon: "mingcute:comment-2-fill",
17018
- width: 48
17019
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17007
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17020
17008
  className: "select-text",
17021
17009
  children: [props.data.pinglun, "评论"]
17022
17010
  })]
@@ -17041,20 +17029,14 @@ var BilibiliVideoDynamicContent = (props) => {
17041
17029
  }),
17042
17030
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17043
17031
  className: "flex gap-3 items-center",
17044
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17045
- icon: "mingcute:eye-fill",
17046
- width: 48
17047
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17032
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17048
17033
  className: "select-text",
17049
17034
  children: [props.data.view, "浏览"]
17050
17035
  })]
17051
17036
  }),
17052
17037
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17053
17038
  className: "flex gap-3 items-center text-5xl font-light tracking-normal",
17054
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17055
- icon: "mingcute:time-fill",
17056
- width: 48
17057
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17039
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17058
17040
  className: "select-text",
17059
17041
  children: ["视频时长: ", props.data.duration_text]
17060
17042
  })]
@@ -17066,27 +17048,18 @@ var BilibiliVideoDynamicContent = (props) => {
17066
17048
  children: [
17067
17049
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17068
17050
  className: "flex gap-3 items-center whitespace-nowrap",
17069
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17070
- icon: "mingcute:time-fill",
17071
- width: 32
17072
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17051
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17073
17052
  className: "select-text",
17074
17053
  children: ["发布于", props.data.create_time]
17075
17054
  })]
17076
17055
  }),
17077
17056
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17078
17057
  className: "flex gap-3 items-center whitespace-nowrap",
17079
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17080
- icon: "mingcute:time-fill",
17081
- width: 32
17082
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
17058
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
17083
17059
  }),
17084
17060
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17085
17061
  className: "flex gap-3 items-center",
17086
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17087
- icon: "mingcute:hashtag-fill",
17088
- width: 32
17089
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17062
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
17090
17063
  className: "select-text",
17091
17064
  children: ["动态ID: ", props.data.dynamic_id]
17092
17065
  })]
@@ -17198,10 +17171,7 @@ var BilibiliVideoDynamicFooter = (props) => {
17198
17171
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17199
17172
  className: "flex gap-2 items-center text-4xl text-muted",
17200
17173
  children: [
17201
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17202
- icon: "mingcute:hashtag-fill",
17203
- width: 32
17204
- }),
17174
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }),
17205
17175
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["UID: ", props.data.user_shortid] }),
17206
17176
  currentUserRole && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17207
17177
  className: "ml-5 px-3 py-1 rounded-xl bg-surface-secondary text-3xl",
@@ -17235,10 +17205,7 @@ var BilibiliVideoDynamicFooter = (props) => {
17235
17205
  children: [
17236
17206
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17237
17207
  className: "flex gap-1 items-center",
17238
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17239
- icon: "mingcute:eye-fill",
17240
- width: 28
17241
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17208
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17242
17209
  className: "text-muted",
17243
17210
  children: "关注"
17244
17211
  })]
@@ -17255,10 +17222,7 @@ var BilibiliVideoDynamicFooter = (props) => {
17255
17222
  children: [
17256
17223
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17257
17224
  className: "flex gap-1 items-center",
17258
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17259
- icon: "mingcute:group-fill",
17260
- width: 28
17261
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17225
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17262
17226
  className: "text-muted",
17263
17227
  children: "粉丝"
17264
17228
  })]
@@ -17336,9 +17300,8 @@ var BilibiliReserveCard = ({ reserve }) => {
17336
17300
  }),
17337
17301
  reserve.desc3 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17338
17302
  className: "flex gap-2 items-center text-4xl select-text leading-none text-[#fb7299]",
17339
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17340
- icon: "mingcute:gift-fill",
17341
- width: 40,
17303
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Gift, {
17304
+ size: 40,
17342
17305
  className: "shrink-0"
17343
17306
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17344
17307
  className: "line-clamp-1",
@@ -17350,10 +17313,7 @@ var BilibiliReserveCard = ({ reserve }) => {
17350
17313
  className: "shrink-0",
17351
17314
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button, {
17352
17315
  className: `text-5xl font-normal px-8 py-5 h-auto min-w-0 ${reserve.buttonText === "已结束" ? "bg-surface-secondary/70 text-muted" : "bg-[#fb7299] text-white"}`,
17353
- children: [reserve.buttonText !== "已结束" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17354
- icon: "mingcute:bell-fill",
17355
- className: "scale-180 mr-4"
17356
- }), reserve.buttonText]
17316
+ children: [reserve.buttonText !== "已结束" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BellRing, { className: "scale-180 mr-4" }), reserve.buttonText]
17357
17317
  })
17358
17318
  })]
17359
17319
  })
@@ -17372,10 +17332,7 @@ var BilibiliVoteCard = ({ vote }) => {
17372
17332
  children: [
17373
17333
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
17374
17334
  className: "shrink-0",
17375
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17376
- icon: "mingcute:chart-bar-fill",
17377
- width: 56
17378
- })
17335
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChartColumn, { size: 56 })
17379
17336
  }),
17380
17337
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17381
17338
  className: "flex flex-col gap-3 flex-1 min-w-0",
@@ -17411,10 +17368,7 @@ var BilibiliCommonCard = ({ common }) => {
17411
17368
  className: "flex flex-col gap-4",
17412
17369
  children: [common.head_text && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17413
17370
  className: "flex gap-2 items-center text-4xl text-muted",
17414
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17415
- icon: "mingcute:gamepad-fill",
17416
- width: 40
17417
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: common.head_text })]
17371
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Gamepad2, { size: 40 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: common.head_text })]
17418
17372
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
17419
17373
  className: "overflow-hidden rounded-4xl bg-surface",
17420
17374
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -17539,10 +17493,7 @@ var BilibiliDynamicUserInfo$1 = (props) => {
17539
17493
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
17540
17494
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17541
17495
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
17542
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17543
- icon: "mingcute:time-fill",
17544
- width: 36
17545
- }), props.create_time]
17496
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.create_time]
17546
17497
  })]
17547
17498
  })]
17548
17499
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -17701,10 +17652,7 @@ var BilibiliDynamicStatus$1 = (props) => {
17701
17652
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17702
17653
  className: "flex gap-2 items-center",
17703
17654
  children: [
17704
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17705
- icon: "mingcute:comment-2-fill",
17706
- width: 48
17707
- }),
17655
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }),
17708
17656
  props.pinglun,
17709
17657
  "评论"
17710
17658
  ]
@@ -17723,10 +17671,7 @@ var BilibiliDynamicStatus$1 = (props) => {
17723
17671
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17724
17672
  className: "flex gap-2 items-center text-5xl font-light tracking-normal select-text text-foreground/70",
17725
17673
  children: [
17726
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17727
- icon: "mingcute:time-fill",
17728
- width: 48
17729
- }),
17674
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }),
17730
17675
  "图片生成于: ",
17731
17676
  props.render_time
17732
17677
  ]
@@ -17795,10 +17740,7 @@ var BilibiliDynamicFooter$1 = (props) => {
17795
17740
  children: [
17796
17741
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17797
17742
  className: "flex gap-1 items-center",
17798
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17799
- icon: "mingcute:eye-fill",
17800
- width: 28
17801
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17743
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17802
17744
  className: "text-muted",
17803
17745
  children: "关注"
17804
17746
  })]
@@ -17815,10 +17757,7 @@ var BilibiliDynamicFooter$1 = (props) => {
17815
17757
  children: [
17816
17758
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17817
17759
  className: "flex gap-1 items-center",
17818
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17819
- icon: "mingcute:group-fill",
17820
- width: 28
17821
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17760
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
17822
17761
  className: "text-muted",
17823
17762
  children: "粉丝"
17824
17763
  })]
@@ -17926,10 +17865,7 @@ var BilibiliForwardUserInfo = (props) => {
17926
17865
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
17927
17866
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17928
17867
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
17929
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17930
- icon: "mingcute:time-fill",
17931
- width: 36
17932
- }), props.create_time]
17868
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.create_time]
17933
17869
  })]
17934
17870
  })]
17935
17871
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -17964,10 +17900,7 @@ var OriginalUserInfo = (props) => {
17964
17900
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
17965
17901
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
17966
17902
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
17967
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
17968
- icon: "mingcute:time-fill",
17969
- width: 32
17970
- }), props.create_time]
17903
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 32 }), props.create_time]
17971
17904
  })]
17972
17905
  })]
17973
17906
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -18257,10 +18190,7 @@ var BilibiliForwardStatus = (props) => {
18257
18190
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18258
18191
  className: "flex gap-2 items-center",
18259
18192
  children: [
18260
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18261
- icon: "mingcute:comment-2-fill",
18262
- width: 48
18263
- }),
18193
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }),
18264
18194
  props.pinglun,
18265
18195
  "评论"
18266
18196
  ]
@@ -18279,10 +18209,7 @@ var BilibiliForwardStatus = (props) => {
18279
18209
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18280
18210
  className: "flex gap-2 items-center text-5xl font-light tracking-normal select-text text-foreground/70",
18281
18211
  children: [
18282
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18283
- icon: "mingcute:time-fill",
18284
- width: 48
18285
- }),
18212
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }),
18286
18213
  "图片生成于: ",
18287
18214
  props.render_time
18288
18215
  ]
@@ -18320,10 +18247,7 @@ var BilibiliForwardFooter = (props) => {
18320
18247
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
18321
18248
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18322
18249
  className: "flex gap-2 items-center text-4xl text-muted",
18323
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18324
- icon: "mingcute:hashtag-fill",
18325
- width: 32
18326
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18250
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18327
18251
  className: "select-text",
18328
18252
  children: ["UID: ", props.user_shortid]
18329
18253
  })]
@@ -18354,10 +18278,7 @@ var BilibiliForwardFooter = (props) => {
18354
18278
  children: [
18355
18279
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18356
18280
  className: "flex gap-1 items-center",
18357
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18358
- icon: "mingcute:eye-fill",
18359
- width: 28
18360
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18281
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18361
18282
  className: "text-muted",
18362
18283
  children: "关注"
18363
18284
  })]
@@ -18374,10 +18295,7 @@ var BilibiliForwardFooter = (props) => {
18374
18295
  children: [
18375
18296
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18376
18297
  className: "flex gap-1 items-center",
18377
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18378
- icon: "mingcute:group-fill",
18379
- width: 28
18380
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18298
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18381
18299
  className: "text-muted",
18382
18300
  children: "粉丝"
18383
18301
  })]
@@ -18773,10 +18691,7 @@ var BilibiliLiveDynamic = import_react.memo((props) => {
18773
18691
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18774
18692
  className: "mt-5 inline-flex items-center gap-3 font-black",
18775
18693
  style: { color: deepColor },
18776
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18777
- icon: "mingcute:group-fill",
18778
- width: 22
18779
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18694
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 22 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
18780
18695
  className: "select-text",
18781
18696
  style: { fontSize: `${followerFontSize}px` },
18782
18697
  children: [data.fans, " 粉丝"]
@@ -18808,10 +18723,7 @@ var BilibiliLiveDynamic = import_react.memo((props) => {
18808
18723
  children: [
18809
18724
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18810
18725
  className: "inline-flex min-w-0 items-center gap-3",
18811
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18812
- icon: "mingcute:radio-fill",
18813
- width: 20
18814
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18726
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Radio, { size: 20 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18815
18727
  className: "min-w-0 whitespace-normal leading-[1.18] select-text",
18816
18728
  style: { fontSize: `${liveInfoFontSize}px` },
18817
18729
  children: data.liveinf
@@ -18823,10 +18735,7 @@ var BilibiliLiveDynamic = import_react.memo((props) => {
18823
18735
  }),
18824
18736
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
18825
18737
  className: "inline-flex items-center gap-3 whitespace-nowrap font-mono",
18826
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
18827
- icon: "mingcute:time-fill",
18828
- width: 20
18829
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18738
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 20 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
18830
18739
  className: "select-text",
18831
18740
  children: liveSignalTime
18832
18741
  })]
@@ -19021,10 +18930,7 @@ var BilibiliDynamicUserInfo = (props) => {
19021
18930
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsernameDisplay, { metadata: props.usernameMeta })
19022
18931
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19023
18932
  className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-muted",
19024
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19025
- icon: "mingcute:time-fill",
19026
- width: 36
19027
- }), props.create_time]
18933
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 36 }), props.create_time]
19028
18934
  })]
19029
18935
  })]
19030
18936
  }), props.decoration_card && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -19078,10 +18984,7 @@ var BilibiliDynamicStatus = (props) => {
19078
18984
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19079
18985
  className: "flex gap-2 items-center",
19080
18986
  children: [
19081
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19082
- icon: "mingcute:comment-2-fill",
19083
- width: 48
19084
- }),
18987
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }),
19085
18988
  props.pinglun,
19086
18989
  "评论"
19087
18990
  ]
@@ -19100,10 +19003,7 @@ var BilibiliDynamicStatus = (props) => {
19100
19003
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19101
19004
  className: "flex gap-2 items-center text-5xl font-light tracking-normal select-text text-foreground/70",
19102
19005
  children: [
19103
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19104
- icon: "mingcute:time-fill",
19105
- width: 48
19106
- }),
19006
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { size: 48 }),
19107
19007
  "图片生成于: ",
19108
19008
  props.render_time
19109
19009
  ]
@@ -19172,10 +19072,7 @@ var BilibiliDynamicFooter = (props) => {
19172
19072
  children: [
19173
19073
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19174
19074
  className: "flex gap-1 items-center",
19175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19176
- icon: "mingcute:eye-fill",
19177
- width: 28
19178
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19075
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19179
19076
  className: "text-muted",
19180
19077
  children: "关注"
19181
19078
  })]
@@ -19192,10 +19089,7 @@ var BilibiliDynamicFooter = (props) => {
19192
19089
  children: [
19193
19090
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19194
19091
  className: "flex gap-1 items-center",
19195
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19196
- icon: "mingcute:group-fill",
19197
- width: 28
19198
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19092
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UsersRound, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19199
19093
  className: "text-muted",
19200
19094
  children: "粉丝"
19201
19095
  })]
@@ -19380,44 +19274,35 @@ var BilibiliQrcodeImg = import_react.memo((props) => {
19380
19274
  className: "flex flex-col items-center gap-4",
19381
19275
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19382
19276
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
19383
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19384
- icon: "simple-icons:bilibili",
19385
- className: "w-16 h-16"
19386
- })
19277
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SiBilibili, { size: 64 })
19387
19278
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19388
19279
  className: "text-[28px] font-medium tracking-wide",
19389
19280
  children: "打开哔哩哔哩"
19390
19281
  })]
19391
19282
  }),
19392
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19393
- icon: "ri:arrow-right-fill",
19394
- className: "w-10 h-10 mt-8 opacity-40"
19283
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
19284
+ size: 40,
19285
+ className: "mt-8 opacity-40"
19395
19286
  }),
19396
19287
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19397
19288
  className: "flex flex-col items-center gap-4",
19398
19289
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19399
19290
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
19400
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19401
- icon: "lucide:user",
19402
- className: "w-16 h-16"
19403
- })
19291
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(User, { size: 64 })
19404
19292
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19405
19293
  className: "text-[28px] font-medium tracking-wide",
19406
19294
  children: "点击我的"
19407
19295
  })]
19408
19296
  }),
19409
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19410
- icon: "ri:arrow-right-fill",
19411
- className: "w-10 h-10 mt-8 opacity-40"
19297
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
19298
+ size: 40,
19299
+ className: "mt-8 opacity-40"
19412
19300
  }),
19413
19301
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19414
19302
  className: "flex flex-col items-center gap-4",
19415
19303
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19416
19304
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
19417
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19418
- icon: "lucide:scan-line",
19419
- className: "w-16 h-16"
19420
- })
19305
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScanLine, { size: 64 })
19421
19306
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19422
19307
  className: "text-[28px] font-medium tracking-wide",
19423
19308
  children: "右上角扫一扫"
@@ -19467,9 +19352,8 @@ var BilibiliQrcodeImg = import_react.memo((props) => {
19467
19352
  children: [
19468
19353
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
19469
19354
  className: "flex items-center justify-center w-16 h-16 mb-2",
19470
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19471
- icon: "lucide:alert-triangle",
19472
- className: "w-16 h-16",
19355
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, {
19356
+ size: 64,
19473
19357
  style: { color: theme.text },
19474
19358
  strokeWidth: 1.5
19475
19359
  })
@@ -19499,32 +19383,32 @@ var pushTypeConfig$1 = {
19499
19383
  video: {
19500
19384
  label: "投稿视频",
19501
19385
  color: "bg-accent/8 text-accent border-accent/25",
19502
- icon: "mingcute:video-line"
19386
+ icon: Video
19503
19387
  },
19504
19388
  draw: {
19505
19389
  label: "图文动态",
19506
19390
  color: "bg-[#23ade5]/10 text-[#23ade5] border-[#23ade5]/25",
19507
- icon: "mingcute:pic-line"
19391
+ icon: Image$1
19508
19392
  },
19509
19393
  word: {
19510
19394
  label: "纯文动态",
19511
19395
  color: "bg-warning/10 text-warning border-warning/25",
19512
- icon: "mingcute:file-text-line"
19396
+ icon: FileText
19513
19397
  },
19514
19398
  live: {
19515
19399
  label: "直播动态",
19516
19400
  color: "bg-success/10 text-success border-success/25",
19517
- icon: "mingcute:live-line"
19401
+ icon: Radio
19518
19402
  },
19519
19403
  forward: {
19520
19404
  label: "转发动态",
19521
19405
  color: "bg-[#f97316]/10 text-[#f97316] border-[#f97316]/25",
19522
- icon: "mingcute:share-forward-line"
19406
+ icon: Share2
19523
19407
  },
19524
19408
  article: {
19525
19409
  label: "投稿专栏",
19526
19410
  color: "bg-[#7c3aed]/10 text-[#7c3aed] border-[#7c3aed]/25",
19527
- icon: "mingcute:article-line"
19411
+ icon: FileText
19528
19412
  }
19529
19413
  };
19530
19414
  /**
@@ -19622,9 +19506,9 @@ var BilibiliUserItem = (props) => {
19622
19506
  className: "flex items-center gap-2 mt-1",
19623
19507
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
19624
19508
  className: "px-2 py-0.5 rounded-md bg-surface border border-border text-xs font-mono font-bold text-muted flex items-center gap-1",
19625
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19626
- icon: "mingcute:hashtag-line",
19627
- className: "w-3 h-3 opacity-70"
19509
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, {
19510
+ size: 12,
19511
+ className: "opacity-70"
19628
19512
  }), props.host_mid]
19629
19513
  })
19630
19514
  })] })
@@ -19637,9 +19521,9 @@ var BilibiliUserItem = (props) => {
19637
19521
  const isActive = activePushTypes.has(type);
19638
19522
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19639
19523
  className: `h-full min-h-18.5 px-2.5 py-2.5 rounded-xl border backdrop-blur-sm flex flex-col justify-between transition-colors duration-200 ${isActive ? config.color : "bg-surface/45 text-muted border-border/15"}`,
19640
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19641
- icon: config.icon,
19642
- className: `w-4.5 h-4.5 ${isActive ? "" : "opacity-50"}`
19524
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(config.icon, {
19525
+ size: 18,
19526
+ className: isActive ? "" : "opacity-50"
19643
19527
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
19644
19528
  className: "text-[13px] font-bold tracking-wide leading-tight",
19645
19529
  children: config.label
@@ -19650,26 +19534,27 @@ var BilibiliUserItem = (props) => {
19650
19534
  className: "grid grid-rows-3 gap-2 h-full",
19651
19535
  children: [
19652
19536
  {
19653
- icon: "mingcute:group-line",
19537
+ icon: UsersRound,
19654
19538
  value: props.fans,
19655
19539
  label: "粉丝"
19656
19540
  },
19657
19541
  {
19658
- icon: "mingcute:heart-line",
19542
+ icon: Heart,
19659
19543
  value: props.total_favorited,
19660
19544
  label: "获赞"
19661
19545
  },
19662
19546
  {
19663
- icon: "mingcute:user-add-line",
19547
+ icon: UserPlus,
19664
19548
  value: props.following_count,
19665
19549
  label: "关注"
19666
19550
  }
19667
19551
  ].map((item, index) => {
19552
+ const StatIcon = item.icon;
19668
19553
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19669
19554
  className: "h-full flex items-center gap-3 px-3.5 py-2.5 rounded-xl bg-surface-secondary/35 border border-border/35 backdrop-blur-sm",
19670
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19671
- icon: item.icon,
19672
- className: "w-4.5 h-4.5 text-muted shrink-0"
19555
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatIcon, {
19556
+ size: 18,
19557
+ className: "text-muted shrink-0"
19673
19558
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19674
19559
  className: "flex items-baseline gap-2 flex-1 min-w-0",
19675
19560
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -19992,9 +19877,8 @@ var BilibiliVideoInfo = import_react.memo((props) => {
19992
19877
  children: [
19993
19878
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
19994
19879
  className: "flex items-center gap-2",
19995
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
19996
- icon: "solar:calendar-linear",
19997
- width: 32,
19880
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calendar, {
19881
+ size: 32,
19998
19882
  className: "text-foreground/20"
19999
19883
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: format(fromUnixTime(props.data.ctime), "yyyy-MM-dd HH:mm") })]
20000
19884
  }),
@@ -20007,9 +19891,8 @@ var BilibiliVideoInfo = import_react.memo((props) => {
20007
19891
  }),
20008
19892
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20009
19893
  className: "flex items-center gap-1.5",
20010
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20011
- icon: "tabler:message-circle",
20012
- width: 28,
19894
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, {
19895
+ size: 28,
20013
19896
  className: "text-foreground/20"
20014
19897
  }), formatNumber$2(props.data.stat.reply)]
20015
19898
  })
@@ -20148,18 +20031,12 @@ var TitleSection = ({ title, createTime, readTime }) => {
20148
20031
  children: [
20149
20032
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20150
20033
  className: "flex items-center gap-2",
20151
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20152
- icon: "lucide:clock",
20153
- className: "w-10 h-10"
20154
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: createTime })]
20034
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-10 h-10" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: createTime })]
20155
20035
  }),
20156
20036
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20157
20037
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20158
20038
  className: "flex items-center gap-2",
20159
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20160
- icon: "lucide:clock",
20161
- className: "w-10 h-10 text-accent"
20162
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
20039
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-10 h-10 text-accent" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
20163
20040
  "阅读 ",
20164
20041
  readTime,
20165
20042
  " 分钟"
@@ -20261,42 +20138,27 @@ var InfoSection$4 = (props) => {
20261
20138
  children: [
20262
20139
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20263
20140
  className: "flex gap-2 items-center",
20264
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20265
- icon: "lucide:heart",
20266
- className: "w-11 h-11 text-like"
20267
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
20141
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
20268
20142
  }),
20269
20143
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20270
20144
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20271
20145
  className: "flex gap-2 items-center",
20272
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20273
- icon: "lucide:message-circle",
20274
- className: "w-11 h-11 text-comment"
20275
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
20146
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
20276
20147
  }),
20277
20148
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20278
20149
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20279
20150
  className: "flex gap-2 items-center",
20280
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20281
- icon: "lucide:bookmark",
20282
- className: "w-11 h-11"
20283
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
20151
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
20284
20152
  }),
20285
20153
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
20286
20154
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20287
20155
  className: "flex gap-2 items-center",
20288
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20289
- icon: "lucide:share-2",
20290
- className: "w-11 h-11 text-success"
20291
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
20156
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
20292
20157
  })
20293
20158
  ]
20294
20159
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20295
20160
  className: "flex items-center gap-2 text-5xl text-muted font-light select-text",
20296
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20297
- icon: "lucide:maximize",
20298
- className: "w-11 h-11 text-time"
20299
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
20161
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
20300
20162
  })]
20301
20163
  });
20302
20164
  };
@@ -20325,10 +20187,7 @@ var UserInfoSection$3 = (props) => {
20325
20187
  children: ["@", props.data.username]
20326
20188
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20327
20189
  className: "flex gap-2 items-center text-4xl text-muted",
20328
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20329
- icon: "lucide:hash",
20330
- className: "w-8 h-8 text-muted"
20331
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20190
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { className: "w-8 h-8 text-muted" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20332
20191
  className: "select-text",
20333
20192
  children: ["抖音号: ", props.data.抖音号]
20334
20193
  })]
@@ -20342,10 +20201,7 @@ var UserInfoSection$3 = (props) => {
20342
20201
  children: [
20343
20202
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20344
20203
  className: "flex gap-1 items-center",
20345
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20346
- icon: "lucide:heart",
20347
- className: "w-7 h-7 text-like"
20348
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20204
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-7 h-7 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20349
20205
  className: "text-muted",
20350
20206
  children: "获赞"
20351
20207
  })]
@@ -20362,10 +20218,7 @@ var UserInfoSection$3 = (props) => {
20362
20218
  children: [
20363
20219
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20364
20220
  className: "flex gap-1 items-center",
20365
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20366
- icon: "lucide:eye",
20367
- className: "w-7 h-7 text-view"
20368
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20221
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, { className: "w-7 h-7 text-view" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20369
20222
  className: "text-muted",
20370
20223
  children: "关注"
20371
20224
  })]
@@ -20382,10 +20235,7 @@ var UserInfoSection$3 = (props) => {
20382
20235
  children: [
20383
20236
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20384
20237
  className: "flex gap-1 items-center",
20385
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20386
- icon: "lucide:users",
20387
- className: "w-7 h-7 text-accent"
20388
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20238
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7 text-accent" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20389
20239
  className: "text-muted",
20390
20240
  children: "粉丝"
20391
20241
  })]
@@ -20477,18 +20327,9 @@ var formatDouyinCommentDiggCount = (count) => {
20477
20327
  if (count >= 1e4) return `${(count / 1e4).toFixed(1)}w`;
20478
20328
  return String(count);
20479
20329
  };
20480
- var DouyinLogo = ({ useDarkTheme }) => {
20481
- const [hasError, setHasError] = import_react.useState(false);
20482
- if (hasError) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20483
- className: "flex items-center h-full text-6xl font-bold text-foreground/70",
20484
- children: "抖音"
20485
- });
20486
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20487
- src: useDarkTheme ? "/image/douyin/dylogo-light.svg" : "/image/douyin/dylogo-dark.svg",
20488
- alt: "抖音Logo",
20489
- className: "object-contain h-full w-auto max-w-125",
20490
- onError: () => setHasError(true)
20491
- });
20330
+ var formatPublishTime = (timestamp) => {
20331
+ if (!timestamp) return "";
20332
+ return format(fromUnixTime(timestamp), "yyyy年MM月dd日 HH:mm", { locale: zhCN });
20492
20333
  };
20493
20334
  /**
20494
20335
  * 二维码组件
@@ -20506,8 +20347,7 @@ var QRCodeSection$1 = ({ qrCodeDataUrl }) => {
20506
20347
  className: "object-contain w-full h-full rounded-lg"
20507
20348
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20508
20349
  className: "flex flex-col justify-center items-center text-muted",
20509
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20510
- icon: "lucide:qr-code",
20350
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
20511
20351
  width: 80,
20512
20352
  className: "mb-4"
20513
20353
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -20525,88 +20365,123 @@ var QRCodeSection$1 = ({ qrCodeDataUrl }) => {
20525
20365
  */
20526
20366
  var VideoInfoHeader = (props) => {
20527
20367
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20528
- className: "max-w-350 mx-auto px-10 py-8",
20368
+ className: "max-w-350 mx-auto px-10 pt-14",
20529
20369
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20530
- className: "flex gap-16 justify-between items-start",
20370
+ className: "flex items-start justify-between gap-10",
20531
20371
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20532
- className: "flex flex-col flex-1",
20533
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20534
- className: "mb-12",
20535
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20536
- className: "h-45 flex items-center",
20537
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(DouyinLogo, { useDarkTheme: props.useDarkTheme }), props.Type === "视频" && props.Resolution && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20538
- className: "flex flex-col gap-2 px-8 py-4 ml-8 rounded-3xl bg-surface/50 w-fit",
20539
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20540
- className: "text-[42px] text-muted",
20541
- children: "分辨率(px)"
20542
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20543
- className: "text-[48px] font-medium text-foreground/70",
20544
- children: props.Resolution
20372
+ className: "flex flex-col gap-10 flex-1 min-w-0",
20373
+ children: [
20374
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20375
+ className: "flex items-start justify-between gap-6",
20376
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20377
+ className: "flex items-center gap-6 min-w-0",
20378
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20379
+ className: "w-35 h-35 shrink-0 rounded-full overflow-hidden bg-surface-secondary ring-2 ring-border/40",
20380
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20381
+ src: props.AuthorAvatar,
20382
+ className: "w-full h-full object-cover",
20383
+ alt: props.Author
20384
+ })
20385
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20386
+ className: "flex flex-col gap-3 min-w-0",
20387
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20388
+ className: "flex items-center gap-4 flex-wrap",
20389
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20390
+ className: "text-5xl font-medium text-foreground truncate",
20391
+ children: props.Author
20392
+ })
20393
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20394
+ className: "text-4xl text-muted",
20395
+ children: formatPublishTime(props.CreateTime)
20396
+ })]
20545
20397
  })]
20546
- })]
20547
- })
20548
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20549
- className: "grid grid-cols-2 gap-y-6 gap-x-16 pl-2",
20550
- children: [
20551
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20552
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20553
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20554
- className: "mr-4 text-muted",
20555
- children: "类型"
20556
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20557
- className: "font-medium text-foreground/70",
20398
+ })
20399
+ }),
20400
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20401
+ className: "flex items-center gap-12 flex-wrap",
20402
+ children: [
20403
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20404
+ className: "flex items-center gap-4 text-foreground/50",
20405
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20406
+ className: "text-5xl font-medium text-foreground/90",
20407
+ children: formatDouyinCommentDiggCount(props.Statistics.digg_count)
20408
+ })]
20409
+ }),
20410
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20411
+ className: "flex items-center gap-4 text-foreground/50",
20412
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20413
+ className: "text-5xl font-medium text-foreground/90",
20414
+ children: formatDouyinCommentDiggCount(props.Statistics.comment_count)
20415
+ })]
20416
+ }),
20417
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20418
+ className: "flex items-center gap-4 text-foreground/50",
20419
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20420
+ className: "text-5xl font-medium text-foreground/90",
20421
+ children: formatDouyinCommentDiggCount(props.Statistics.share_count)
20422
+ })]
20423
+ }),
20424
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20425
+ className: "flex items-center gap-4 text-foreground/50",
20426
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 48 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20427
+ className: "text-5xl font-medium text-foreground/90",
20428
+ children: formatDouyinCommentDiggCount(props.Statistics.collect_count)
20429
+ })]
20430
+ })
20431
+ ]
20432
+ }),
20433
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20434
+ className: "flex items-center gap-4 flex-wrap text-muted",
20435
+ children: [
20436
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20437
+ className: "text-4xl",
20558
20438
  children: props.Type
20559
- })]
20560
- }),
20561
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20562
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20563
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20564
- className: "mr-4 text-muted",
20565
- children: "评论"
20566
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20567
- className: "font-medium text-foreground/70",
20568
- children: [props.CommentLength, "条"]
20569
- })]
20570
- }),
20571
- props.Type === "视频" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20572
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20573
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20574
- className: "mr-4 text-muted",
20575
- children: "大小"
20576
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20577
- className: "font-medium text-foreground/70",
20578
- children: [props.VideoSize, "MB"]
20579
- })]
20580
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20581
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20582
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20583
- className: "mr-4 text-muted",
20584
- children: "帧率"
20585
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20586
- className: "font-medium text-foreground/70",
20587
- children: [props.VideoFPS, "Hz"]
20588
- })]
20589
- })] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20590
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20591
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20592
- className: "mr-4 text-muted",
20593
- children: "区域"
20439
+ }),
20440
+ props.Type === "视频" && props.Resolution && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20441
+ className: "text-4xl text-border",
20442
+ children: "·"
20594
20443
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20595
- className: "font-medium text-foreground/70",
20596
- children: props.Region
20597
- })]
20598
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20599
- className: "flex items-center tracking-[6px] text-[45px] text-muted select-text",
20600
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20601
- className: "mr-4 text-muted",
20602
- children: "数量"
20603
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20604
- className: "font-medium text-foreground/70",
20605
- children: [props.ImageLength, ""]
20606
- })]
20607
- })] })
20608
- ]
20609
- })]
20444
+ className: "text-4xl",
20445
+ children: props.Resolution
20446
+ })] }),
20447
+ props.Type === "视频" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
20448
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20449
+ className: "text-4xl text-border",
20450
+ children: "·"
20451
+ }),
20452
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20453
+ className: "text-4xl",
20454
+ children: [props.VideoSize, "MB"]
20455
+ }),
20456
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20457
+ className: "text-4xl text-border",
20458
+ children: "·"
20459
+ }),
20460
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20461
+ className: "text-4xl",
20462
+ children: [props.VideoFPS, "Hz"]
20463
+ })
20464
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
20465
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20466
+ className: "text-4xl text-border",
20467
+ children: "·"
20468
+ }),
20469
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20470
+ className: "text-4xl",
20471
+ children: props.Region
20472
+ }),
20473
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20474
+ className: "text-4xl text-border",
20475
+ children: "·"
20476
+ }),
20477
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20478
+ className: "text-4xl",
20479
+ children: [props.ImageLength, "张"]
20480
+ })
20481
+ ] })
20482
+ ]
20483
+ })
20484
+ ]
20610
20485
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20611
20486
  className: "shrink-0",
20612
20487
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QRCodeSection$1, { qrCodeDataUrl: props.qrCodeDataUrl })
@@ -20688,9 +20563,8 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20688
20563
  className: "flex items-center h-12.5",
20689
20564
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20690
20565
  className: "flex items-center text-muted",
20691
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20692
- icon: "lucide:circle-ellipsis",
20693
- width: 45,
20566
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleEllipsis, {
20567
+ size: 45,
20694
20568
  className: "mr-5"
20695
20569
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20696
20570
  className: "text-4xl font-medium tracking-wide",
@@ -20712,10 +20586,10 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20712
20586
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20713
20587
  className: "flex relative justify-center",
20714
20588
  children: [
20715
- !isLast && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-0 bottom-0 left-1/2 w-0.5 bg-border -ml-px" }),
20589
+ !isLast && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-0 bottom-0 left-1/2 w-0.5 bg-border-secondary -ml-px" }),
20716
20590
  !isLast && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute -bottom-6 left-1/2 w-0.5 h-6 bg-border -ml-px" }),
20717
20591
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
20718
- className: "absolute top-0 left-0 w-full h-12.5 pointer-events-none overflow-visible z-0 text-border",
20592
+ className: "absolute top-0 left-0 w-full h-12.5 pointer-events-none overflow-visible z-0 text-border-secondary",
20719
20593
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
20720
20594
  d: "M 50 0 V 15 Q 50 50 85 50 H 90",
20721
20595
  fill: "none",
@@ -20738,15 +20612,15 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20738
20612
  className: "object-cover rounded-full w-25 h-25 bg-background",
20739
20613
  alt: "用户头像"
20740
20614
  })
20741
- }), reply.children.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border h-full grow mt-3 rounded-t-full" })]
20615
+ }), reply.children.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border-secondary h-full grow mt-3 rounded-t-full" })]
20742
20616
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20743
- className: "flex flex-col pb-8 pl-3 min-w-0",
20617
+ className: clsx("flex flex-col pl-6 min-w-0 gap-2", isLast && reply.children.length === 0 ? "pb-16" : "pb-6"),
20744
20618
  children: [
20745
20619
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20746
- className: "flex flex-nowrap items-center h-25 content-center w-full overflow-hidden",
20620
+ className: "flex flex-nowrap items-center content-center w-full overflow-hidden",
20747
20621
  children: [
20748
20622
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20749
- className: clsx("mr-2 text-5xl font-medium text-muted", isNicknameLonger ? "min-w-0 truncate shrink" : "shrink-0"),
20623
+ className: clsx("mr-2 text-4xl font-normal text-muted", isNicknameLonger ? "min-w-0 truncate shrink" : "shrink-0"),
20750
20624
  children: reply.nickname
20751
20625
  }),
20752
20626
  reply.label_text !== "" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -20755,59 +20629,53 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
20755
20629
  }),
20756
20630
  reply.reply_to_username && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20757
20631
  className: clsx("flex items-center", !isNicknameLonger ? "overflow-hidden min-w-0 shrink" : "shrink-0"),
20758
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20759
- icon: "lucide:play",
20760
- width: 35,
20761
- className: "mr-3.5 mx-1 text-muted shrink-0",
20762
- fill: "currentColor"
20632
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(a, {
20633
+ weight: "fill",
20634
+ className: "w-7 h-auto mr-3.5 mx-1 text-muted shrink-0"
20763
20635
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20764
- className: clsx("text-5xl font-medium text-muted", !isNicknameLonger && "truncate"),
20636
+ className: clsx("text-4xl font-normal text-muted", !isNicknameLonger && "truncate"),
20765
20637
  children: reply.reply_to_username
20766
20638
  })]
20767
20639
  })
20768
20640
  ]
20769
20641
  }),
20770
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20771
- className: "py-2",
20772
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20773
- className: "text-5xl text-foreground leading-normal whitespace-pre-wrap select-text",
20774
- style: {
20775
- wordBreak: "break-word",
20776
- overflowWrap: "break-word"
20777
- },
20778
- children: renderDouyinCommentRichText(reply.text)
20779
- }), reply.image_list && reply.image_list.length > 0 && reply.image_list.filter(Boolean).map((img, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20780
- className: "my-4 overflow-hidden shadow-sm rounded-xl max-w-150",
20781
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20782
- className: "object-contain w-full h-auto rounded-xl",
20783
- src: img,
20784
- alt: "评论图片"
20785
- })
20786
- }, idx))]
20787
- }),
20642
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20643
+ className: "text-5xl text-foreground leading-normal whitespace-pre-wrap select-text",
20644
+ style: {
20645
+ wordBreak: "break-word",
20646
+ overflowWrap: "break-word"
20647
+ },
20648
+ children: renderDouyinCommentRichText(reply.text)
20649
+ }), reply.image_list && reply.image_list.length > 0 && reply.image_list.filter(Boolean).map((img, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20650
+ className: "my-4 overflow-hidden shadow-sm rounded-xl max-w-150",
20651
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
20652
+ className: "object-contain w-full h-auto rounded-xl",
20653
+ src: img,
20654
+ alt: "评论图片"
20655
+ })
20656
+ }, idx))] }),
20788
20657
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20789
20658
  className: "pb-4",
20790
20659
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20791
20660
  className: "flex gap-6 items-center text-muted",
20792
20661
  children: [
20662
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20663
+ className: "text-4xl",
20664
+ children: formatDouyinCommentTime(reply.create_time)
20665
+ }),
20666
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20667
+ className: "text-4xl",
20668
+ children: reply.ip_label
20669
+ }),
20793
20670
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20794
20671
  className: "flex gap-2 items-center",
20795
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20796
- icon: "lucide:heart",
20797
- width: 40,
20672
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
20673
+ size: 40,
20798
20674
  className: "text-muted"
20799
20675
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20800
20676
  className: "text-4xl select-text",
20801
20677
  children: formatDouyinCommentDiggCount(reply.digg_count)
20802
20678
  })]
20803
- }),
20804
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20805
- className: "text-4xl",
20806
- children: reply.ip_label
20807
- }),
20808
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20809
- className: "ml-2 text-4xl",
20810
- children: formatDouyinCommentTime(reply.create_time)
20811
20679
  })
20812
20680
  ]
20813
20681
  })
@@ -20852,15 +20720,15 @@ var CommentItemComponent$1 = (props) => {
20852
20720
  className: "w-35 h-35 rounded-full object-cover shadow-md bg-background",
20853
20721
  alt: "用户头像"
20854
20722
  })
20855
- }), props.replyComment && props.replyComment.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border h-full grow mt-4 rounded-t-full" })]
20723
+ }), props.replyComment && props.replyComment.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-0.5 bg-border-secondary h-full grow mt-4 rounded-t-full" })]
20856
20724
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20857
- className: "flex flex-col pb-4 pl-4 min-w-0",
20725
+ className: "flex flex-col py-4 pl-6 min-w-0 gap-2",
20858
20726
  children: [
20859
20727
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20860
- className: "flex flex-wrap gap-4 items-center mb-3 text-5xl select-text min-h-35 content-center",
20728
+ className: "flex flex-wrap gap-4 items-center mb-3 text-4xl select-text content-center",
20861
20729
  children: [
20862
20730
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20863
- className: "font-medium text-muted",
20731
+ className: "font-normal text-muted",
20864
20732
  children: props.nickname
20865
20733
  }),
20866
20734
  props.label_type === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -20878,7 +20746,7 @@ var CommentItemComponent$1 = (props) => {
20878
20746
  ]
20879
20747
  }),
20880
20748
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20881
- className: "text-5xl text-foreground leading-normal mb-4 whitespace-pre-wrap select-text",
20749
+ className: "text-5xl text-foreground leading-normal whitespace-pre-wrap select-text",
20882
20750
  style: {
20883
20751
  wordBreak: "break-word",
20884
20752
  overflowWrap: "break-word"
@@ -20894,28 +20762,27 @@ var CommentItemComponent$1 = (props) => {
20894
20762
  })
20895
20763
  }),
20896
20764
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
20897
- className: "flex justify-between items-center mt-3 text-muted",
20765
+ className: "flex justify-between items-center text-muted",
20898
20766
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20899
20767
  className: "flex gap-6 items-center shrink-0",
20900
20768
  children: [
20769
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20770
+ className: "text-4xl",
20771
+ children: formatDouyinCommentTime(props.create_time)
20772
+ }),
20773
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20774
+ className: "text-4xl",
20775
+ children: props.ip_label
20776
+ }),
20901
20777
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20902
20778
  className: "flex gap-2 items-center transition-colors cursor-pointer",
20903
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20904
- icon: "lucide:heart",
20905
- width: 44,
20779
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
20780
+ size: 44,
20906
20781
  className: "text-muted"
20907
20782
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20908
20783
  className: "text-4xl select-text",
20909
20784
  children: formatDouyinCommentDiggCount(props.digg_count)
20910
20785
  })]
20911
- }),
20912
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20913
- className: "text-4xl",
20914
- children: props.ip_label
20915
- }),
20916
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
20917
- className: "ml-2 text-4xl",
20918
- children: formatDouyinCommentTime(props.create_time)
20919
20786
  })
20920
20787
  ]
20921
20788
  })
@@ -20924,7 +20791,7 @@ var CommentItemComponent$1 = (props) => {
20924
20791
  })]
20925
20792
  }), props.replyComment && props.replyComment.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20926
20793
  className: "flex relative flex-col mt-8 ml-5",
20927
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute -top-8 left-12.5 w-0.5 h-8 bg-border -ml-px" }), organizeReplies(props.replyComment, props.cid || "", props.maxDepth).map((reply, index, arr) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ReplyItemComponent, {
20794
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute -top-8 left-12.5 w-0.5 h-8 bg-border-secondary -ml-px" }), organizeReplies(props.replyComment, props.cid || "", props.maxDepth).map((reply, index, arr) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ReplyItemComponent, {
20928
20795
  reply,
20929
20796
  depth: 1,
20930
20797
  isLast: index === arr.length - 1,
@@ -20950,7 +20817,7 @@ var DouyinComment = import_react.memo((props) => {
20950
20817
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DefaultLayout, {
20951
20818
  ...props,
20952
20819
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
20953
- className: "p-5",
20820
+ className: "p-5 px-15",
20954
20821
  children: [
20955
20822
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-20" }),
20956
20823
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(VideoInfoHeader, {
@@ -20966,9 +20833,8 @@ var DouyinComment = import_react.memo((props) => {
20966
20833
  children: "大家都在搜:"
20967
20834
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
20968
20835
  className: "relative text-5xl text-[#04498d] dark:text-[#face15]",
20969
- children: [randomSuggestWord, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
20970
- icon: "lucide:search",
20971
- width: 32,
20836
+ children: [randomSuggestWord, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Search, {
20837
+ size: 32,
20972
20838
  className: "absolute -top-2 -right-8"
20973
20839
  })]
20974
20840
  })]
@@ -21058,50 +20924,32 @@ var InfoSection$3 = (props) => {
21058
20924
  children: [
21059
20925
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21060
20926
  className: "flex gap-2 items-center",
21061
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21062
- icon: "lucide:heart",
21063
- className: "w-11 h-11 text-like"
21064
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
20927
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
21065
20928
  }),
21066
20929
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21067
20930
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21068
20931
  className: "flex gap-2 items-center",
21069
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21070
- icon: "lucide:message-circle",
21071
- className: "w-11 h-11 text-comment"
21072
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
20932
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
21073
20933
  }),
21074
20934
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21075
20935
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21076
20936
  className: "flex gap-2 items-center",
21077
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21078
- icon: "lucide:bookmark",
21079
- className: "w-11 h-11"
21080
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
20937
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
21081
20938
  }),
21082
20939
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21083
20940
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21084
20941
  className: "flex gap-2 items-center",
21085
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21086
- icon: "lucide:share-2",
21087
- className: "w-11 h-11 text-success"
21088
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
20942
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
21089
20943
  })
21090
20944
  ]
21091
20945
  }),
21092
20946
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21093
20947
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21094
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21095
- icon: "lucide:clock",
21096
- className: "w-11 h-11 text-time"
21097
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
20948
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
21098
20949
  }),
21099
20950
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21100
20951
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21101
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21102
- icon: "lucide:maximize",
21103
- className: "w-11 h-11 text-time text-time"
21104
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
20952
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
21105
20953
  })
21106
20954
  ]
21107
20955
  });
@@ -21133,9 +20981,8 @@ var UserInfoSection$2 = (props) => {
21133
20981
  children: ["@", props.data.username]
21134
20982
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21135
20983
  className: "flex gap-2 items-center text-4xl text-muted",
21136
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21137
- icon: "lucide:hash",
21138
- width: 32,
20984
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, {
20985
+ size: 32,
21139
20986
  className: "text-muted"
21140
20987
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21141
20988
  className: "select-text",
@@ -21151,9 +20998,8 @@ var UserInfoSection$2 = (props) => {
21151
20998
  children: [
21152
20999
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21153
21000
  className: "flex gap-1 items-center",
21154
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21155
- icon: "lucide:heart",
21156
- width: 28,
21001
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
21002
+ size: 28,
21157
21003
  className: "text-like"
21158
21004
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21159
21005
  className: "text-muted",
@@ -21172,9 +21018,8 @@ var UserInfoSection$2 = (props) => {
21172
21018
  children: [
21173
21019
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21174
21020
  className: "flex gap-1 items-center",
21175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21176
- icon: "lucide:eye",
21177
- width: 28,
21021
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
21022
+ size: 28,
21178
21023
  className: "text-view"
21179
21024
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21180
21025
  className: "text-muted",
@@ -21193,9 +21038,8 @@ var UserInfoSection$2 = (props) => {
21193
21038
  children: [
21194
21039
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21195
21040
  className: "flex gap-1 items-center",
21196
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21197
- icon: "lucide:users",
21198
- width: 28,
21041
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
21042
+ size: 28,
21199
21043
  className: "text-accent"
21200
21044
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21201
21045
  className: "text-muted",
@@ -21313,10 +21157,7 @@ var DouyinDynamic = (props) => {
21313
21157
  className: "px-16 pb-8",
21314
21158
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21315
21159
  className: "gap-2 inline-flex items-center rounded-2xl bg-surface text-foreground/80 px-6 py-3",
21316
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21317
- icon: "lucide:users",
21318
- className: "w-7 h-7"
21319
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21160
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21320
21161
  className: "text-3xl font-medium leading-none select-text text-foreground/80",
21321
21162
  children: [coCreatorCount, "人共创"]
21322
21163
  })]
@@ -21435,9 +21276,9 @@ var DouyinFavoriteList = (props) => {
21435
21276
  }),
21436
21277
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21437
21278
  className: "absolute -bottom-3 -right-3 bg-rose-500 text-white px-5 py-2 rounded-full border-[5px] border-white font-bold text-xl shadow-xl flex items-center gap-2",
21438
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21439
- icon: "ri:heart-3-fill",
21440
- className: "w-5 h-5 fill-current"
21279
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiHeart3Fill, {
21280
+ size: 20,
21281
+ className: "fill-current"
21441
21282
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "赞了" })]
21442
21283
  })
21443
21284
  ]
@@ -21462,9 +21303,9 @@ var DouyinFavoriteList = (props) => {
21462
21303
  className: "mt-6 flex flex-col items-center gap-2 text-rose-500",
21463
21304
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21464
21305
  className: "flex items-center gap-3",
21465
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21466
- icon: "ri:heart-3-fill",
21467
- className: "w-10 h-10 fill-current"
21306
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiHeart3Fill, {
21307
+ size: 40,
21308
+ className: "fill-current"
21468
21309
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21469
21310
  className: "text-4xl font-bold",
21470
21311
  children: "刚刚赞了这个作品"
@@ -21558,9 +21399,8 @@ var DouyinFavoriteList = (props) => {
21558
21399
  className: "absolute inset-x-0 bottom-0 pt-40 pb-12 px-12 bg-linear-to-t from-black/90 via-black/50 to-transparent",
21559
21400
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21560
21401
  className: "flex gap-6 items-start",
21561
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21562
- icon: "lucide:quote",
21563
- width: 48,
21402
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Quote, {
21403
+ size: 48,
21564
21404
  className: "text-rose-500/90 shrink-0 rotate-180 mt-2"
21565
21405
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
21566
21406
  className: "text-white text-4xl font-medium leading-relaxed line-clamp-3 drop-shadow-lg tracking-wide",
@@ -21573,24 +21413,24 @@ var DouyinFavoriteList = (props) => {
21573
21413
  className: "grid grid-cols-5 gap-6 z-10",
21574
21414
  children: [
21575
21415
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21576
- icon: "ri:heart-3-fill",
21416
+ icon: RiHeart3Fill,
21577
21417
  value: props.data.dianzan,
21578
21418
  iconClassName: "text-rose-500/80"
21579
21419
  }),
21580
21420
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21581
- icon: "ri:thumb-up-fill",
21421
+ icon: RiThumbUpFill,
21582
21422
  value: props.data.tuijian
21583
21423
  }),
21584
21424
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21585
- icon: "ri:message-3-fill",
21425
+ icon: RiMessage3Fill,
21586
21426
  value: props.data.pinglun
21587
21427
  }),
21588
21428
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21589
- icon: "ri:star-fill",
21429
+ icon: RiStarFill,
21590
21430
  value: props.data.shouchang
21591
21431
  }),
21592
21432
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$3, {
21593
- icon: "ri:share-forward-fill",
21433
+ icon: RiShareForwardFill,
21594
21434
  value: props.data.share
21595
21435
  })
21596
21436
  ]
@@ -21603,11 +21443,11 @@ var DouyinFavoriteList = (props) => {
21603
21443
  });
21604
21444
  };
21605
21445
  /** 统计项小组件 */
21606
- var StatItem$3 = ({ icon, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21446
+ var StatItem$3 = ({ icon: IconComponent, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21607
21447
  className: "flex flex-col items-center justify-center gap-2 py-6 rounded-3xl bg-surface",
21608
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21609
- icon,
21610
- className: `w-12 h-12 opacity-90 ${iconClassName || "text-muted"}`
21448
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconComponent, {
21449
+ size: 48,
21450
+ className: `opacity-90 ${iconClassName || "text-muted"}`
21611
21451
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21612
21452
  className: "text-2xl font-bold text-foreground/70 mt-1",
21613
21453
  children: value
@@ -21670,50 +21510,32 @@ var InfoSection$2 = (props) => {
21670
21510
  children: [
21671
21511
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21672
21512
  className: "flex gap-2 items-center",
21673
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21674
- icon: "lucide:heart",
21675
- className: "w-11 h-11 text-like"
21676
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
21513
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
21677
21514
  }),
21678
21515
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21679
21516
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21680
21517
  className: "flex gap-2 items-center",
21681
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21682
- icon: "lucide:message-circle",
21683
- className: "w-11 h-11 text-comment"
21684
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
21518
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
21685
21519
  }),
21686
21520
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21687
21521
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21688
21522
  className: "flex gap-2 items-center",
21689
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21690
- icon: "lucide:bookmark",
21691
- className: "w-11 h-11"
21692
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
21523
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
21693
21524
  }),
21694
21525
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
21695
21526
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21696
21527
  className: "flex gap-2 items-center",
21697
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21698
- icon: "lucide:share-2",
21699
- className: "w-11 h-11 text-success"
21700
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
21528
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
21701
21529
  })
21702
21530
  ]
21703
21531
  }),
21704
21532
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21705
21533
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21706
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21707
- icon: "lucide:clock",
21708
- className: "w-11 h-11 text-time"
21709
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
21534
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
21710
21535
  }),
21711
21536
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21712
21537
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
21713
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21714
- icon: "lucide:maximize",
21715
- className: "w-11 h-11 text-time text-time"
21716
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
21538
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
21717
21539
  })
21718
21540
  ]
21719
21541
  });
@@ -21743,9 +21565,8 @@ var UserInfoSection$1 = (props) => {
21743
21565
  children: ["@", props.data.username]
21744
21566
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21745
21567
  className: "flex gap-2 items-center text-4xl text-muted",
21746
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21747
- icon: "lucide:hash",
21748
- width: 32,
21568
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, {
21569
+ size: 32,
21749
21570
  className: "text-muted"
21750
21571
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21751
21572
  className: "select-text",
@@ -21761,9 +21582,8 @@ var UserInfoSection$1 = (props) => {
21761
21582
  children: [
21762
21583
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21763
21584
  className: "flex gap-1 items-center",
21764
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21765
- icon: "lucide:heart",
21766
- width: 28,
21585
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
21586
+ size: 28,
21767
21587
  className: "text-like"
21768
21588
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21769
21589
  className: "text-muted",
@@ -21782,9 +21602,8 @@ var UserInfoSection$1 = (props) => {
21782
21602
  children: [
21783
21603
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21784
21604
  className: "flex gap-1 items-center",
21785
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21786
- icon: "lucide:eye",
21787
- width: 28,
21605
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
21606
+ size: 28,
21788
21607
  className: "text-view"
21789
21608
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21790
21609
  className: "text-muted",
@@ -21803,9 +21622,8 @@ var UserInfoSection$1 = (props) => {
21803
21622
  children: [
21804
21623
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21805
21624
  className: "flex gap-1 items-center",
21806
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21807
- icon: "lucide:users",
21808
- width: 28,
21625
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
21626
+ size: 28,
21809
21627
  className: "text-accent"
21810
21628
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
21811
21629
  className: "text-muted",
@@ -21923,10 +21741,7 @@ var DouyinImageWork = (props) => {
21923
21741
  className: "px-16 pb-8",
21924
21742
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
21925
21743
  className: "gap-2 inline-flex items-center rounded-2xl bg-surface text-foreground/80 px-6 py-3",
21926
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
21927
- icon: "lucide:users",
21928
- className: "w-7 h-7"
21929
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21744
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
21930
21745
  className: "text-3xl font-medium leading-none select-text text-foreground/80",
21931
21746
  children: [coCreatorCount, "人共创"]
21932
21747
  })]
@@ -22115,9 +21930,8 @@ var InfoSection$1 = ({ data }) => {
22115
21930
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22116
21931
  className: "flex items-center gap-1.5",
22117
21932
  children: [
22118
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22119
- icon: "lucide:users",
22120
- width: 28,
21933
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
21934
+ size: 28,
22121
21935
  className: "text-foreground/20"
22122
21936
  }),
22123
21937
  data.online_viewers,
@@ -22127,9 +21941,8 @@ var InfoSection$1 = ({ data }) => {
22127
21941
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22128
21942
  className: "flex items-center gap-1.5",
22129
21943
  children: [
22130
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22131
- icon: "lucide:eye",
22132
- width: 28,
21944
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
21945
+ size: 28,
22133
21946
  className: "text-foreground/20"
22134
21947
  }),
22135
21948
  data.total_viewers,
@@ -22139,9 +21952,8 @@ var InfoSection$1 = ({ data }) => {
22139
21952
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22140
21953
  className: "flex items-center gap-1.5",
22141
21954
  children: [
22142
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22143
- icon: "lucide:heart",
22144
- width: 28,
21955
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
21956
+ size: 28,
22145
21957
  className: "text-foreground/20"
22146
21958
  }),
22147
21959
  data.like_count,
@@ -22150,17 +21962,15 @@ var InfoSection$1 = ({ data }) => {
22150
21962
  }),
22151
21963
  data.resolution && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22152
21964
  className: "flex items-center gap-1.5",
22153
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22154
- icon: "lucide:monitor",
22155
- width: 28,
21965
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Monitor, {
21966
+ size: 28,
22156
21967
  className: "text-foreground/20"
22157
21968
  }), data.resolution]
22158
21969
  }),
22159
21970
  data.has_commerce_goods && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22160
21971
  className: "flex items-center gap-1.5",
22161
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22162
- icon: "lucide:shopping-bag",
22163
- width: 28,
21972
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShoppingBag, {
21973
+ size: 28,
22164
21974
  className: "text-foreground/20"
22165
21975
  }), "带货中"]
22166
21976
  })
@@ -22172,9 +21982,8 @@ var InfoSection$1 = ({ data }) => {
22172
21982
  }),
22173
21983
  data.city && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22174
21984
  className: "flex items-center gap-2 text-3xl text-foreground/30",
22175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22176
- icon: "lucide:map-pin",
22177
- width: 28,
21985
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MapPin, {
21986
+ size: 28,
22178
21987
  className: "text-foreground/20"
22179
21988
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: data.city })]
22180
21989
  })
@@ -22217,10 +22026,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22217
22026
  className: "text-foreground/40",
22218
22027
  children: "·"
22219
22028
  }),
22220
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22221
- icon: "lucide:users",
22222
- width: 32
22223
- }),
22029
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { size: 32 }),
22224
22030
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
22225
22031
  className: "select-text",
22226
22032
  children: [data.fans, "粉丝"]
@@ -22235,10 +22041,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22235
22041
  className: "flex flex-col gap-2 px-6 py-3 rounded-2xl bg-default/45",
22236
22042
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22237
22043
  className: "flex items-center gap-2",
22238
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22239
- icon: "lucide:file-video",
22240
- width: 28
22241
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22044
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FilePlay, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22242
22045
  className: "text-foreground/40",
22243
22046
  children: "作品"
22244
22047
  })]
@@ -22251,10 +22054,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22251
22054
  className: "flex flex-col gap-2 px-6 py-3 rounded-2xl bg-default/45",
22252
22055
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22253
22056
  className: "flex items-center gap-2",
22254
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22255
- icon: "lucide:user-plus",
22256
- width: 28
22257
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22057
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserPlus, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22258
22058
  className: "text-foreground/40",
22259
22059
  children: "关注"
22260
22060
  })]
@@ -22267,10 +22067,7 @@ var BottomSection = ({ data, qrCodeDataUrl }) => {
22267
22067
  className: "flex flex-col gap-2 px-6 py-3 rounded-2xl bg-default/45",
22268
22068
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22269
22069
  className: "flex items-center gap-2",
22270
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22271
- icon: "lucide:heart",
22272
- width: 28
22273
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22070
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 28 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22274
22071
  className: "text-foreground/40",
22275
22072
  children: "获赞"
22276
22073
  })]
@@ -22392,24 +22189,15 @@ var MusicInfoSection = ({ desc, musicId, userCount, createTime }) => {
22392
22189
  className: "flex flex-col gap-2 text-[45px] text-muted font-light mb-2.5",
22393
22190
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22394
22191
  className: "flex gap-2 items-center select-text",
22395
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22396
- icon: "lucide:music",
22397
- className: "w-11 h-11"
22398
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["音乐ID: ", musicId] })]
22192
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Music, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["音乐ID: ", musicId] })]
22399
22193
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22400
22194
  className: "flex gap-2 items-center select-text",
22401
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22402
- icon: "lucide:users",
22403
- className: "w-11 h-11 text-follow"
22404
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [userCount, " 人使用过"] })]
22195
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-11 h-11 text-follow" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [userCount, " 人使用过"] })]
22405
22196
  })]
22406
22197
  }),
22407
22198
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22408
22199
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
22409
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22410
- icon: "lucide:maximize",
22411
- className: "w-11 h-11 text-time"
22412
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", createTime] })]
22200
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", createTime] })]
22413
22201
  })
22414
22202
  ]
22415
22203
  });
@@ -22441,31 +22229,19 @@ var MusicAuthorInfoSection = ({ avatarUrl, username, userShortId, totalFavorited
22441
22229
  children: [
22442
22230
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22443
22231
  className: "flex gap-2 items-center",
22444
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22445
- icon: "lucide:hash",
22446
- className: "w-8 h-8"
22447
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["ID: ", userShortId] })]
22232
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { className: "w-8 h-8" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["ID: ", userShortId] })]
22448
22233
  }),
22449
22234
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22450
22235
  className: "flex gap-2 items-center",
22451
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22452
- icon: "lucide:heart",
22453
- className: "w-8 h-8 text-like"
22454
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["获赞: ", totalFavorited] })]
22236
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-8 h-8 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["获赞: ", totalFavorited] })]
22455
22237
  }),
22456
22238
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22457
22239
  className: "flex gap-2 items-center",
22458
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22459
- icon: "lucide:user-plus",
22460
- className: "w-8 h-8"
22461
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["关注: ", followingCount] })]
22240
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserPlus, { className: "w-8 h-8" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["关注: ", followingCount] })]
22462
22241
  }),
22463
22242
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22464
22243
  className: "flex gap-2 items-center",
22465
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22466
- icon: "lucide:users",
22467
- className: "w-8 h-8 text-follow"
22468
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["粉丝: ", fans] })]
22244
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-8 h-8 text-follow" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["粉丝: ", fans] })]
22469
22245
  })
22470
22246
  ]
22471
22247
  })]
@@ -22481,10 +22257,7 @@ var MusicQRCodeSection = ({ qrCodeDataUrl }) => {
22481
22257
  className: "flex flex-col-reverse items-center -mb-12 mr-18",
22482
22258
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22483
22259
  className: "flex items-center gap-2 text-[45px] text-right mt-5 text-muted select-text",
22484
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22485
- icon: "lucide:qr-code",
22486
- className: "w-11 h-11"
22487
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "文件直链:永久有效" })]
22260
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "文件直链:永久有效" })]
22488
22261
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22489
22262
  className: "p-2.5 rounded-sm border-[7px] border-dashed border-border",
22490
22263
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
@@ -22644,44 +22417,35 @@ var DouyinQrcodeImg = import_react.memo((props) => {
22644
22417
  className: "flex flex-col items-center gap-4",
22645
22418
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22646
22419
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
22647
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22648
- icon: "ri:tiktok-fill",
22649
- className: "w-16 h-16"
22650
- })
22420
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTiktokFill, { size: 64 })
22651
22421
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22652
22422
  className: "text-[28px] font-medium tracking-wide",
22653
22423
  children: "打开抖音"
22654
22424
  })]
22655
22425
  }),
22656
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22657
- icon: "ri:arrow-right-fill",
22658
- className: "w-10 h-10 mt-8 opacity-40"
22426
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
22427
+ size: 40,
22428
+ className: "mt-8 opacity-40"
22659
22429
  }),
22660
22430
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22661
22431
  className: "flex flex-col items-center gap-4",
22662
22432
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22663
22433
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
22664
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22665
- icon: "heroicons-outline:menu-alt-2",
22666
- className: "w-16 h-16"
22667
- })
22434
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu, { size: 64 })
22668
22435
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22669
22436
  className: "text-[28px] font-medium tracking-wide",
22670
22437
  children: "左上角菜单"
22671
22438
  })]
22672
22439
  }),
22673
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22674
- icon: "ri:arrow-right-fill",
22675
- className: "w-10 h-10 mt-8 opacity-40"
22440
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiArrowRightFill, {
22441
+ size: 40,
22442
+ className: "mt-8 opacity-40"
22676
22443
  }),
22677
22444
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22678
22445
  className: "flex flex-col items-center gap-4",
22679
22446
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22680
22447
  className: "p-5 rounded-3xl bg-surface/50 backdrop-blur-md",
22681
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22682
- icon: "tabler:scan",
22683
- className: "w-16 h-16"
22684
- })
22448
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScanLine, { size: 64 })
22685
22449
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22686
22450
  className: "text-[28px] font-medium tracking-wide",
22687
22451
  children: "顶部扫一扫"
@@ -22722,9 +22486,8 @@ var DouyinQrcodeImg = import_react.memo((props) => {
22722
22486
  children: [
22723
22487
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22724
22488
  className: "flex items-center justify-center w-16 h-16 mb-2",
22725
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22726
- icon: "lucide:smartphone",
22727
- className: "w-16 h-16",
22489
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Smartphone, {
22490
+ size: 64,
22728
22491
  style: { color: theme.text },
22729
22492
  strokeWidth: 1
22730
22493
  })
@@ -22745,9 +22508,8 @@ var DouyinQrcodeImg = import_react.memo((props) => {
22745
22508
  children: [
22746
22509
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22747
22510
  className: "flex items-center justify-center w-16 h-16 mb-2",
22748
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22749
- icon: "lucide:shield-check",
22750
- className: "w-16 h-16",
22511
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShieldCheck, {
22512
+ size: 64,
22751
22513
  style: { color: theme.text },
22752
22514
  strokeWidth: 1
22753
22515
  })
@@ -22863,9 +22625,9 @@ var DouyinRecommendList = (props) => {
22863
22625
  }),
22864
22626
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22865
22627
  className: "absolute -bottom-3 -right-3 bg-emerald-500 text-white px-5 py-2 rounded-full border-[5px] border-white font-bold text-xl shadow-xl flex items-center gap-2",
22866
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22867
- icon: "ri:thumb-up-fill",
22868
- className: "w-5 h-5 fill-current"
22628
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiThumbUpFill, {
22629
+ size: 20,
22630
+ className: "fill-current"
22869
22631
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "推荐" })]
22870
22632
  })
22871
22633
  ]
@@ -22890,9 +22652,9 @@ var DouyinRecommendList = (props) => {
22890
22652
  className: "mt-6 flex flex-col items-center gap-2 text-emerald-500",
22891
22653
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22892
22654
  className: "flex items-center gap-3",
22893
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22894
- icon: "ri:thumb-up-fill",
22895
- className: "w-10 h-10 fill-current"
22655
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiThumbUpFill, {
22656
+ size: 40,
22657
+ className: "fill-current"
22896
22658
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
22897
22659
  className: "text-4xl font-bold",
22898
22660
  children: "刚刚推荐了这个作品"
@@ -22986,9 +22748,8 @@ var DouyinRecommendList = (props) => {
22986
22748
  className: "absolute inset-x-0 bottom-0 pt-40 pb-12 px-12 bg-linear-to-t from-black/90 via-black/50 to-transparent",
22987
22749
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22988
22750
  className: "flex gap-6 items-start",
22989
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
22990
- icon: "lucide:quote",
22991
- width: 48,
22751
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Quote, {
22752
+ size: 48,
22992
22753
  className: "text-emerald-500/90 shrink-0 rotate-180 mt-2"
22993
22754
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
22994
22755
  className: "text-white text-4xl font-medium leading-relaxed line-clamp-3 drop-shadow-lg tracking-wide",
@@ -23001,24 +22762,24 @@ var DouyinRecommendList = (props) => {
23001
22762
  className: "grid grid-cols-5 gap-6 z-10",
23002
22763
  children: [
23003
22764
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23004
- icon: "ri:heart-3-fill",
22765
+ icon: RiHeart3Fill,
23005
22766
  value: props.data.dianzan
23006
22767
  }),
23007
22768
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23008
- icon: "ri:thumb-up-fill",
22769
+ icon: RiThumbUpFill,
23009
22770
  value: props.data.tuijian,
23010
22771
  iconClassName: "text-emerald-500/80"
23011
22772
  }),
23012
22773
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23013
- icon: "ri:message-3-fill",
22774
+ icon: RiMessage3Fill,
23014
22775
  value: props.data.pinglun
23015
22776
  }),
23016
22777
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23017
- icon: "ri:star-fill",
22778
+ icon: RiStarFill,
23018
22779
  value: props.data.shouchang
23019
22780
  }),
23020
22781
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$2, {
23021
- icon: "ri:share-forward-fill",
22782
+ icon: RiShareForwardFill,
23022
22783
  value: props.data.share
23023
22784
  })
23024
22785
  ]
@@ -23031,11 +22792,11 @@ var DouyinRecommendList = (props) => {
23031
22792
  });
23032
22793
  };
23033
22794
  /** 统计项小组件 */
23034
- var StatItem$2 = ({ icon, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
22795
+ var StatItem$2 = ({ icon: IconComponent, value, iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23035
22796
  className: "flex flex-col items-center justify-center gap-2 py-6 rounded-3xl bg-surface",
23036
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23037
- icon,
23038
- className: `w-12 h-12 opacity-90 ${iconClassName || "text-muted"}`
22797
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconComponent, {
22798
+ size: 48,
22799
+ className: `opacity-90 ${iconClassName || "text-muted"}`
23039
22800
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23040
22801
  className: "text-2xl font-bold text-foreground/70 mt-1",
23041
22802
  children: value
@@ -23047,22 +22808,22 @@ var pushTypeConfig = {
23047
22808
  post: {
23048
22809
  label: "作品更新",
23049
22810
  color: "bg-accent/5 text-accent border-accent-soft-hover",
23050
- icon: "ri:video-line"
22811
+ icon: RiVideoLine
23051
22812
  },
23052
22813
  favorite: {
23053
22814
  label: "喜欢列表",
23054
22815
  color: "bg-danger/5 text-danger border-danger-soft-hover",
23055
- icon: "ri:heart-line"
22816
+ icon: RiHeartLine
23056
22817
  },
23057
22818
  recommend: {
23058
22819
  label: "推荐列表",
23059
22820
  color: "bg-warning/5 text-warning border-warning-soft-hover",
23060
- icon: "ri:star-line"
22821
+ icon: RiStarLine
23061
22822
  },
23062
22823
  live: {
23063
22824
  label: "直播状态",
23064
22825
  color: "bg-surface-secondary/40 text-accent border-border/20",
23065
- icon: "ri:live-line"
22826
+ icon: RiLiveLine
23066
22827
  }
23067
22828
  };
23068
22829
  /**
@@ -23150,9 +22911,9 @@ var DouyinUserItem = (props) => {
23150
22911
  children: props.username
23151
22912
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23152
22913
  className: "inline-flex items-center gap-1 px-2 py-1 rounded-md bg-surface/50 border border-border/50 text-xs font-mono font-bold text-muted",
23153
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23154
- icon: "ri:hashtag",
23155
- className: "w-3 h-3 opacity-70"
22914
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiHashtag, {
22915
+ size: 12,
22916
+ className: "opacity-70"
23156
22917
  }), props.short_id]
23157
22918
  })]
23158
22919
  }),
@@ -23172,9 +22933,9 @@ var DouyinUserItem = (props) => {
23172
22933
  const isActive = props.pushTypes?.includes(type);
23173
22934
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23174
22935
  className: `px-2.5 py-3 rounded-xl border flex flex-col items-center gap-2.5 transition-colors duration-200 ${isActive ? config.color : "bg-surface/50 text-muted border-transparent dark:bg-surface/10"}`,
23175
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23176
- icon: config.icon,
23177
- className: `w-5 h-5 ${isActive ? "" : "opacity-50"}`
22936
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(config.icon, {
22937
+ size: 20,
22938
+ className: isActive ? "" : "opacity-50"
23178
22939
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23179
22940
  className: "text-xs font-bold whitespace-nowrap tracking-wide",
23180
22941
  style: { writingMode: "vertical-rl" },
@@ -23186,26 +22947,27 @@ var DouyinUserItem = (props) => {
23186
22947
  className: "flex-1 flex flex-col gap-2",
23187
22948
  children: [
23188
22949
  {
23189
- icon: "ri:group-line",
22950
+ icon: RiGroupLine,
23190
22951
  value: props.fans,
23191
22952
  label: "粉丝"
23192
22953
  },
23193
22954
  {
23194
- icon: "ri:heart-3-line",
22955
+ icon: RiHeart3Line,
23195
22956
  value: props.total_favorited,
23196
22957
  label: "获赞"
23197
22958
  },
23198
22959
  {
23199
- icon: "ri:user-follow-line",
22960
+ icon: RiUserFollowLine,
23200
22961
  value: props.following_count,
23201
22962
  label: "关注"
23202
22963
  }
23203
22964
  ].map((item, index) => {
22965
+ const StatIcon = item.icon;
23204
22966
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23205
22967
  className: "flex items-center gap-3 px-4 py-2 rounded-lg bg-surface-secondary/30 border border-border/30 backdrop-blur-sm",
23206
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23207
- icon: item.icon,
23208
- className: "w-5 h-5 text-muted shrink-0"
22968
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatIcon, {
22969
+ size: 20,
22970
+ className: "text-muted shrink-0"
23209
22971
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23210
22972
  className: "flex items-baseline gap-2 flex-1",
23211
22973
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23423,10 +23185,10 @@ var VideoCard = ({ video }) => {
23423
23185
  className: "absolute top-4 right-4 flex flex-col gap-2",
23424
23186
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23425
23187
  className: "px-6 py-4 rounded-2xl text-4xl bg-white/50 text-black backdrop-blur-xs shadow-lg flex items-center gap-2",
23426
- children: [video.is_video ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "ant-design:video-camera-outlined" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "bootstrap:image" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: video.is_video ? "视频" : "图集" })]
23188
+ children: [video.is_video ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiOutlineVideoCamera, { size: 34 }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BiImage, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: video.is_video ? "视频" : "图集" })]
23427
23189
  }), video.is_top && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23428
23190
  className: "px-6 py-4 rounded-2xl text-4xl bg-warning text-black backdrop-blur-xs shadow-lg flex items-center gap-2",
23429
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "ant-design:pushpin-filled" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "置顶" })]
23191
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillPushpin, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "置顶" })]
23430
23192
  })]
23431
23193
  }),
23432
23194
  video.is_video && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -23435,7 +23197,7 @@ var VideoCard = ({ video }) => {
23435
23197
  }),
23436
23198
  video.music && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23437
23199
  className: "absolute bottom-4 left-4 flex items-center gap-2 px-6 py-3 rounded-2xl text-xl bg-white/50 text-black backdrop-blur-xs shadow-lg",
23438
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "fa6:music" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23200
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaMusic, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
23439
23201
  className: "max-w-80 truncate",
23440
23202
  children: video.music.title
23441
23203
  })]
@@ -23463,31 +23225,19 @@ var VideoCard = ({ video }) => {
23463
23225
  children: [
23464
23226
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23465
23227
  className: "flex items-center gap-2 text-foreground/70",
23466
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23467
- icon: "ant-design:heart-filled",
23468
- width: 34
23469
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.like_count) })]
23228
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillHeart, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.like_count) })]
23470
23229
  }),
23471
23230
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23472
23231
  className: "flex items-center gap-2 text-foreground/70",
23473
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23474
- icon: "fa6:comment-dots",
23475
- width: 34
23476
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.comment_count) })]
23232
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaCommentDots, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.comment_count) })]
23477
23233
  }),
23478
23234
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23479
23235
  className: "flex items-center gap-2 text-foreground/70",
23480
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23481
- icon: "ant-design:star-filled",
23482
- width: 34
23483
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.collect_count) })]
23236
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillStar, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.collect_count) })]
23484
23237
  }),
23485
23238
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23486
23239
  className: "flex items-center gap-2 text-foreground/70",
23487
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23488
- icon: "ri:share-forward-fill",
23489
- width: 34
23490
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.share_count) })]
23240
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiShareForwardFill, { size: 34 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formatCount$2(video.statistics.share_count) })]
23491
23241
  })
23492
23242
  ]
23493
23243
  })
@@ -23530,9 +23280,9 @@ var DouyinUserVideoList = (prpos) => {
23530
23280
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
23531
23281
  className: "text-6xl font-bold text-foreground",
23532
23282
  children: prpos.data.user.nickname
23533
- }), prpos.data.user.verified && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23534
- icon: "ri:verified-badge-fill",
23535
- className: "text-5xl text-accent"
23283
+ }), prpos.data.user.verified && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiVerifiedBadgeFill, {
23284
+ size: 40,
23285
+ className: "text-accent"
23536
23286
  })]
23537
23287
  }),
23538
23288
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -23540,17 +23290,14 @@ var DouyinUserVideoList = (prpos) => {
23540
23290
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23541
23291
  className: "flex items-center gap-2",
23542
23292
  children: [
23543
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "fa6:tiktok" }),
23293
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaTiktok, { size: 24 }),
23544
23294
  " 抖音号:",
23545
23295
  prpos.data.user.short_id
23546
23296
  ]
23547
23297
  }), prpos.data.user.ip_location && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23548
23298
  className: "flex items-center gap-1",
23549
23299
  children: [
23550
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23551
- icon: "material-symbols:location-on",
23552
- className: "text-3xl"
23553
- }),
23300
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MdLocationOn, { size: 28 }),
23554
23301
  " ",
23555
23302
  prpos.data.user.ip_location
23556
23303
  ]
@@ -23562,8 +23309,8 @@ var DouyinUserVideoList = (prpos) => {
23562
23309
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23563
23310
  className: "flex items-center gap-2",
23564
23311
  children: [
23565
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23566
- icon: "ri:user-follow-line",
23312
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiUserFollowLine, {
23313
+ size: 28,
23567
23314
  className: "text-muted"
23568
23315
  }),
23569
23316
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23579,8 +23326,8 @@ var DouyinUserVideoList = (prpos) => {
23579
23326
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23580
23327
  className: "flex items-center gap-2",
23581
23328
  children: [
23582
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23583
- icon: "fa6:user-group",
23329
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaUserGroup, {
23330
+ size: 28,
23584
23331
  className: "text-muted"
23585
23332
  }),
23586
23333
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23596,8 +23343,8 @@ var DouyinUserVideoList = (prpos) => {
23596
23343
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23597
23344
  className: "flex items-center gap-2",
23598
23345
  children: [
23599
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23600
- icon: "ant-design:heart-filled",
23346
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AiFillHeart, {
23347
+ size: 28,
23601
23348
  className: "text-muted"
23602
23349
  }),
23603
23350
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -23623,9 +23370,9 @@ var DouyinUserVideoList = (prpos) => {
23623
23370
  className: "bg-surface/60 backdrop-blur-xl mb-8 rounded-4xl p-6 border border-border/50 shadow-sm flex justify-center items-center",
23624
23371
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", {
23625
23372
  className: "text-3xl text-foreground/80 font-medium flex items-center gap-3",
23626
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23627
- icon: "material-symbols:lightbulb-outline",
23628
- className: "text-4xl text-warning"
23373
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MdLightbulbOutline, {
23374
+ size: 40,
23375
+ className: "text-warning"
23629
23376
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
23630
23377
  "请在 ",
23631
23378
  prpos.data.timeoutSeconds,
@@ -23815,31 +23562,19 @@ var DouyinVideoInfo = import_react.memo((props) => {
23815
23562
  className: "flex items-center gap-14 shrink-0",
23816
23563
  children: [
23817
23564
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23818
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23819
- icon: "lucide:heart",
23820
- width: 48
23821
- }),
23565
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 48 }),
23822
23566
  value: props.data.statistics.digg_count
23823
23567
  }),
23824
23568
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23825
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23826
- icon: "lucide:message-circle",
23827
- width: 48
23828
- }),
23569
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }),
23829
23570
  value: props.data.statistics.comment_count
23830
23571
  }),
23831
23572
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23832
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23833
- icon: "lucide:star",
23834
- width: 48
23835
- }),
23573
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 48 }),
23836
23574
  value: props.data.statistics.collect_count
23837
23575
  }),
23838
23576
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatItem$1, {
23839
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23840
- icon: "lucide:share-2",
23841
- width: 48
23842
- }),
23577
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 48 }),
23843
23578
  value: props.data.statistics.share_count
23844
23579
  })
23845
23580
  ]
@@ -23963,50 +23698,32 @@ var InfoSection = (props) => {
23963
23698
  children: [
23964
23699
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23965
23700
  className: "flex gap-2 items-center",
23966
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23967
- icon: "lucide:heart",
23968
- className: "w-11 h-11 text-like"
23969
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
23701
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { className: "w-11 h-11 text-like" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.dianzan, "点赞"] })]
23970
23702
  }),
23971
23703
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
23972
23704
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23973
23705
  className: "flex gap-2 items-center",
23974
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23975
- icon: "lucide:message-circle",
23976
- className: "w-11 h-11 text-comment"
23977
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
23706
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { className: "w-11 h-11 text-comment" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.pinglun, "评论"] })]
23978
23707
  }),
23979
23708
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
23980
23709
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23981
23710
  className: "flex gap-2 items-center",
23982
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23983
- icon: "lucide:bookmark",
23984
- className: "w-11 h-11"
23985
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
23711
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Bookmark, { className: "w-11 h-11" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.shouchang, "收藏"] })]
23986
23712
  }),
23987
23713
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "·" }),
23988
23714
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23989
23715
  className: "flex gap-2 items-center",
23990
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
23991
- icon: "lucide:share-2",
23992
- className: "w-11 h-11 text-success"
23993
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
23716
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { className: "w-11 h-11 text-success" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [props.data.share, "分享"] })]
23994
23717
  })
23995
23718
  ]
23996
23719
  }),
23997
23720
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
23998
23721
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
23999
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24000
- icon: "lucide:clock",
24001
- className: "w-11 h-11 text-time"
24002
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
23722
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, { className: "w-11 h-11 text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["发布于: ", props.data.create_time] })]
24003
23723
  }),
24004
23724
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24005
23725
  className: "flex items-center gap-2 text-[45px] text-muted font-light select-text",
24006
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24007
- icon: "lucide:maximize",
24008
- className: "w-11 h-11 text-time text-time"
24009
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
23726
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Maximize, { className: "w-11 h-11 text-time text-time" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["图片生成于: ", format(/* @__PURE__ */ new Date(), "yyyy-MM-dd HH:mm:ss")] })]
24010
23727
  })
24011
23728
  ]
24012
23729
  });
@@ -24037,10 +23754,7 @@ var UserInfoSection = (props) => {
24037
23754
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24038
23755
  className: "flex gap-2 items-center text-4xl text-muted",
24039
23756
  children: [
24040
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24041
- icon: "lucide:hash",
24042
- width: 32
24043
- }),
23757
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Hash, { size: 32 }),
24044
23758
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
24045
23759
  className: "select-text",
24046
23760
  children: ["抖音号: ", props.data.抖音号]
@@ -24060,9 +23774,8 @@ var UserInfoSection = (props) => {
24060
23774
  children: [
24061
23775
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24062
23776
  className: "flex gap-1 items-center",
24063
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24064
- icon: "lucide:heart",
24065
- width: 28,
23777
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
23778
+ size: 28,
24066
23779
  className: "text-like"
24067
23780
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24068
23781
  className: "text-muted",
@@ -24081,9 +23794,8 @@ var UserInfoSection = (props) => {
24081
23794
  children: [
24082
23795
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24083
23796
  className: "flex gap-1 items-center",
24084
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24085
- icon: "lucide:eye",
24086
- width: 28,
23797
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Eye, {
23798
+ size: 28,
24087
23799
  className: "text-view"
24088
23800
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24089
23801
  className: "text-muted",
@@ -24102,9 +23814,8 @@ var UserInfoSection = (props) => {
24102
23814
  children: [
24103
23815
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24104
23816
  className: "flex gap-1 items-center",
24105
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24106
- icon: "lucide:users",
24107
- width: 28,
23817
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, {
23818
+ size: 28,
24108
23819
  className: "text-accent"
24109
23820
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24110
23821
  className: "text-muted",
@@ -24222,10 +23933,7 @@ var DouyinVideoWork = (props) => {
24222
23933
  className: "px-16 pb-8",
24223
23934
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24224
23935
  className: "gap-2 inline-flex items-center rounded-2xl bg-surface text-foreground/80 px-6 py-3",
24225
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24226
- icon: "lucide:users",
24227
- className: "w-7 h-7"
24228
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
23936
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Users, { className: "w-7 h-7" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
24229
23937
  className: "text-3xl font-medium leading-none select-text text-foreground/80",
24230
23938
  children: [coCreatorCount, "人共创"]
24231
23939
  })]
@@ -24292,8 +24000,7 @@ var KuaishouQRCodeSection = ({ qrCodeDataUrl, type, imageLength }) => {
24292
24000
  className: "object-contain w-full h-full"
24293
24001
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24294
24002
  className: "flex flex-col justify-center items-center text-muted",
24295
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24296
- icon: "lucide:qr-code",
24003
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
24297
24004
  width: 80,
24298
24005
  className: "mb-4"
24299
24006
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -24439,9 +24146,8 @@ var KuaishouCommentItemComponent = ({ comment, isLast = false }) => {
24439
24146
  className: "flex items-center space-x-6",
24440
24147
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24441
24148
  className: "flex items-center space-x-2 transition-colors cursor-pointer hover:text-danger",
24442
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24443
- icon: "lucide:heart",
24444
- width: 60,
24149
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
24150
+ size: 60,
24445
24151
  className: "stroke-current"
24446
24152
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
24447
24153
  className: "text-[50px] select-text",
@@ -24449,9 +24155,8 @@ var KuaishouCommentItemComponent = ({ comment, isLast = false }) => {
24449
24155
  })]
24450
24156
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
24451
24157
  className: "flex items-center transition-colors cursor-pointer hover:text-accent",
24452
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24453
- icon: "lucide:message-circle",
24454
- width: 60,
24158
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, {
24159
+ size: 60,
24455
24160
  className: "stroke-current"
24456
24161
  })
24457
24162
  })]
@@ -24497,9 +24202,8 @@ var KuaishouComment = import_react.memo((props) => {
24497
24202
  className: "flex justify-center items-center py-20 text-muted",
24498
24203
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
24499
24204
  className: "text-center",
24500
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24501
- icon: "lucide:message-circle",
24502
- width: 64,
24205
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, {
24206
+ size: 64,
24503
24207
  className: "mx-auto mb-4 text-muted/70"
24504
24208
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
24505
24209
  className: "text-xl",
@@ -24753,10 +24457,7 @@ var Changelog = import_react.memo((props) => {
24753
24457
  h3: ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h3", {
24754
24458
  className: "flex items-baseline gap-3 text-[3.2em] font-light mb-2 text-foreground",
24755
24459
  ...props,
24756
- children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
24757
- icon: "lucide:corner-down-left",
24758
- className: "w-[1em] h-[1em] text-foreground/10"
24759
- })]
24460
+ children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CornerDownLeft, { className: "w-[1em] h-[1em] text-foreground/10" })]
24760
24461
  }),
24761
24462
  h4: ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", {
24762
24463
  className: "text-[2.64em] font-semibold mb-5 text-foreground",
@@ -25453,17 +25154,17 @@ var GlobalStatistics = (props) => {
25453
25154
  className: "text-4xl font-black text-foreground/90",
25454
25155
  children: group.groupName || `群组 ${group.groupId}`
25455
25156
  }),
25456
- index === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25457
- icon: "ri:trophy-fill",
25458
- className: "w-12 h-12 text-yellow-400 shrink-0"
25157
+ index === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTrophyFill, {
25158
+ size: 48,
25159
+ className: "text-yellow-400 shrink-0"
25459
25160
  }),
25460
- index === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25461
- icon: "ri:trophy-fill",
25462
- className: "w-12 h-12 text-gray-400 shrink-0"
25161
+ index === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTrophyFill, {
25162
+ size: 48,
25163
+ className: "text-gray-400 shrink-0"
25463
25164
  }),
25464
- index === 2 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25465
- icon: "ri:trophy-fill",
25466
- className: "w-12 h-12 text-orange-400 shrink-0"
25165
+ index === 2 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiTrophyFill, {
25166
+ size: 48,
25167
+ className: "text-orange-400 shrink-0"
25467
25168
  })
25468
25169
  ]
25469
25170
  }),
@@ -25797,9 +25498,9 @@ var GroupStatistics = (props) => {
25797
25498
  })
25798
25499
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
25799
25500
  className: "absolute inset-0 flex items-center justify-center pointer-events-none",
25800
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
25801
- icon: "ri:pie-chart-2-fill",
25802
- className: "w-80 h-auto opacity-10"
25501
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RiPieChart2Fill, {
25502
+ size: 320,
25503
+ className: "opacity-10"
25803
25504
  })
25804
25505
  })]
25805
25506
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
@@ -26328,9 +26029,9 @@ var getAdapterLogo = (adapterName) => {
26328
26029
  className: "h-20 w-auto",
26329
26030
  alt: adapterName
26330
26031
  });
26331
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26332
- icon: "lucide:puzzle",
26333
- className: "w-16 h-auto text-danger/80"
26032
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Puzzle, {
26033
+ size: 64,
26034
+ className: "text-danger/80"
26334
26035
  });
26335
26036
  };
26336
26037
  var SectionTitle = ({ icon, en, zh, color }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -26632,9 +26333,9 @@ var handlerError = (props) => {
26632
26333
  style: { backgroundColor: isDark ? "rgba(0,0,0,0.25)" : "rgba(255,255,255,0.6)" },
26633
26334
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26634
26335
  className: "flex items-center gap-6 mb-10",
26635
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26636
- icon: "lucide:qr-code",
26637
- className: "w-10 h-10 text-warning"
26336
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
26337
+ size: 40,
26338
+ className: "text-warning"
26638
26339
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
26639
26340
  className: "text-3xl font-semibold",
26640
26341
  style: { color: accentColor },
@@ -26675,9 +26376,8 @@ var handlerError = (props) => {
26675
26376
  data.triggerCommand && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26676
26377
  className: "mb-14",
26677
26378
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SectionTitle, {
26678
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26679
- icon: "lucide:terminal",
26680
- className: "w-9 h-9",
26379
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Terminal, {
26380
+ size: 36,
26681
26381
  style: { color: mutedColor }
26682
26382
  }),
26683
26383
  en: "Trigger Command",
@@ -26696,9 +26396,8 @@ var handlerError = (props) => {
26696
26396
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26697
26397
  className: "mb-14",
26698
26398
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SectionTitle, {
26699
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26700
- icon: "lucide:alert-circle",
26701
- className: "w-9 h-9",
26399
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleAlert, {
26400
+ size: 36,
26702
26401
  style: { color: primaryColor }
26703
26402
  }),
26704
26403
  en: "Stack Trace",
@@ -26720,9 +26419,8 @@ var handlerError = (props) => {
26720
26419
  data.logs && data.logs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26721
26420
  className: "mb-14",
26722
26421
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SectionTitle, {
26723
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26724
- icon: "lucide:file-text",
26725
- className: "w-9 h-9",
26422
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FileText, {
26423
+ size: 36,
26726
26424
  style: { color: mutedColor }
26727
26425
  }),
26728
26426
  en: "Execution Logs",
@@ -26741,9 +26439,8 @@ var handlerError = (props) => {
26741
26439
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `w-3 h-3 rounded-full -mr-1.5 ${theme.dotClass}` }),
26742
26440
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
26743
26441
  className: "flex items-center gap-2 px-3",
26744
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26745
- icon: "lucide:clock",
26746
- width: 18,
26442
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Clock, {
26443
+ size: 18,
26747
26444
  className: theme.iconClass
26748
26445
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
26749
26446
  className: `text-xl font-mono font-medium ${theme.textClass}`,
@@ -26960,10 +26657,7 @@ var handlerError = (props) => {
26960
26657
  style: { color: mutedColor },
26961
26658
  children: [data.buildTime && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26962
26659
  className: "flex items-center gap-3",
26963
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26964
- icon: "material-symbols:schedule-outline",
26965
- className: "w-6 h-6"
26966
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
26660
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MdSchedule, { size: 24 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
26967
26661
  "Built Time: ",
26968
26662
  data.buildTime,
26969
26663
  " 距离 ",
@@ -26971,10 +26665,7 @@ var handlerError = (props) => {
26971
26665
  ] })]
26972
26666
  }), data.commitHash && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
26973
26667
  className: "flex items-center gap-3",
26974
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
26975
- icon: "lucide:git-branch",
26976
- className: "w-6 h-6"
26977
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["Commit Hash: ", data.commitHash] })]
26668
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(GitBranch, { size: 24 }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["Commit Hash: ", data.commitHash] })]
26978
26669
  })]
26979
26670
  }),
26980
26671
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -27064,15 +26755,158 @@ var handlerError = (props) => {
27064
26755
  };
27065
26756
  handlerError.displayName = "handlerError";
27066
26757
  //#endregion
26758
+ //#region ../template/src/components/common/iconRegistry.ts
26759
+ /**
26760
+ * Maps old iconify icon name strings to their replacement React components.
26761
+ * Used by Help.tsx for dynamic icon resolution from plugin config data.
26762
+ */
26763
+ var iconRegistry = {
26764
+ "lucide:alert-circle": CircleAlert,
26765
+ "lucide:alert-triangle": TriangleAlert,
26766
+ "lucide:bookmark": Bookmark,
26767
+ "lucide:bot": Bot,
26768
+ "lucide:box": Box,
26769
+ "lucide:calendar": Calendar,
26770
+ "lucide:camera": Camera,
26771
+ "lucide:check": Check,
26772
+ "lucide:check-circle": CircleCheckBig,
26773
+ "lucide:check-circle-2": CircleCheck,
26774
+ "lucide:circle-ellipsis": CircleEllipsis,
26775
+ "lucide:circle-fading-arrow-up": CircleFadingArrowUp,
26776
+ "lucide:clock": Clock,
26777
+ "lucide:code": Code,
26778
+ "lucide:copy": Copy,
26779
+ "lucide:corner-down-left": CornerDownLeft,
26780
+ "lucide:cpu": Cpu,
26781
+ "lucide:crown": Crown,
26782
+ "lucide:download": Download,
26783
+ "lucide:edit": SquarePen,
26784
+ "lucide:external-link": ExternalLink,
26785
+ "lucide:eye": Eye,
26786
+ "lucide:eye-off": EyeOff,
26787
+ "lucide:file-text": FileText,
26788
+ "lucide:file-video": FilePlay,
26789
+ "lucide:git-branch": GitBranch,
26790
+ "lucide:hash": Hash,
26791
+ "lucide:heart": Heart,
26792
+ "lucide:info": Info,
26793
+ "lucide:layout-template": LayoutTemplate,
26794
+ "lucide:loader-2": LoaderCircle,
26795
+ "lucide:map-pin": MapPin,
26796
+ "lucide:maximize": Maximize,
26797
+ "lucide:message-circle": MessageCircle,
26798
+ "lucide:monitor": Monitor,
26799
+ "lucide:moon": Moon,
26800
+ "lucide:music": Music,
26801
+ "lucide:palette": Palette,
26802
+ "lucide:pencil": Pencil,
26803
+ "lucide:play": Play,
26804
+ "lucide:plus": Plus,
26805
+ "lucide:puzzle": Puzzle,
26806
+ "lucide:qr-code": QrCode,
26807
+ "lucide:quote": Quote,
26808
+ "lucide:refresh-cw": RefreshCw,
26809
+ "lucide:rotate-ccw": RotateCcw,
26810
+ "lucide:save": Save,
26811
+ "lucide:scan-line": ScanLine,
26812
+ "lucide:search": Search,
26813
+ "lucide:settings-2": Settings2,
26814
+ "lucide:share-2": Share2,
26815
+ "lucide:shield": Shield,
26816
+ "lucide:shield-check": ShieldCheck,
26817
+ "lucide:shopping-bag": ShoppingBag,
26818
+ "lucide:smartphone": Smartphone,
26819
+ "lucide:sparkles": Sparkles,
26820
+ "lucide:square": Square,
26821
+ "lucide:star": Star,
26822
+ "lucide:sun": Sun,
26823
+ "lucide:terminal": Terminal,
26824
+ "lucide:trash-2": Trash2,
26825
+ "lucide:upload": Upload,
26826
+ "lucide:user": User,
26827
+ "lucide:user-plus": UserPlus,
26828
+ "lucide:users": Users,
26829
+ "lucide:wand-2": WandSparkles,
26830
+ "lucide:x": X,
26831
+ "lucide:zap": Zap,
26832
+ "mingcute:article-line": FileText,
26833
+ "mingcute:bell-ringing-fill": BellRing,
26834
+ "mingcute:bookmark-fill": Bookmark,
26835
+ "mingcute:chart-bar-fill": ChartColumn,
26836
+ "mingcute:comment-2-fill": MessageCircle,
26837
+ "mingcute:eye-fill": Eye,
26838
+ "mingcute:file-text-line": FileText,
26839
+ "mingcute:game-1-fill": Gamepad2,
26840
+ "mingcute:gift-fill": Gift,
26841
+ "mingcute:group-fill": UsersRound,
26842
+ "mingcute:group-line": UsersRound,
26843
+ "mingcute:hashtag-fill": Hash,
26844
+ "mingcute:hashtag-line": Hash,
26845
+ "mingcute:heart-line": Heart,
26846
+ "mingcute:live-line": Radio,
26847
+ "mingcute:pic-line": Image$1,
26848
+ "mingcute:radio-fill": Radio,
26849
+ "mingcute:share-forward-line": Share2,
26850
+ "mingcute:time-fill": Clock,
26851
+ "mingcute:user-add-line": UserPlus,
26852
+ "mingcute:video-line": Video,
26853
+ "ri:arrow-right-fill": RiArrowRightFill,
26854
+ "ri:group-line": RiGroupLine,
26855
+ "ri:hashtag": RiHashtag,
26856
+ "ri:heart-3-fill": RiHeart3Fill,
26857
+ "ri:heart-3-line": RiHeart3Line,
26858
+ "ri:heart-line": RiHeartLine,
26859
+ "ri:live-line": RiLiveLine,
26860
+ "ri:message-3-fill": RiMessage3Fill,
26861
+ "ri:pie-chart-2-fill": RiPieChart2Fill,
26862
+ "ri:share-forward-fill": RiShareForwardFill,
26863
+ "ri:star-fill": RiStarFill,
26864
+ "ri:star-line": RiStarLine,
26865
+ "ri:thumb-up-fill": RiThumbUpFill,
26866
+ "ri:tiktok-fill": RiTiktokFill,
26867
+ "ri:trophy-fill": RiTrophyFill,
26868
+ "ri:user-follow-line": RiUserFollowLine,
26869
+ "ri:verified-badge-fill": RiVerifiedBadgeFill,
26870
+ "ri:video-line": RiVideoLine,
26871
+ "material-symbols:fit-screen": MdFitScreen,
26872
+ "material-symbols:info-outline": MdInfoOutline,
26873
+ "material-symbols:lightbulb-outline": MdLightbulbOutline,
26874
+ "material-symbols:location-on": MdLocationOn,
26875
+ "material-symbols:schedule-outline": MdSchedule,
26876
+ "ant-design:heart-filled": AiFillHeart,
26877
+ "ant-design:pushpin-filled": AiFillPushpin,
26878
+ "ant-design:star-filled": AiFillStar,
26879
+ "ant-design:video-camera-outlined": AiOutlineVideoCamera,
26880
+ "fa6-solid:music": FaMusic,
26881
+ "fa6-solid:comment-dots": FaCommentDots,
26882
+ "fa6-solid:user-group": FaUserGroup,
26883
+ "fa6-brands:tiktok": FaTiktok,
26884
+ "simple-icons:github": SiGithub,
26885
+ "simple-icons:bilibili": SiBilibili,
26886
+ "simple-icons:openai": Sparkles,
26887
+ "simple-icons:anthropic": SiAnthropic,
26888
+ "tabler:message-circle": MessageCircle,
26889
+ "tabler:scan": ScanLine,
26890
+ "ph:play-fill": n,
26891
+ "ph:question-fill": m,
26892
+ "solar:calendar-linear": Calendar,
26893
+ "heroicons-outline:menu-alt-2": Menu,
26894
+ "bi:image": BiImage
26895
+ };
26896
+ var DEFAULT_FALLBACK_ICON = CircleQuestionMark;
26897
+ function resolveIcon(iconName) {
26898
+ return iconRegistry[iconName] ?? DEFAULT_FALLBACK_ICON;
26899
+ }
26900
+ //#endregion
27067
26901
  //#region ../template/src/components/platforms/other/Help.tsx
27068
26902
  /**
27069
- * 获取图标名称,兜底为默认图标
26903
+ * 获取图标组件,兜底为默认图标
27070
26904
  * @param icon - 图标:可以是字符串或带颜色的对象
27071
- * @returns 对应的 iconify 图标名称
26905
+ * @returns React 图标组件类型
27072
26906
  */
27073
26907
  var getIconForItem = (icon) => {
27074
- if (!icon) return "ph:question-fill";
27075
- return typeof icon === "string" ? icon : icon.name;
26908
+ if (!icon) return resolveIcon("ph:question-fill");
26909
+ return resolveIcon(typeof icon === "string" ? icon : icon.name);
27076
26910
  };
27077
26911
  /**
27078
26912
  * 菜单项组件
@@ -27083,8 +26917,7 @@ var MenuItemComponent = ({ item, themeColor }) => {
27083
26917
  className: "flex flex-row gap-8 py-2 relative",
27084
26918
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
27085
26919
  className: "pt-2 shrink-0 relative",
27086
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27087
- icon: getIconForItem(item.icon),
26920
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(getIconForItem(item.icon), {
27088
26921
  className: "w-16 h-16 relative z-10 text-foreground",
27089
26922
  style: { color: typeof item.icon === "object" && item.icon?.color ? item.icon.color : themeColor }
27090
26923
  })
@@ -27426,8 +27259,7 @@ var QrLogin = import_react.memo((props) => {
27426
27259
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlowImage, {
27427
27260
  glowStrength: .8,
27428
27261
  blurRadius: 25,
27429
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27430
- icon: "lucide:smartphone",
27262
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Smartphone, {
27431
27263
  className: "w-20 h-20",
27432
27264
  style: { color: accentColor }
27433
27265
  })
@@ -27462,8 +27294,7 @@ var QrLogin = import_react.memo((props) => {
27462
27294
  background: isDark ? "linear-gradient(135deg, #f87171 0%, #dc2626 100%)" : "linear-gradient(135deg, #ef4444 0%, #dc2626 100%)",
27463
27295
  boxShadow: isDark ? "0 0 40px rgba(248,113,113,0.6)" : "0 0 40px rgba(239,68,68,0.5)"
27464
27296
  },
27465
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27466
- icon: "lucide:alert-triangle",
27297
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, {
27467
27298
  className: "w-16 h-16 text-white",
27468
27299
  strokeWidth: 3
27469
27300
  })
@@ -27559,8 +27390,7 @@ var QrLogin = import_react.memo((props) => {
27559
27390
  })
27560
27391
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
27561
27392
  className: "flex flex-col gap-8 justify-center items-center w-200 h-200",
27562
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27563
- icon: "lucide:qr-code",
27393
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
27564
27394
  className: "w-40 h-40",
27565
27395
  style: { color: mutedColor }
27566
27396
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -27577,8 +27407,7 @@ var QrLogin = import_react.memo((props) => {
27577
27407
  }),
27578
27408
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
27579
27409
  className: "flex items-center gap-4",
27580
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
27581
- icon: "lucide:smartphone",
27410
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Smartphone, {
27582
27411
  className: "w-12 h-12",
27583
27412
  style: { color: mutedColor }
27584
27413
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
@@ -27943,7 +27772,7 @@ var VersionWarning = (props) => {
27943
27772
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
27944
27773
  className: "flex-1 flex flex-col justify-center",
27945
27774
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
27946
- className: "rounded-3xl p-12",
27775
+ className: "rounded-7xl p-12",
27947
27776
  style: { backgroundColor: isDark ? "rgba(0,0,0,0.2)" : "rgba(255,255,255,0.5)" },
27948
27777
  children: [
27949
27778
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
@@ -27992,7 +27821,7 @@ var VersionWarning = (props) => {
27992
27821
  children: "需要/建议的版本"
27993
27822
  }),
27994
27823
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
27995
- className: "text-lg font-bold",
27824
+ className: "text-xl font-bold rounded-full px-4 py-2",
27996
27825
  style: {
27997
27826
  backgroundColor: accentColor,
27998
27827
  color: bgColor
@@ -28020,7 +27849,7 @@ var VersionWarning = (props) => {
28020
27849
  className: "flex items-center space-x-4 mb-6",
28021
27850
  children: [
28022
27851
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28023
- className: "flex items-center justify-center w-10 h-10 rounded-lg",
27852
+ className: "flex items-center justify-center w-10 h-10 rounded-xl",
28024
27853
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
28025
27854
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28026
27855
  className: "text-[28px] font-black",
@@ -28054,7 +27883,7 @@ var VersionWarning = (props) => {
28054
27883
  children: "Web 控制台更新"
28055
27884
  }),
28056
27885
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
28057
- className: "text-[20px] font-semibold px-4",
27886
+ className: "text-2xl font-semibold px-5 py-3 rounded-full",
28058
27887
  style: {
28059
27888
  backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(194,65,12,0.15)",
28060
27889
  color: accentColor
@@ -28112,7 +27941,7 @@ var VersionWarning = (props) => {
28112
27941
  className: "flex items-center space-x-4 mb-6",
28113
27942
  children: [
28114
27943
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28115
- className: "flex items-center justify-center w-10 h-10 rounded-lg",
27944
+ className: "flex items-center justify-center w-10 h-10 rounded-xl",
28116
27945
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
28117
27946
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28118
27947
  className: "text-[28px] font-black",
@@ -28120,8 +27949,7 @@ var VersionWarning = (props) => {
28120
27949
  children: "2"
28121
27950
  })
28122
27951
  }),
28123
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28124
- icon: "lucide:puzzle",
27952
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Puzzle, {
28125
27953
  className: clsx("w-10 h-auto"),
28126
27954
  style: { color: mutedColor }
28127
27955
  }),
@@ -28131,7 +27959,7 @@ var VersionWarning = (props) => {
28131
27959
  children: "使用 basic 插件命令更新"
28132
27960
  }),
28133
27961
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Chip, {
28134
- className: "text-[20px] font-semibold px-4",
27962
+ className: "text-2xl font-semibold px-5 py-3 rounded-full",
28135
27963
  style: {
28136
27964
  backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(194,65,12,0.15)",
28137
27965
  color: accentColor
@@ -28192,7 +28020,7 @@ var VersionWarning = (props) => {
28192
28020
  className: "flex items-center space-x-4 mb-6",
28193
28021
  children: [
28194
28022
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28195
- className: "flex items-center justify-center w-10 h-10 rounded-lg",
28023
+ className: "flex items-center justify-center w-10 h-10 rounded-xl",
28196
28024
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.15)" : "rgba(194,65,12,0.1)" },
28197
28025
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28198
28026
  className: "text-[28px] font-black",
@@ -28253,7 +28081,7 @@ var VersionWarning = (props) => {
28253
28081
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.2)" : "rgba(180,83,9,0.15)" }
28254
28082
  }),
28255
28083
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28256
- className: "rounded-2xl p-6 flex items-start space-x-5",
28084
+ className: "rounded-4xl p-6 flex items-start space-x-5",
28257
28085
  style: { backgroundColor: isDark ? "rgba(251,146,60,0.08)" : "rgba(194,65,12,0.08)" },
28258
28086
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
28259
28087
  className: "w-10 h-10 mt-1 shrink-0",
@@ -28405,8 +28233,7 @@ var QRCodeSection = ({ qrCodeDataUrl }) => {
28405
28233
  src: qrCodeDataUrl,
28406
28234
  alt: "二维码",
28407
28235
  className: "object-contain"
28408
- }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28409
- icon: "lucide:qr-code",
28236
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QrCode, {
28410
28237
  width: 200,
28411
28238
  className: "text-muted"
28412
28239
  })
@@ -28544,9 +28371,8 @@ var CommentItemComponent = ({ comment, isLast = false }) => {
28544
28371
  className: "flex items-center space-x-6",
28545
28372
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28546
28373
  className: "flex items-center space-x-2 transition-colors cursor-pointer",
28547
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28548
- icon: "lucide:heart",
28549
- width: 60,
28374
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
28375
+ size: 60,
28550
28376
  className: comment.liked ? "text-red-500 fill-current" : "text-muted"
28551
28377
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28552
28378
  className: "text-[50px] select-text",
@@ -28554,9 +28380,8 @@ var CommentItemComponent = ({ comment, isLast = false }) => {
28554
28380
  })]
28555
28381
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28556
28382
  className: "flex items-center transition-colors cursor-pointer",
28557
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28558
- icon: "lucide:message-circle",
28559
- width: 60,
28383
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, {
28384
+ size: 60,
28560
28385
  className: "stroke-current text-muted"
28561
28386
  })
28562
28387
  })]
@@ -28606,9 +28431,8 @@ var CommentItemComponent = ({ comment, isLast = false }) => {
28606
28431
  })]
28607
28432
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28608
28433
  className: "flex items-center space-x-2",
28609
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28610
- icon: "lucide:heart",
28611
- width: 40,
28434
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, {
28435
+ size: 40,
28612
28436
  className: subComment.liked ? "text-red-500 fill-current" : "text-muted"
28613
28437
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
28614
28438
  className: "text-[35px]",
@@ -28719,37 +28543,25 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
28719
28543
  /** 统计数据配置 - 小红书特色配色 */
28720
28544
  const statsData = (0, import_react.useMemo)(() => [
28721
28545
  {
28722
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28723
- icon: "lucide:heart",
28724
- width: 48
28725
- }),
28546
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heart, { size: 48 }),
28726
28547
  value: props.data.statistics.liked_count,
28727
28548
  label: "点赞",
28728
28549
  iconColor: "text-red-500"
28729
28550
  },
28730
28551
  {
28731
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28732
- icon: "lucide:message-circle",
28733
- width: 48
28734
- }),
28552
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MessageCircle, { size: 48 }),
28735
28553
  value: props.data.statistics.comment_count,
28736
28554
  label: "评论",
28737
28555
  iconColor: "text-blue-500"
28738
28556
  },
28739
28557
  {
28740
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28741
- icon: "lucide:star",
28742
- width: 48
28743
- }),
28558
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Star, { size: 48 }),
28744
28559
  value: props.data.statistics.collected_count,
28745
28560
  label: "收藏",
28746
28561
  iconColor: "text-yellow-500"
28747
28562
  },
28748
28563
  {
28749
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28750
- icon: "lucide:share-2",
28751
- width: 48
28752
- }),
28564
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Share2, { size: 48 }),
28753
28565
  value: props.data.statistics.share_count,
28754
28566
  label: "分享",
28755
28567
  iconColor: "text-green-500"
@@ -28783,16 +28595,10 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
28783
28595
  className: "flex gap-8 items-center text-5xl text-muted",
28784
28596
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28785
28597
  className: "flex gap-2 items-center",
28786
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28787
- icon: "lucide:calendar",
28788
- width: 32
28789
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formattedDate })]
28598
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Calendar, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: formattedDate })]
28790
28599
  }), props.data.ip_location && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28791
28600
  className: "flex gap-2 items-center",
28792
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28793
- icon: "lucide:map-pin",
28794
- width: 32
28795
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: props.data.ip_location })]
28601
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(MapPin, { size: 32 }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: props.data.ip_location })]
28796
28602
  })]
28797
28603
  })
28798
28604
  ]
@@ -28855,10 +28661,7 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
28855
28661
  className: "text-white bg-[#FF2442]",
28856
28662
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
28857
28663
  className: "flex items-center",
28858
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
28859
- icon: "lucide:external-link",
28860
- className: "mr-1 w-4 h-4"
28861
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "查看原文" })]
28664
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ExternalLink, { className: "mr-1 w-4 h-4" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "查看原文" })]
28862
28665
  })
28863
28666
  })
28864
28667
  })]
@@ -29733,14 +29536,6 @@ var DevDataManager = class {
29733
29536
  };
29734
29537
  //#endregion
29735
29538
  //#region ../template/src/main.ts
29736
- addCollection(lucide_default);
29737
- addCollection(ri_default);
29738
- addCollection(ant_design_default);
29739
- addCollection(tabler_default);
29740
- addCollection(simple_icons_default);
29741
- addCollection(material_symbols_default);
29742
- addCollection(mingcute_default);
29743
- addCollection(solar_default);
29744
29539
  var isPlainObject = (value) => {
29745
29540
  return typeof value === "object" && value !== null && !Array.isArray(value);
29746
29541
  };
@@ -36710,11 +36505,6 @@ var Bilibili = class extends Base {
36710
36505
  dynamic_id: iddata.dynamic_id,
36711
36506
  typeMode: "strict"
36712
36507
  });
36713
- const dynamicInfoCard = await this.amagi.bilibili.fetcher.fetchDynamicCard({
36714
- dynamic_id: dynamicInfo.data.data.item.id_str,
36715
- typeMode: "strict"
36716
- });
36717
- const dynamicCARD = JSON.parse(dynamicInfoCard.data.data.card.card);
36718
36508
  const userProfileData = await this.amagi.bilibili.fetcher.fetchUserCard({
36719
36509
  host_mid: dynamicInfo.data.data.item.modules.module_author.mid,
36720
36510
  typeMode: "strict"
@@ -36822,7 +36612,6 @@ var Bilibili = class extends Base {
36822
36612
  for (const item of temp) await Common.removeFile(item.filepath, true);
36823
36613
  }
36824
36614
  }
36825
- const dynamicCARD = JSON.parse(dynamicInfoCard.data.data.card.card);
36826
36615
  if ("topic" in dynamicInfo.data.data.item.modules.module_dynamic && dynamicInfo.data.data.item.modules.module_dynamic.topic !== null) {
36827
36616
  const name = dynamicInfo.data.data.item.modules.module_dynamic.topic.name;
36828
36617
  dynamicInfo.data.data.item.modules.module_dynamic.major.opus.summary.rich_text_nodes.unshift({
@@ -36834,7 +36623,7 @@ var Bilibili = class extends Base {
36834
36623
  dynamicInfo.data.data.item.modules.module_dynamic.major.opus.summary.text = `${name}\n` + dynamicInfo.data.data.item.modules.module_dynamic.major.opus.summary.text;
36835
36624
  }
36836
36625
  this.e.reply(await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_DRAW", {
36837
- image_url: dynamicCARD.item.pictures && cover(dynamicCARD.item.pictures),
36626
+ image_url: Object.values(dynamicInfo.data.data.item.modules.module_dynamic.major.opus.pics).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
36838
36627
  title: dynamicInfo.data.data.item.modules.module_dynamic.major.opus.title ?? void 0,
36839
36628
  text: dynamicInfo.data.data.item.modules.module_dynamic.major ? buildBilibiliDynamicRichText(dynamicInfo.data.data.item.modules.module_dynamic.major.opus?.summary?.text ?? "", dynamicInfo.data.data.item.modules.module_dynamic.major.opus?.summary?.rich_text_nodes ?? []) : null,
36840
36629
  dianzan: Count(dynamicInfo.data.data.item.modules.module_stat.like.count),
@@ -36924,12 +36713,7 @@ var Bilibili = class extends Base {
36924
36713
  frame: dynamicInfo.data.data.item.orig.modules.module_author.pendant.image
36925
36714
  };
36926
36715
  break;
36927
- case DynamicType.DRAW: {
36928
- const dynamicCARD2 = await this.amagi.bilibili.fetcher.fetchDynamicCard({
36929
- dynamic_id: dynamicInfo.data.data.item.orig.id_str,
36930
- typeMode: "strict"
36931
- });
36932
- const cardData = JSON.parse(dynamicCARD2.data.data.card.card);
36716
+ case DynamicType.DRAW:
36933
36717
  if ("topic" in dynamicInfo.data.data.item.orig.modules.module_dynamic && dynamicInfo.data.data.item.orig.modules.module_dynamic.topic !== null) {
36934
36718
  const name = dynamicInfo.data.data.item.orig.modules.module_dynamic.topic.name;
36935
36719
  const origSummary = dynamicInfo.data.data.item.orig.modules.module_dynamic.major?.opus?.summary;
@@ -36939,7 +36723,9 @@ var Bilibili = class extends Base {
36939
36723
  orig_text: name,
36940
36724
  jump_url: "",
36941
36725
  text: name,
36942
- type: "topic"
36726
+ type: "topic",
36727
+ rid: "",
36728
+ style: { "1114514": "1919810" }
36943
36729
  });
36944
36730
  origSummary.text = `${name}\n` + (origSummary.text || "");
36945
36731
  }
@@ -36950,12 +36736,11 @@ var Bilibili = class extends Base {
36950
36736
  create_time: TimeFormatter.toDateTime(dynamicInfo.data.data.item.orig.modules.module_author.pub_ts),
36951
36737
  avatar_url: dynamicInfo.data.data.item.orig.modules.module_author.face,
36952
36738
  text: buildBilibiliDynamicRichText(dynamicInfo.data.data.item.orig.modules.module_dynamic.major.opus.summary.text, dynamicInfo.data.data.item.orig.modules.module_dynamic.major.opus.summary.rich_text_nodes),
36953
- image_url: cardData.item.pictures && cover(cardData.item.pictures),
36739
+ image_url: Object.values(dynamicInfo.data.data.item.orig.modules.module_dynamic.major.opus.pics).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
36954
36740
  decoration_card: generateDecorationCard(dynamicInfo.data.data.item.orig.modules.module_author.decoration_card),
36955
36741
  frame: dynamicInfo.data.data.item.orig.modules.module_author.pendant.image
36956
36742
  };
36957
36743
  break;
36958
- }
36959
36744
  case DynamicType.WORD:
36960
36745
  if ("topic" in dynamicInfo.data.data.item.orig.modules.module_dynamic && dynamicInfo.data.data.item.orig.modules.module_dynamic.topic !== null) {
36961
36746
  const name = dynamicInfo.data.data.item.orig.modules.module_dynamic.topic.name;
@@ -36996,7 +36781,6 @@ var Bilibili = class extends Base {
36996
36781
  };
36997
36782
  break;
36998
36783
  }
36999
- case DynamicType.FORWARD:
37000
36784
  default:
37001
36785
  logger.warn(`UP主:${userProfileData.data.data.card.name}的${logger.green("转发动态")}转发的原动态类型为「${logger.yellow(dynamicInfo.data.item.orig.type)}」暂未支持解析`);
37002
36786
  break;
@@ -37031,7 +36815,6 @@ var Bilibili = class extends Base {
37031
36815
  bvid,
37032
36816
  typeMode: "strict"
37033
36817
  });
37034
- const dycrad = dynamicInfoCard.data.data.card && dynamicInfoCard.data.data.card.card && JSON.parse(dynamicInfoCard.data.data.card.card);
37035
36818
  let staff = void 0;
37036
36819
  if (INFODATA.data.data.staff && Array.isArray(INFODATA.data.data.staff)) {
37037
36820
  const currentMid = dynamicInfo.data.data.item.modules.module_author.mid;
@@ -37055,8 +36838,8 @@ var Bilibili = class extends Base {
37055
36838
  dianzan: Count(INFODATA.data.data.stat.like),
37056
36839
  pinglun: Count(INFODATA.data.data.stat.reply),
37057
36840
  share: Count(INFODATA.data.data.stat.share),
37058
- view: Count(dycrad.stat.view),
37059
- coin: Count(dycrad.stat.coin),
36841
+ view: Count(INFODATA.data.data.stat.view),
36842
+ coin: Count(INFODATA.data.data.stat.coin),
37060
36843
  duration_text: dynamicInfo.data.data.item.modules.module_dynamic.major.archive.duration_text,
37061
36844
  create_time: TimeFormatter.toDateTime(INFODATA.data.data.ctime),
37062
36845
  avatar_url: userProfileData.data.data.card.face,
@@ -37081,17 +36864,18 @@ var Bilibili = class extends Base {
37081
36864
  host_mid: dynamicInfo.data.data.item.modules.module_author.mid,
37082
36865
  typeMode: "strict"
37083
36866
  });
36867
+ const liveInfo = JSON.parse(dynamicInfo.data.data.item.modules.module_dynamic.major.live_rcmd.content);
37084
36868
  img$1 = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD", {
37085
- image_url: dynamicCARD.live_play_info.cover,
37086
- text: buildBilibiliDynamicRichText(dynamicCARD.live_play_info.title, []),
37087
- liveinf: br$1(`${dynamicCARD.live_play_info.area_name} | 房间号: ${dynamicCARD.live_play_info.room_id}`),
36869
+ image_url: liveInfo.live_play_info.cover,
36870
+ text: buildBilibiliDynamicRichText(liveInfo.live_play_info.title, []),
36871
+ liveinf: br$1(`${liveInfo.live_play_info.area_name} | 房间号: ${liveInfo.live_play_info.room_id}`),
37088
36872
  usernameMeta: getUsernameMetadata(userINFO.data.data.card),
37089
36873
  avatar_url: userINFO.data.data.card.face,
37090
36874
  frame: dynamicInfo.data.data.item.modules.module_author.pendant.image,
37091
36875
  fans: Count(userINFO.data.data.follower),
37092
36876
  create_time: TimeFormatter.toDateTime(dynamicInfo.data.data.item.modules.module_author.pub_ts),
37093
36877
  now_time: TimeFormatter.now(),
37094
- share_url: "https://live.bilibili.com/" + dynamicCARD.live_play_info.room_id,
36878
+ share_url: "https://live.bilibili.com/" + liveInfo.live_play_info.room_id,
37095
36879
  dynamicTYPE: "直播动态"
37096
36880
  });
37097
36881
  this.e.reply(img$1);
@@ -37168,7 +36952,7 @@ var Bilibili = class extends Base {
37168
36952
  if (Config.bilibili.sendContent.some((content) => content === "comment") && dynamicInfo.data.data.item.type !== DynamicType.LIVE_RCMD) {
37169
36953
  const commentsData = await softFetch(() => this.amagi.bilibili.fetcher.fetchComments({
37170
36954
  type: mapping_table(dynamicInfo.data.data.item.type),
37171
- oid: oid(dynamicInfo.data, dynamicInfoCard.data),
36955
+ oid: oid(dynamicInfo.data.data.item.type, dynamicInfo.data),
37172
36956
  number: Config.bilibili.numcomment,
37173
36957
  typeMode: "strict"
37174
36958
  }), [SOFT_ERROR_CODES.BILIBILI_COMMENTS_DISABLED]);
@@ -37436,19 +37220,6 @@ var qnd = {
37436
37220
  127: "超高清 8K"
37437
37221
  };
37438
37222
  /**
37439
- * 将给定的图片源数组转换为一个新的对象数组,每个对象包含单个图片源
37440
- * @param pic 一个包含图片源字符串的数组
37441
- * @returns 返回一个对象数组,每个对象包含单个图片源
37442
- */
37443
- var cover = (pic) => {
37444
- const imgArray = [];
37445
- for (const i of pic) {
37446
- const obj = { image_src: i.img_src };
37447
- imgArray.push(obj);
37448
- }
37449
- return imgArray;
37450
- };
37451
- /**
37452
37223
  * 生成装饰卡片数据
37453
37224
  * @param decorate 装饰对象,包含卡片的URL和颜色信息
37454
37225
  * @returns 返回装饰卡片数据对象或undefined
@@ -37558,11 +37329,17 @@ var mapping_table = (type) => {
37558
37329
  for (const key in Array) if (Array[key].includes(type)) return parseInt(key, 10);
37559
37330
  return 1;
37560
37331
  };
37561
- var oid = (dynamicINFO, dynamicInfoCard) => {
37562
- switch (dynamicINFO.data.item.type) {
37563
- case "DYNAMIC_TYPE_WORD":
37564
- case "DYNAMIC_TYPE_FORWARD": return dynamicINFO.data.item.id_str;
37565
- default: return dynamicInfoCard.data.card.desc.rid.toString();
37332
+ /**
37333
+ * 根据动态类型获取对应的oid(对象ID),用于后续评论接口调用
37334
+ * @param dynamicType 动态类型
37335
+ * @param dynamicData 动态数据
37336
+ * @returns
37337
+ */
37338
+ var oid = (dynamicType, dynamicData) => {
37339
+ switch (dynamicType) {
37340
+ case DynamicType.WORD:
37341
+ case DynamicType.FORWARD: return dynamicData.data.item.id_str;
37342
+ default: return dynamicData.data.item.basic.rid_str.toString();
37566
37343
  }
37567
37344
  };
37568
37345
  /**
@@ -38350,11 +38127,6 @@ var Bilibilipush = class extends Base {
38350
38127
  skip && logger.warn(`动态 https://t.bilibili.com/${dynamicId} 已被处理,跳过`);
38351
38128
  let send_video = true;
38352
38129
  let img = [];
38353
- const dynamicCARDINFO = await this.amagi.bilibili.fetcher.fetchDynamicCard({
38354
- dynamic_id: dynamicId,
38355
- typeMode: "strict"
38356
- });
38357
- const dycrad = dynamicCARDINFO.data.data.card && dynamicCARDINFO.data.data.card.card && JSON.parse(dynamicCARDINFO.data.data.card.card);
38358
38130
  this.injectBotToEventForRender(data[dynamicId].targets);
38359
38131
  if (!skip) {
38360
38132
  const userINFO = await this.amagi.bilibili.fetcher.fetchUserCard({
@@ -38377,7 +38149,7 @@ var Bilibilipush = class extends Base {
38377
38149
  data[dynamicId].Dynamic_Data.modules.module_dynamic.major.opus.summary.text = `${name}\n\n` + data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.text;
38378
38150
  }
38379
38151
  img = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_DRAW", {
38380
- image_url: dycrad.item.pictures && cover(dycrad.item.pictures),
38152
+ image_url: Object.values(data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.pics ?? []).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
38381
38153
  title: data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.title ?? void 0,
38382
38154
  text: buildBilibiliDynamicRichText(data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.text ?? "", data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.rich_text_nodes ?? []),
38383
38155
  dianzan: Count(data[dynamicId].Dynamic_Data.modules.module_stat.like.count),
@@ -38401,13 +38173,13 @@ var Bilibilipush = class extends Base {
38401
38173
  break;
38402
38174
  /** 处理纯文动态 */
38403
38175
  case DynamicType.WORD: {
38404
- if (data[dynamicId].Dynamic_Data.modules.module_dynamic.topic !== null) {
38405
- const name = data[dynamicId].Dynamic_Data.modules.module_dynamic.topic.name;
38176
+ if ("topic" in data[dynamicId].Dynamic_Data.orig.modules.module_dynamic && data[dynamicId].Dynamic_Data.modules.module_dynamic.topic !== null) {
38177
+ const name = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.name;
38406
38178
  data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus.summary.rich_text_nodes.unshift({
38407
38179
  orig_text: name,
38408
38180
  text: name,
38409
38181
  type: "topic",
38410
- rid: data[dynamicId].Dynamic_Data.modules.module_dynamic.topic.id.toString()
38182
+ rid: data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.id.toString()
38411
38183
  });
38412
38184
  data[dynamicId].Dynamic_Data.modules.module_dynamic.major.opus.summary.text = `${name}\n\n` + data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.opus?.summary?.text;
38413
38185
  }
@@ -38469,8 +38241,8 @@ var Bilibilipush = class extends Base {
38469
38241
  dianzan: Count(INFODATA.data.data.stat.like),
38470
38242
  pinglun: Count(INFODATA.data.data.stat.reply),
38471
38243
  share: Count(INFODATA.data.data.stat.share),
38472
- view: Count(dycrad.stat.view),
38473
- coin: Count(dycrad.stat.coin),
38244
+ view: Count(INFODATA.data.data.stat.view),
38245
+ coin: Count(INFODATA.data.data.stat.coin),
38474
38246
  duration_text: data[dynamicId].Dynamic_Data.modules.module_dynamic.major?.archive?.duration_text ?? "0:00",
38475
38247
  create_time: TimeFormatter.toDateTime(data[dynamicId].Dynamic_Data.modules.module_author.pub_ts),
38476
38248
  avatar_url: userINFO.data.data.card.face,
@@ -38489,21 +38261,23 @@ var Bilibilipush = class extends Base {
38489
38261
  }
38490
38262
  break;
38491
38263
  /** 处理直播动态 */
38492
- case DynamicType.LIVE_RCMD:
38264
+ case DynamicType.LIVE_RCMD: {
38265
+ const liveInfo = JSON.parse(data[dynamicId].Dynamic_Data.modules.module_dynamic.major.live_rcmd.content);
38493
38266
  img = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD", {
38494
- image_url: dycrad.live_play_info.cover,
38495
- text: buildBilibiliDynamicRichText(dycrad.live_play_info.title, []),
38496
- liveinf: br(`${dycrad.live_play_info.area_name} | 房间号: ${dycrad.live_play_info.room_id}`),
38267
+ image_url: liveInfo.live_play_info.cover,
38268
+ text: buildBilibiliDynamicRichText(liveInfo.live_play_info.title, []),
38269
+ liveinf: br(`${liveInfo.live_play_info.area_name} | 房间号: ${liveInfo.live_play_info.room_id}`),
38497
38270
  usernameMeta: getUsernameMetadata(userINFO.data.data.card),
38498
38271
  avatar_url: userINFO.data.data.card.face,
38499
38272
  frame: data[dynamicId].Dynamic_Data.modules.module_author.pendant.image,
38500
38273
  fans: Count(userINFO.data.data.follower),
38501
38274
  create_time: TimeFormatter.toDateTime(data[dynamicId].Dynamic_Data.modules.module_author.pub_ts),
38502
38275
  now_time: TimeFormatter.now(),
38503
- share_url: "https://live.bilibili.com/" + dycrad.live_play_info.room_id,
38276
+ share_url: "https://live.bilibili.com/" + liveInfo.live_play_info.room_id,
38504
38277
  dynamicTYPE: "直播动态推送"
38505
38278
  });
38506
38279
  break;
38280
+ }
38507
38281
  /** 处理转发动态 */
38508
38282
  case DynamicType.FORWARD: {
38509
38283
  if ("topic" in data[dynamicId].Dynamic_Data.modules.module_dynamic && data[dynamicId].Dynamic_Data.modules.module_dynamic.topic !== null) {
@@ -38540,12 +38314,7 @@ var Bilibilipush = class extends Base {
38540
38314
  frame: data[dynamicId].Dynamic_Data.orig.modules.module_author.pendant.image
38541
38315
  };
38542
38316
  break;
38543
- case DynamicType.DRAW: {
38544
- const dynamicCARD = await bilibiliFetcher.fetchDynamicCard({
38545
- dynamic_id: data[dynamicId].Dynamic_Data.orig.id_str,
38546
- typeMode: "strict"
38547
- });
38548
- const cardData = JSON.parse(dynamicCARD.data.data.card.card);
38317
+ case DynamicType.DRAW:
38549
38318
  if ("topic" in data[dynamicId].Dynamic_Data.orig.modules.module_dynamic && data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic !== null) {
38550
38319
  const name = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.name;
38551
38320
  const origSummary = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major?.opus?.summary;
@@ -38555,7 +38324,9 @@ var Bilibilipush = class extends Base {
38555
38324
  orig_text: name,
38556
38325
  text: name,
38557
38326
  type: "topic",
38558
- rid: data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.id.toString()
38327
+ rid: data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.id.toString(),
38328
+ jump_url: "114514",
38329
+ style: { "114514": "1919810" }
38559
38330
  });
38560
38331
  origSummary.text = `${name}\n` + (origSummary.text || "");
38561
38332
  }
@@ -38566,12 +38337,11 @@ var Bilibilipush = class extends Base {
38566
38337
  create_time: TimeFormatter.toDateTime(data[dynamicId].Dynamic_Data.orig.modules.module_author.pub_ts),
38567
38338
  avatar_url: data[dynamicId].Dynamic_Data.orig.modules.module_author.face,
38568
38339
  text: buildBilibiliDynamicRichText(data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major.opus.summary.text, data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major.opus.summary.rich_text_nodes),
38569
- image_url: cardData.item.pictures && cover(cardData.item.pictures),
38340
+ image_url: Object.values(data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.major.opus.pics).filter((item) => typeof item?.url === "string").map((item) => ({ image_src: item.url })),
38570
38341
  decoration_card: generateDecorationCard(data[dynamicId].Dynamic_Data.orig.modules.module_author.decoration_card),
38571
38342
  frame: data[dynamicId].Dynamic_Data.orig.modules.module_author.pendant.image
38572
38343
  };
38573
38344
  break;
38574
- }
38575
38345
  case DynamicType.WORD:
38576
38346
  if ("topic" in data[dynamicId].Dynamic_Data.orig.modules.module_dynamic && data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic !== null) {
38577
38347
  const name = data[dynamicId].Dynamic_Data.orig.modules.module_dynamic.topic.name;
@@ -38612,10 +38382,11 @@ var Bilibilipush = class extends Base {
38612
38382
  };
38613
38383
  break;
38614
38384
  }
38615
- case DynamicType.FORWARD:
38616
- default:
38617
- logger.warn(`UP主:${data[dynamicId].remark}的${logger.green("转发动态")}转发的原动态类型为「${logger.yellow(data[dynamicId].Dynamic_Data.orig.type)}」暂未支持解析`);
38385
+ default: {
38386
+ const key = dynamicId;
38387
+ logger.warn(`UP主:${data[key].remark}的${logger.green("转发动态")}转发的原动态类型为「${logger.yellow(data[key].Dynamic_Data.orig?.type)}」暂未支持解析`);
38618
38388
  break;
38389
+ }
38619
38390
  }
38620
38391
  img = await Render(this.e, "bilibili/dynamic/DYNAMIC_TYPE_FORWARD", {
38621
38392
  text,
@@ -38674,10 +38445,12 @@ var Bilibilipush = class extends Base {
38674
38445
  break;
38675
38446
  }
38676
38447
  /** 未处理的动态类型 */
38677
- default:
38448
+ default: {
38678
38449
  skip = true;
38679
- logger.warn(`UP主:${data[dynamicId].remark}「${data[dynamicId].dynamic_type}」动态类型的暂未支持推送\n动态地址:${"https://t.bilibili.com/" + data[dynamicId].Dynamic_Data.id_str}\n可通过 https://github.com/ikenxuan/karin-plugin-kkk/issues/new/choose 提交反馈`);
38450
+ const key = dynamicId;
38451
+ logger.warn(`UP主:${data[key].remark}「${data[key].dynamic_type}」动态类型的暂未支持推送\n动态地址:${"https://t.bilibili.com/" + data[key].Dynamic_Data.id_str}\n可通过 https://github.com/ikenxuan/karin-plugin-kkk/issues/new/choose 提交反馈`);
38680
38452
  break;
38453
+ }
38681
38454
  }
38682
38455
  }
38683
38456
  for (const target of data[dynamicId].targets) {
@@ -38693,8 +38466,8 @@ var Bilibilipush = class extends Base {
38693
38466
  let correctList;
38694
38467
  let videoSize = "";
38695
38468
  const playUrlData = await this.amagi.bilibili.fetcher.fetchVideoStreamUrl({
38696
- avid: dycrad.aid,
38697
- cid: dycrad.cid,
38469
+ avid: parseInt(data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.aid),
38470
+ cid: data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.cid,
38698
38471
  typeMode: "strict"
38699
38472
  });
38700
38473
  /** 提取出视频流信息对象,并排除清晰度重复的视频流 */
@@ -38708,21 +38481,21 @@ var Bilibilipush = class extends Base {
38708
38481
  /** 给视频信息对象删除不符合条件的视频流 */
38709
38482
  correctList = await bilibiliProcessVideos({
38710
38483
  accept_description: playUrlData.data.data.accept_description,
38711
- bvid: dynamicCARDINFO.data.data.card.desc.bvid,
38484
+ bvid: data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.bvid,
38712
38485
  qn: Config.bilibili.push.pushVideoQuality,
38713
38486
  maxAutoVideoSize: Config.bilibili.push.pushMaxAutoVideoSize
38714
38487
  }, simplify, playUrlData.data.data.dash.audio[0].base_url);
38715
38488
  playUrlData.data.data.dash.video = correctList.videoList;
38716
38489
  playUrlData.data.data.accept_description = correctList.accept_description;
38717
38490
  /** 获取第一个视频流的大小 */
38718
- videoSize = await getvideosize(correctList.videoList[0].base_url, playUrlData.data.data.dash.audio[0].base_url, dynamicCARDINFO.data.data.card.desc.bvid);
38491
+ videoSize = await getvideosize(correctList.videoList[0].base_url, playUrlData.data.data.dash.audio[0].base_url, data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.bvid);
38719
38492
  if (Config.upload.usefilelimit && Number(videoSize) > Number(Config.upload.filelimit) && !Config.upload.compress) {
38720
38493
  await karin$1.sendMsg(botId, Contact, [segment.text(`设定的最大上传大小为 ${Config.upload.filelimit}MB\n当前解析到的视频大小为 ${Number(videoSize)}MB\n视频太大了,还是去B站看吧~`), segment.reply(status.messageId)]);
38721
38494
  break;
38722
38495
  }
38723
38496
  logger.mark(`当前处于自动推送状态,解析到的视频大小为 ${logger.yellow(Number(videoSize))} MB`);
38724
38497
  const infoData = await this.amagi.bilibili.fetcher.fetchVideoInfo({
38725
- bvid: dynamicCARDINFO.data.data.card.desc.bvid,
38498
+ bvid: data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.bvid,
38726
38499
  typeMode: "strict"
38727
38500
  });
38728
38501
  const mp4File = await downloadFile(playUrlData.data?.data?.dash?.video[0].base_url, {
@@ -40365,18 +40138,28 @@ var DouYin = class DouYin extends Base {
40365
40138
  if (VideoData.data.aweme_detail?.suggest_words?.suggest_words) {
40366
40139
  for (const item of VideoData.data.aweme_detail.suggest_words.suggest_words) if (item.words && item.scene === "comment_top_rec") for (const v of item.words) v.word && suggest.push(v.word);
40367
40140
  }
40141
+ const aweme = VideoData.data.aweme_detail;
40368
40142
  const img = await Render(this.e, "douyin/comment", {
40369
40143
  Type: isArticle ? "文章" : isVideo ? "视频" : this.is_slides ? "合辑" : "图集",
40370
40144
  CommentsData: douyinCommentsRes.CommentsData,
40371
- CommentLength: Config.douyin.realCommentCount ? VideoData.data.aweme_detail.statistics.comment_count : douyinCommentsRes.CommentsData.length ?? 0,
40372
- share_url: isVideo ? `https://aweme.snssdk.com/aweme/v1/play/?video_id=${VideoData.data.aweme_detail.video.play_addr.uri}&ratio=1080p&line=0` : VideoData.data.aweme_detail.share_url,
40145
+ CommentLength: Config.douyin.realCommentCount ? aweme.statistics.comment_count : douyinCommentsRes.CommentsData.length ?? 0,
40146
+ share_url: isVideo ? `https://aweme.snssdk.com/aweme/v1/play/?video_id=${aweme.video.play_addr.uri}&ratio=1080p&line=0` : aweme.share_url,
40373
40147
  VideoSize: mp4size,
40374
40148
  VideoFPS: FPS,
40375
40149
  ImageLength: imagenum,
40376
- Region: VideoData.data.aweme_detail.region,
40150
+ Region: aweme.region,
40377
40151
  suggestWrod: suggest,
40378
40152
  Resolution: isVideo && video ? `${video.bit_rate[0].play_addr.width} x ${video.bit_rate[0].play_addr.height}` : null,
40379
- maxDepth: Config.douyin.subCommentDepth
40153
+ maxDepth: Config.douyin.subCommentDepth,
40154
+ Author: aweme.author.nickname,
40155
+ AuthorAvatar: aweme.author.avatar_thumb.url_list[0],
40156
+ Statistics: {
40157
+ digg_count: aweme.statistics.digg_count,
40158
+ comment_count: aweme.statistics.comment_count,
40159
+ share_count: aweme.statistics.share_count,
40160
+ collect_count: aweme.statistics.collect_count
40161
+ },
40162
+ CreateTime: aweme.create_time
40380
40163
  });
40381
40164
  const messageElements = [];
40382
40165
  if (Config.douyin.commentImageCollection && douyinCommentsRes.image_url.length > 0) {
@@ -40611,17 +40394,31 @@ var DouYin = class DouYin extends Base {
40611
40394
  web_rid: room_data.owner.web_rid,
40612
40395
  typeMode: "strict"
40613
40396
  });
40397
+ const liveItem = live_data.data.data[0];
40398
+ const user = UserInfoData.data.user;
40399
+ const streamExtra = liveItem.stream_url?.extra;
40400
+ const resolution = streamExtra ? `${streamExtra.width}x${streamExtra.height}` : liveItem.stream_url?.default_resolution || "";
40614
40401
  const img = await Render(this.e, "douyin/live", {
40615
- image_url: live_data.data.data[0].cover?.url_list[0],
40616
- text: live_data.data.data[0].title,
40617
- liveinf: `${live_data.data.partition_road_map.partition.title} | 房间号: ${room_data.owner.web_rid}`,
40618
- 在线观众: Count(Number(live_data.data.data[0].room_view_stats?.display_value)),
40619
- 总观看次数: live_data.data.data[0].stats?.total_user_str ? Count(Number(live_data.data.data[0].stats?.total_user_str)) : "刚开播无法获取",
40620
- username: UserInfoData.data.user.nickname,
40621
- avater_url: UserInfoData.data.user.avatar_larger.url_list[0],
40622
- fans: Count(UserInfoData.data.user.follower_count),
40402
+ image_url: liveItem.cover?.url_list[0],
40403
+ text: liveItem.title,
40404
+ partition_title: live_data.data.partition_road_map?.partition?.title || "未知分区",
40405
+ room_id: room_data.owner.web_rid,
40406
+ online_viewers: Count(Number(liveItem.room_view_stats?.display_value)),
40407
+ total_viewers: liveItem.stats?.total_user_str || "刚开播无法获取",
40408
+ username: user.nickname,
40409
+ avater_url: user.avatar_larger.url_list[0],
40410
+ fans: Count(user.follower_count),
40623
40411
  share_url: "https://live.douyin.com/" + room_data.owner.web_rid,
40624
- dynamicTYPE: "直播间信息"
40412
+ dynamicTYPE: "直播间信息",
40413
+ like_count: Count(Number(liveItem.like_count || 0)),
40414
+ user_count_str: liveItem.user_count_str || "",
40415
+ resolution,
40416
+ signature: user.signature || "",
40417
+ city: user.city || "",
40418
+ aweme_count: Count(Number(user.aweme_count || 0)),
40419
+ following_count: Count(Number(user.following_count || 0)),
40420
+ total_favorited: Count(Number(user.total_favorited || 0)),
40421
+ has_commerce_goods: liveItem.has_commerce_goods || false
40625
40422
  });
40626
40423
  await this.e.reply(img);
40627
40424
  } else this.e.reply(`「${UserInfoData.data.user.nickname}」\n未开播,正在休息中~`);
@@ -44286,7 +44083,6 @@ var update = karin$1.task("kkk-更新检测", "*/3 * * * *", Handler, {
44286
44083
  //#endregion
44287
44084
  //#region src/platform/bilibili/api/contents.ts
44288
44085
  var import_lib = /* @__PURE__ */ __toESM(require_lib(), 1);
44289
- var import_dist = /* @__PURE__ */ __toESM(require_dist(), 1);
44290
44086
  /**
44291
44087
  * B站内容管理 API
44292
44088
  */
@@ -47862,7 +47658,7 @@ var proxyOptions = {
47862
47658
  changeOrigin: true
47863
47659
  };
47864
47660
  server.use(import_lib.default());
47865
- server.use("/", import_dist.createProxyMiddleware(proxyOptions));
47661
+ server.use("/", createProxyMiddleware(proxyOptions));
47866
47662
  if (process.env.NODE_ENV !== "test") checkPort(3780).then((isOpen) => {
47867
47663
  if (isOpen) {
47868
47664
  const s = server.listen(3780);