karin-plugin-kkk 2.26.6 → 2.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +1 -1
- package/lib/apps/__ready.js +2 -2
- package/lib/apps/admin.js +2 -2
- package/lib/apps/help.js +2 -2
- package/lib/apps/push.js +2 -2
- package/lib/apps/qrlogin.js +2 -2
- package/lib/apps/statistics.js +2 -2
- package/lib/apps/tools.js +2 -2
- package/lib/apps/update.js +2 -2
- package/lib/build-metadata.json +5 -5
- package/lib/core_chunk/ArticleWork-YUXD4J4o.js +3 -0
- package/lib/core_chunk/Comment-BlsGb0BJ.js +3 -0
- package/lib/core_chunk/Comment-BvaBxBXq.js +3 -0
- package/lib/core_chunk/Comment-DAkBYEwQ.js +3 -0
- package/lib/core_chunk/Comment-W7yzE3V8.js +3 -0
- package/lib/core_chunk/DYNAMIC_TYPE_ARTICLE-C_yXdHL6.js +3 -0
- package/lib/core_chunk/DYNAMIC_TYPE_AV-9V_K1fEv.js +3 -0
- package/lib/core_chunk/DYNAMIC_TYPE_DRAW-B0nRDWIR.js +3 -0
- package/lib/core_chunk/DYNAMIC_TYPE_FORWARD-CQddwMwd.js +3 -0
- package/lib/core_chunk/DYNAMIC_TYPE_LIVE_RCMD-Bt_E88wL.js +3 -0
- package/lib/core_chunk/DYNAMIC_TYPE_WORD-BDutqdJU.js +3 -0
- package/lib/core_chunk/Dynamic-s7ouu-nG.js +3 -0
- package/lib/core_chunk/FavoriteList-D0o5nbi4.js +3 -0
- package/lib/core_chunk/GlobalStatistics-aqVNKMGM.js +3 -0
- package/lib/core_chunk/GroupStatistics-BppQCu9O.js +3 -0
- package/lib/core_chunk/Help-BX3TqQaQ.js +3 -0
- package/lib/core_chunk/ImageWork-CYelfERx.js +3 -0
- package/lib/core_chunk/Live-CQP5OR8Y.js +3 -0
- package/lib/core_chunk/MusicInfo-zvwtog_A.js +3 -0
- package/lib/core_chunk/RecommendList-CXiPOzIN.js +3 -0
- package/lib/core_chunk/UserList-Dp-zNY4Z.js +3 -0
- package/lib/core_chunk/UserList-e7qGfWpS.js +3 -0
- package/lib/core_chunk/UserVideoList-DsfeY2HS.js +3 -0
- package/lib/core_chunk/VersionWarning-mCbREKfz.js +3 -0
- package/lib/core_chunk/VideoWork-DWP1x1xo.js +3 -0
- package/lib/core_chunk/amagiClient-C_qQFi3I.js +3 -0
- package/lib/core_chunk/bangumi-CXz3aPKE.js +3 -0
- package/lib/core_chunk/changelog-icKPF2Vh.js +3 -0
- package/lib/core_chunk/db-CjI5bW_8.js +3 -0
- package/lib/core_chunk/dist-Cx4SNJ6B.js +2 -0
- package/lib/core_chunk/handlerError-DIJznuvm.js +3 -0
- package/lib/core_chunk/{main-BmBlKgGL.js → main-GkRJUnjP.js} +677 -421
- package/lib/core_chunk/noteInfo-DlLJJaxT.js +3 -0
- package/lib/core_chunk/qrcodeImg-C0mEIm5B.js +3 -0
- package/lib/core_chunk/qrcodeImg-COPQdgv8.js +3 -0
- package/lib/core_chunk/qrlogin-COaceLuZ.js +3 -0
- package/lib/core_chunk/setup-FE-bwEzb.js +3 -0
- package/lib/core_chunk/template.d.mts +47 -56
- package/lib/core_chunk/template.js +2 -2
- package/lib/core_chunk/{vendor-DFuezFxA.js → vendor-CupLbLdw.js} +151 -28
- package/lib/core_chunk/videoInfo-7t7_qNts.js +3 -0
- package/lib/core_chunk/videoInfo-CWzMOt6K.js +3 -0
- package/lib/index.js +1 -1
- package/lib/karin-plugin-kkk.css +142 -28
- package/lib/root.js +1 -1
- package/lib/web.config.js +2 -2
- package/package.json +2 -2
- package/lib/core_chunk/ArticleWork-DDj6e_tc.js +0 -3
- package/lib/core_chunk/Comment-BFJgAgV4.js +0 -3
- package/lib/core_chunk/Comment-BefJo9xt.js +0 -3
- package/lib/core_chunk/Comment-CQVXMkLq.js +0 -3
- package/lib/core_chunk/Comment-CmooU5KL.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_ARTICLE-6PIUEHbS.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_AV-r5qCggBC.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_DRAW-CZi-B5s7.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_FORWARD-CSi2BNsb.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_LIVE_RCMD-C_ayJWLf.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_WORD-chChIerS.js +0 -3
- package/lib/core_chunk/Dynamic-2PlglVIR.js +0 -3
- package/lib/core_chunk/FavoriteList-rfDb0AxJ.js +0 -3
- package/lib/core_chunk/GlobalStatistics-n0ZwsOM_.js +0 -3
- package/lib/core_chunk/GroupStatistics-8zV9OWSx.js +0 -3
- package/lib/core_chunk/Help-DVb5G9p_.js +0 -3
- package/lib/core_chunk/ImageWork-B4yglRqU.js +0 -3
- package/lib/core_chunk/Live-DXYC6YDf.js +0 -3
- package/lib/core_chunk/MusicInfo-CfbqBqOD.js +0 -3
- package/lib/core_chunk/RecommendList-CMry5IGg.js +0 -3
- package/lib/core_chunk/UserList-Bg7INjKO.js +0 -3
- package/lib/core_chunk/UserList-CkoUBVXT.js +0 -3
- package/lib/core_chunk/UserVideoList-BLtir9Zc.js +0 -3
- package/lib/core_chunk/VersionWarning-Bm26ctVW.js +0 -3
- package/lib/core_chunk/VideoWork-BempeaT_.js +0 -3
- package/lib/core_chunk/amagiClient-DjLAOt9V.js +0 -3
- package/lib/core_chunk/bangumi-m8ad4kEc.js +0 -3
- package/lib/core_chunk/changelog-B5Fh6ZWW.js +0 -3
- package/lib/core_chunk/db-C_tAwVbg.js +0 -3
- package/lib/core_chunk/dist-Cg44u9wV.js +0 -2
- package/lib/core_chunk/handlerError-C-NTvexC.js +0 -3
- package/lib/core_chunk/noteInfo-xphF469_.js +0 -3
- package/lib/core_chunk/qrcodeImg-CBnY6dpz.js +0 -3
- package/lib/core_chunk/qrcodeImg-urNtFhpo.js +0 -3
- package/lib/core_chunk/qrlogin-e4Bm8TD4.js +0 -3
- package/lib/core_chunk/setup-Ca9p9c0T.js +0 -3
- package/lib/core_chunk/videoInfo-C3R99NLN.js +0 -3
- package/lib/core_chunk/videoInfo-D7iAogE0.js +0 -3
- package/resources/image/other/changelog/banner.webp +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "./rolldown-runtime-8i3BgXHp.js";
|
|
2
|
-
import { $ as
|
|
2
|
+
import { $ as RiTrophyFill, $t as require_qr_code_styling, A as RiBellFill, At as Eye, B as RiLoginCircleFill, Bt as ChartColumn, C as AiOutlineVideoCamera, Ct as MapPin, D as LuFullscreen, Dt as Gift, E as SiBilibili, Et as Hash, F as RiHeart3Line, Ft as Clock, G as RiRobot2Fill, Gt as require_dist, H as RiPieChart2Fill, Ht as Bookmark, I as RiLineChartFill, It as CircleFadingArrowUp, J as RiSparkling2Fill, Jt as zhCN, K as RiSendPlaneFill, Kt as require_lib, L as RiLinkM, Lt as CircleEllipsis, M as RiHashtag, Mt as Crown, N as RiHeart2Line, Nt as CornerDownLeft, O as RiArrowRightFill, Ot as Gamepad2, P as RiHeart3Fill, Pt as Coins, Q as RiTiktokFill, Qt as differenceInSeconds, R as RiListCheck2, Rt as CircleCheckBig, S as AiFillStar, St as MessageCircle, T as Markdown, Tt as Heart, U as RiQuestionFill, Ut as BookOpen, V as RiMessage3Fill, Vt as Calendar, W as RiRefreshLine, Wt as Bell, X as RiStarLine, Xt as formatDistanceToNow, Y as RiStarFill, Yt as fromUnixTime, Z as RiThumbUpFill, Zt as format, _ as FaTiktok, _n as axios$1, _t as Quote, a as VictoryChart, an as HeroUIProvider, at as User, b as AiFillHeart, bt as Play, c as VictoryTheme, cn as require_react, ct as ThumbsUp, d as MdAccessTime, dn as require_jpeg_js, dt as Smartphone, en as Window, et as RiUserFollowLine, f as MdLocationOn, fn as require_heic_decode, ft as Shield, g as FaMusic, gn as AxiosError$1, gt as Radio, h as FaCommentDots, hn as Chalk, ht as ScanLine, i as VictoryLine, in as button_default, it as Users, j as RiGroupLine, jt as ExternalLink, k as RiBarChartFill, kt as FileText, l as TbScan, ln as require_png, lt as Terminal, m as FaCodeBranch, mn as require_protobufjs, mt as Share2, n as VictoryScatter, nn as code_default, nt as RiVideoLine, o as VictoryAxis, on as require_jsx_runtime, ot as UserPlus, p as MdOutlineLightbulb, pn as require_express, pt as ShieldCheck, q as RiShareForwardFill, r as VictoryPie, rn as chip_default, rt as Zap, s as VictoryLabel, sn as clsx, st as TriangleAlert, t as rehypeHighlight, tn as require_server_node, tt as RiVerifiedBadgeFill, u as HiOutlineMenuAlt2, un as require_jsQR, ut as Star, v as FaUserGroup, vn as Xhshow, vt as QrCode, w as IoSearch, wt as Info, x as AiFillPushpin, xt as Music, y as BsImage, yn as zod_default, yt as Plug2, z as RiLiveLine, zt as CircleAlert } from "./vendor-CupLbLdw.js";
|
|
3
3
|
import "node:module";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path, { resolve } from "node:path";
|
|
@@ -21,7 +21,7 @@ import { snapka } from "@snapka/puppeteer";
|
|
|
21
21
|
import { newInjectedPage } from "fingerprint-injector";
|
|
22
22
|
import express from "node-karin/express";
|
|
23
23
|
globalThis.__kkkLoadStart ??= process.hrtime.bigint();
|
|
24
|
-
import("./setup-
|
|
24
|
+
import("./setup-FE-bwEzb.js");
|
|
25
25
|
var resolvePluginRoot = (startUrl) => {
|
|
26
26
|
let dir = path.dirname(startUrl);
|
|
27
27
|
for (let i = 0; i < 8; i++) {
|
|
@@ -5213,7 +5213,7 @@ var Cfg = class {
|
|
|
5213
5213
|
const fileName = path.basename(file, ".yaml");
|
|
5214
5214
|
if (fileName === "cookies" || fileName === "request") {
|
|
5215
5215
|
logger.debug(`[Config] 检测到 ${fileName} 配置变化,正在重载 Amagi Client...`);
|
|
5216
|
-
import("./amagiClient-
|
|
5216
|
+
import("./amagiClient-C_qQFi3I.js").then(({ reloadAmagiConfig }) => {
|
|
5217
5217
|
reloadAmagiConfig();
|
|
5218
5218
|
}).catch((error) => {
|
|
5219
5219
|
logger.error(`[Config] 重载 Amagi Client 失败: ${error}`);
|
|
@@ -5232,7 +5232,7 @@ var Cfg = class {
|
|
|
5232
5232
|
};
|
|
5233
5233
|
}
|
|
5234
5234
|
async All() {
|
|
5235
|
-
const { getDouyinDB, getBilibiliDB } = await import("./db-
|
|
5235
|
+
const { getDouyinDB, getBilibiliDB } = await import("./db-CjI5bW_8.js");
|
|
5236
5236
|
const douyinDB = await getDouyinDB();
|
|
5237
5237
|
const bilibiliDB = await getBilibiliDB();
|
|
5238
5238
|
const allConfig = {};
|
|
@@ -5274,7 +5274,7 @@ var Cfg = class {
|
|
|
5274
5274
|
fs.writeFileSync(path, yamlData.toString({ lineWidth: -1 }), "utf8");
|
|
5275
5275
|
}
|
|
5276
5276
|
async ModifyPro(name, config, type = "config") {
|
|
5277
|
-
const { getDouyinDB, getBilibiliDB } = await import("./db-
|
|
5277
|
+
const { getDouyinDB, getBilibiliDB } = await import("./db-CjI5bW_8.js");
|
|
5278
5278
|
const douyinDB = await getDouyinDB();
|
|
5279
5279
|
const bilibiliDB = await getBilibiliDB();
|
|
5280
5280
|
const filePath = type === "config" ? `${this.dirCfgPath}/${name}.yaml` : `${this.defCfgPath}/${name}.yaml`;
|
|
@@ -5379,7 +5379,7 @@ var Cfg = class {
|
|
|
5379
5379
|
}
|
|
5380
5380
|
async syncConfigToDatabase() {
|
|
5381
5381
|
try {
|
|
5382
|
-
const { getDouyinDB, getBilibiliDB } = await import("./db-
|
|
5382
|
+
const { getDouyinDB, getBilibiliDB } = await import("./db-CjI5bW_8.js");
|
|
5383
5383
|
const douyinDB = await getDouyinDB();
|
|
5384
5384
|
const bilibiliDB = await getBilibiliDB();
|
|
5385
5385
|
const pushCfg = this.getYaml("config", "pushlist");
|
|
@@ -5512,6 +5512,50 @@ var Base = class extends AmagiBase {
|
|
|
5512
5512
|
this.headers = BASE_HEADERS;
|
|
5513
5513
|
}
|
|
5514
5514
|
};
|
|
5515
|
+
var statBotId$1 = (pushList) => {
|
|
5516
|
+
const platformBotCount = {
|
|
5517
|
+
douyin: /* @__PURE__ */ new Map(),
|
|
5518
|
+
bilibili: /* @__PURE__ */ new Map()
|
|
5519
|
+
};
|
|
5520
|
+
pushList.douyin.forEach((item) => {
|
|
5521
|
+
item.group_id.forEach((gid) => {
|
|
5522
|
+
const botId = gid.split(":")[1];
|
|
5523
|
+
platformBotCount.douyin.set(botId, (platformBotCount.douyin.get(botId) ?? 0) + 1);
|
|
5524
|
+
});
|
|
5525
|
+
});
|
|
5526
|
+
pushList.bilibili.forEach((item) => {
|
|
5527
|
+
item.group_id.forEach((gid) => {
|
|
5528
|
+
const botId = gid.split(":")[1];
|
|
5529
|
+
platformBotCount.bilibili.set(botId, (platformBotCount.bilibili.get(botId) ?? 0) + 1);
|
|
5530
|
+
});
|
|
5531
|
+
});
|
|
5532
|
+
let douyinMaxCount = 0;
|
|
5533
|
+
let douyinMostFrequentBot = "";
|
|
5534
|
+
platformBotCount.douyin.forEach((count, botId) => {
|
|
5535
|
+
if (count > douyinMaxCount) {
|
|
5536
|
+
douyinMaxCount = count;
|
|
5537
|
+
douyinMostFrequentBot = botId;
|
|
5538
|
+
}
|
|
5539
|
+
});
|
|
5540
|
+
let biliMaxCount = 0;
|
|
5541
|
+
let biliMostFrequentBot = "";
|
|
5542
|
+
platformBotCount.bilibili.forEach((count, botId) => {
|
|
5543
|
+
if (count > biliMaxCount) {
|
|
5544
|
+
biliMaxCount = count;
|
|
5545
|
+
biliMostFrequentBot = botId;
|
|
5546
|
+
}
|
|
5547
|
+
});
|
|
5548
|
+
return {
|
|
5549
|
+
douyin: {
|
|
5550
|
+
botId: douyinMostFrequentBot,
|
|
5551
|
+
count: douyinMaxCount
|
|
5552
|
+
},
|
|
5553
|
+
bilibili: {
|
|
5554
|
+
botId: biliMostFrequentBot,
|
|
5555
|
+
count: biliMaxCount
|
|
5556
|
+
}
|
|
5557
|
+
};
|
|
5558
|
+
};
|
|
5515
5559
|
var Count = (count) => {
|
|
5516
5560
|
if (count >= 1e8) return (count / 1e8).toFixed(1) + "亿";
|
|
5517
5561
|
else if (count >= 1e4) return (count / 1e4).toFixed(1) + "万";
|
|
@@ -7979,47 +8023,47 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
7979
8023
|
switch (baseComponent.id) {
|
|
7980
8024
|
case "comment": return createComponentConfig(baseComponent, {
|
|
7981
8025
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
7982
|
-
lazyComponent: () => import("./Comment-
|
|
8026
|
+
lazyComponent: () => import("./Comment-BvaBxBXq.js").then((module) => ({ default: module.DouyinComment }))
|
|
7983
8027
|
});
|
|
7984
8028
|
case "dynamic": return createComponentConfig(baseComponent, {
|
|
7985
8029
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
7986
|
-
lazyComponent: () => import("./Dynamic-
|
|
8030
|
+
lazyComponent: () => import("./Dynamic-s7ouu-nG.js").then((module) => ({ default: module.DouyinDynamic }))
|
|
7987
8031
|
});
|
|
7988
8032
|
case "video-work": return createComponentConfig(baseComponent, {
|
|
7989
8033
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
7990
|
-
lazyComponent: () => import("./VideoWork-
|
|
8034
|
+
lazyComponent: () => import("./VideoWork-DWP1x1xo.js").then((module) => ({ default: module.DouyinVideoWork }))
|
|
7991
8035
|
});
|
|
7992
8036
|
case "image-work": return createComponentConfig(baseComponent, {
|
|
7993
8037
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
7994
|
-
lazyComponent: () => import("./ImageWork-
|
|
8038
|
+
lazyComponent: () => import("./ImageWork-CYelfERx.js").then((module) => ({ default: module.DouyinImageWork }))
|
|
7995
8039
|
});
|
|
7996
8040
|
case "article-work": return createComponentConfig(baseComponent, {
|
|
7997
8041
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
7998
|
-
lazyComponent: () => import("./ArticleWork-
|
|
8042
|
+
lazyComponent: () => import("./ArticleWork-YUXD4J4o.js").then((module) => ({ default: module.DouyinArticleWork }))
|
|
7999
8043
|
});
|
|
8000
8044
|
case "favorite-list": return createComponentConfig(baseComponent, {
|
|
8001
8045
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8002
|
-
lazyComponent: () => import("./FavoriteList-
|
|
8046
|
+
lazyComponent: () => import("./FavoriteList-D0o5nbi4.js").then((module) => ({ default: module.DouyinFavoriteList }))
|
|
8003
8047
|
});
|
|
8004
8048
|
case "recommend-list": return createComponentConfig(baseComponent, {
|
|
8005
8049
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8006
|
-
lazyComponent: () => import("./RecommendList-
|
|
8050
|
+
lazyComponent: () => import("./RecommendList-CXiPOzIN.js").then((module) => ({ default: module.DouyinRecommendList }))
|
|
8007
8051
|
});
|
|
8008
8052
|
case "live": return createComponentConfig(baseComponent, {
|
|
8009
8053
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8010
|
-
lazyComponent: () => import("./Live-
|
|
8054
|
+
lazyComponent: () => import("./Live-CQP5OR8Y.js").then((module) => ({ default: module.DouyinLive }))
|
|
8011
8055
|
});
|
|
8012
8056
|
case "musicinfo": return createComponentConfig(baseComponent, {
|
|
8013
8057
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8014
|
-
lazyComponent: () => import("./MusicInfo-
|
|
8058
|
+
lazyComponent: () => import("./MusicInfo-zvwtog_A.js").then((module) => ({ default: module.DouyinMusicInfo }))
|
|
8015
8059
|
});
|
|
8016
|
-
case "user_profile": return createComponentConfig(baseComponent, { lazyComponent: () => import("./UserVideoList-
|
|
8060
|
+
case "user_profile": return createComponentConfig(baseComponent, { lazyComponent: () => import("./UserVideoList-DsfeY2HS.js").then((module) => ({ default: module.DouyinUserVideoList })) });
|
|
8017
8061
|
case "userlist": return createComponentConfig(baseComponent, {
|
|
8018
8062
|
validateData: (data) => data && Array.isArray(data.renderOpt),
|
|
8019
|
-
lazyComponent: () => import("./UserList-
|
|
8063
|
+
lazyComponent: () => import("./UserList-e7qGfWpS.js").then((module) => ({ default: module.default }))
|
|
8020
8064
|
});
|
|
8021
|
-
case "videoInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./videoInfo-
|
|
8022
|
-
case "qrcodeImg": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrcodeImg-
|
|
8065
|
+
case "videoInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./videoInfo-7t7_qNts.js").then((module) => ({ default: module.DouyinVideoInfo })) });
|
|
8066
|
+
case "qrcodeImg": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrcodeImg-COPQdgv8.js").then((module) => ({ default: module.DouyinQrcodeImg })) });
|
|
8023
8067
|
default: return createComponentConfig(baseComponent);
|
|
8024
8068
|
}
|
|
8025
8069
|
});
|
|
@@ -8029,42 +8073,42 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8029
8073
|
switch (baseComponent.id) {
|
|
8030
8074
|
case "comment": return createComponentConfig(baseComponent, {
|
|
8031
8075
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8032
|
-
lazyComponent: () => import("./Comment-
|
|
8076
|
+
lazyComponent: () => import("./Comment-W7yzE3V8.js").then((module) => ({ default: module.BilibiliComment }))
|
|
8033
8077
|
});
|
|
8034
8078
|
case "userlist": return createComponentConfig(baseComponent, {
|
|
8035
8079
|
validateData: (data) => data && Array.isArray(data.renderOpt),
|
|
8036
|
-
lazyComponent: () => import("./UserList-
|
|
8080
|
+
lazyComponent: () => import("./UserList-Dp-zNY4Z.js").then((module) => ({ default: module.default }))
|
|
8037
8081
|
});
|
|
8038
|
-
case "bangumi": return createComponentConfig(baseComponent, { lazyComponent: () => import("./bangumi-
|
|
8082
|
+
case "bangumi": return createComponentConfig(baseComponent, { lazyComponent: () => import("./bangumi-CXz3aPKE.js").then((module) => ({ default: module.default })) });
|
|
8039
8083
|
case "dynamic/DYNAMIC_TYPE_DRAW": return createComponentConfig(baseComponent, {
|
|
8040
8084
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8041
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_DRAW-
|
|
8085
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_DRAW-B0nRDWIR.js").then((module) => ({ default: module.BilibiliDrawDynamic }))
|
|
8042
8086
|
});
|
|
8043
8087
|
case "dynamic/DYNAMIC_TYPE_WORD": return createComponentConfig(baseComponent, {
|
|
8044
8088
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8045
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_WORD-
|
|
8089
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_WORD-BDutqdJU.js").then((module) => ({ default: module.BilibiliWordDynamic }))
|
|
8046
8090
|
});
|
|
8047
8091
|
case "dynamic/DYNAMIC_TYPE_AV": return createComponentConfig(baseComponent, {
|
|
8048
8092
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8049
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_AV-
|
|
8093
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_AV-9V_K1fEv.js").then((module) => ({ default: module.BilibiliVideoDynamic }))
|
|
8050
8094
|
});
|
|
8051
8095
|
case "dynamic/DYNAMIC_TYPE_FORWARD": return createComponentConfig(baseComponent, {
|
|
8052
8096
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8053
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_FORWARD-
|
|
8097
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_FORWARD-CQddwMwd.js").then((module) => ({ default: module.BilibiliForwardDynamic }))
|
|
8054
8098
|
});
|
|
8055
8099
|
case "dynamic/DYNAMIC_TYPE_LIVE_RCMD": return createComponentConfig(baseComponent, {
|
|
8056
8100
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8057
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_LIVE_RCMD-
|
|
8101
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_LIVE_RCMD-Bt_E88wL.js").then((module) => ({ default: module.BilibiliLiveDynamic }))
|
|
8058
8102
|
});
|
|
8059
8103
|
case "dynamic/DYNAMIC_TYPE_WORD": return createComponentConfig(baseComponent, { validateData: (data) => data && typeof data.share_url === "string" });
|
|
8060
|
-
case "dynamic/DYNAMIC_TYPE_ARTICLE": return createComponentConfig(baseComponent, { lazyComponent: () => import("./DYNAMIC_TYPE_ARTICLE-
|
|
8104
|
+
case "dynamic/DYNAMIC_TYPE_ARTICLE": return createComponentConfig(baseComponent, { lazyComponent: () => import("./DYNAMIC_TYPE_ARTICLE-C_yXdHL6.js").then((module) => ({ default: module.BilibiliArticleDynamic })) });
|
|
8061
8105
|
case "videoInfo": return createComponentConfig(baseComponent, {
|
|
8062
8106
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8063
|
-
lazyComponent: () => import("./videoInfo-
|
|
8107
|
+
lazyComponent: () => import("./videoInfo-CWzMOt6K.js").then((module) => ({ default: module.BilibiliVideoInfo }))
|
|
8064
8108
|
});
|
|
8065
8109
|
case "qrcodeImg": return createComponentConfig(baseComponent, {
|
|
8066
8110
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8067
|
-
lazyComponent: () => import("./qrcodeImg-
|
|
8111
|
+
lazyComponent: () => import("./qrcodeImg-C0mEIm5B.js").then((module) => ({ default: module.BilibiliQrcodeImg }))
|
|
8068
8112
|
});
|
|
8069
8113
|
default: return createComponentConfig(baseComponent);
|
|
8070
8114
|
}
|
|
@@ -8075,7 +8119,7 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8075
8119
|
switch (baseComponent.id) {
|
|
8076
8120
|
case "comment": return createComponentConfig(baseComponent, {
|
|
8077
8121
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8078
|
-
lazyComponent: () => import("./Comment-
|
|
8122
|
+
lazyComponent: () => import("./Comment-BlsGb0BJ.js").then((module) => ({ default: module.KuaishouComment }))
|
|
8079
8123
|
});
|
|
8080
8124
|
default: return createComponentConfig(baseComponent);
|
|
8081
8125
|
}
|
|
@@ -8084,8 +8128,8 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8084
8128
|
case PlatformType.XIAOHONGSHU:
|
|
8085
8129
|
platform.components = basePlatform.components.map((baseComponent) => {
|
|
8086
8130
|
switch (baseComponent.id) {
|
|
8087
|
-
case "noteInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./noteInfo-
|
|
8088
|
-
case "comment": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Comment-
|
|
8131
|
+
case "noteInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./noteInfo-DlLJJaxT.js").then((module) => ({ default: module.XiaohongshuNoteInfo })) });
|
|
8132
|
+
case "comment": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Comment-DAkBYEwQ.js").then((module) => ({ default: module.XiaohongshuComment })) });
|
|
8089
8133
|
default: return createComponentConfig(baseComponent);
|
|
8090
8134
|
}
|
|
8091
8135
|
});
|
|
@@ -8093,11 +8137,11 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8093
8137
|
case PlatformType.OTHER:
|
|
8094
8138
|
platform.components = basePlatform.components.map((baseComponent) => {
|
|
8095
8139
|
switch (baseComponent.id) {
|
|
8096
|
-
case "help": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Help-
|
|
8097
|
-
case "handlerError": return createComponentConfig(baseComponent, { lazyComponent: () => import("./handlerError-
|
|
8098
|
-
case "changelog": return createComponentConfig(baseComponent, { lazyComponent: () => import("./changelog-
|
|
8099
|
-
case "version_warning": return createComponentConfig(baseComponent, { lazyComponent: () => import("./VersionWarning-
|
|
8100
|
-
case "qrlogin": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrlogin-
|
|
8140
|
+
case "help": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Help-BX3TqQaQ.js").then((module) => ({ default: module.default })) });
|
|
8141
|
+
case "handlerError": return createComponentConfig(baseComponent, { lazyComponent: () => import("./handlerError-DIJznuvm.js").then((module) => ({ default: module.handlerError })) });
|
|
8142
|
+
case "changelog": return createComponentConfig(baseComponent, { lazyComponent: () => import("./changelog-icKPF2Vh.js").then((module) => ({ default: module.Changelog })) });
|
|
8143
|
+
case "version_warning": return createComponentConfig(baseComponent, { lazyComponent: () => import("./VersionWarning-mCbREKfz.js").then((module) => ({ default: module.VersionWarning })) });
|
|
8144
|
+
case "qrlogin": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrlogin-COaceLuZ.js").then((module) => ({ default: module.QrLogin })) });
|
|
8101
8145
|
default: return createComponentConfig(baseComponent);
|
|
8102
8146
|
}
|
|
8103
8147
|
});
|
|
@@ -8105,8 +8149,8 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8105
8149
|
case PlatformType.STATISTICS:
|
|
8106
8150
|
platform.components = basePlatform.components.map((baseComponent) => {
|
|
8107
8151
|
switch (baseComponent.id) {
|
|
8108
|
-
case "group": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GroupStatistics-
|
|
8109
|
-
case "global": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GlobalStatistics-
|
|
8152
|
+
case "group": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GroupStatistics-BppQCu9O.js").then((module) => ({ default: module.GroupStatistics })) });
|
|
8153
|
+
case "global": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GlobalStatistics-aqVNKMGM.js").then((module) => ({ default: module.GlobalStatistics })) });
|
|
8110
8154
|
default: return createComponentConfig(baseComponent);
|
|
8111
8155
|
}
|
|
8112
8156
|
});
|
|
@@ -8826,19 +8870,43 @@ var Render = async (event, path$1, data) => {
|
|
|
8826
8870
|
});
|
|
8827
8871
|
const ret = [];
|
|
8828
8872
|
const images = Array.isArray(renderResult) ? renderResult : [renderResult];
|
|
8873
|
+
const imageStats = [];
|
|
8829
8874
|
for (const image of images) {
|
|
8830
8875
|
const imageBuffer = Buffer.from(image, "base64");
|
|
8831
8876
|
const finalImageBuffer = embedWatermark(imageBuffer, JSON.stringify({
|
|
8832
8877
|
a: Date.now(),
|
|
8833
8878
|
b: `Generated by karin-plugin-kkk v${Root.pluginVersion}, with source code open-sourced under the GPL-3.0 license`,
|
|
8834
|
-
c: `Sent by ${event
|
|
8879
|
+
c: `Sent by ${event?.bot?.account.selfId ?? "unknown"}|${event?.bot?.account.name ?? "unknown"}`
|
|
8835
8880
|
})) ?? imageBuffer;
|
|
8836
|
-
const
|
|
8837
|
-
|
|
8881
|
+
const metadata = getImageMetadata(finalImageBuffer);
|
|
8882
|
+
const dimensions = metadata.width && metadata.height ? `${metadata.width}x${metadata.height}` : "unknown";
|
|
8883
|
+
imageStats.push({
|
|
8884
|
+
index: ret.length,
|
|
8885
|
+
type: "png",
|
|
8886
|
+
sizeMb: (finalImageBuffer.length / (1024 * 1024)).toFixed(3),
|
|
8887
|
+
dimensions
|
|
8888
|
+
});
|
|
8838
8889
|
ret.push(segment.image("base64://" + finalImageBuffer.toString("base64")));
|
|
8839
8890
|
}
|
|
8891
|
+
logger.debug(`[Render] 图片处理完成,准备入队发送: ${JSON.stringify(imageStats)}`);
|
|
8840
8892
|
return ret;
|
|
8841
8893
|
};
|
|
8894
|
+
var getImageMetadata = (buffer) => {
|
|
8895
|
+
if (buffer.length >= 24 && buffer.subarray(0, 8).equals(Buffer.from([
|
|
8896
|
+
137,
|
|
8897
|
+
80,
|
|
8898
|
+
78,
|
|
8899
|
+
71,
|
|
8900
|
+
13,
|
|
8901
|
+
10,
|
|
8902
|
+
26,
|
|
8903
|
+
10
|
|
8904
|
+
]))) return {
|
|
8905
|
+
width: buffer.readUInt32BE(16),
|
|
8906
|
+
height: buffer.readUInt32BE(20)
|
|
8907
|
+
};
|
|
8908
|
+
return {};
|
|
8909
|
+
};
|
|
8842
8910
|
var BilibiliDBBase = class {
|
|
8843
8911
|
db;
|
|
8844
8912
|
dbPath;
|
|
@@ -11138,7 +11206,7 @@ var DouyinWeb = (all) => [components.accordion.create("douyin", {
|
|
|
11138
11206
|
value: "download"
|
|
11139
11207
|
})]
|
|
11140
11208
|
}),
|
|
11141
|
-
components.radio.group("
|
|
11209
|
+
components.radio.group("push:pushVideoQuality", {
|
|
11142
11210
|
label: "画质偏好",
|
|
11143
11211
|
description: "推送解析时解析视频的分辨率偏好。",
|
|
11144
11212
|
orientation: "horizontal",
|
|
@@ -11146,34 +11214,34 @@ var DouyinWeb = (all) => [components.accordion.create("douyin", {
|
|
|
11146
11214
|
isDisabled: !all.douyin.push.switch,
|
|
11147
11215
|
color: "warning",
|
|
11148
11216
|
radio: [
|
|
11149
|
-
components.radio.create("
|
|
11217
|
+
components.radio.create("push:pushVideoQuality:radio-1", {
|
|
11150
11218
|
label: "自动选择",
|
|
11151
11219
|
value: "adapt",
|
|
11152
11220
|
description: "根据「视频体积上限(MB)」自动选择分辨率进行下载"
|
|
11153
11221
|
}),
|
|
11154
|
-
components.radio.create("
|
|
11222
|
+
components.radio.create("push:pushVideoQuality:radio-2", {
|
|
11155
11223
|
label: "标清 540p",
|
|
11156
11224
|
value: "540p"
|
|
11157
11225
|
}),
|
|
11158
|
-
components.radio.create("
|
|
11226
|
+
components.radio.create("push:pushVideoQuality:radio-3", {
|
|
11159
11227
|
label: "高清 720p",
|
|
11160
11228
|
value: "720p"
|
|
11161
11229
|
}),
|
|
11162
|
-
components.radio.create("
|
|
11230
|
+
components.radio.create("push:pushVideoQuality:radio-4", {
|
|
11163
11231
|
label: "高清 1080p",
|
|
11164
11232
|
value: "1080p"
|
|
11165
11233
|
}),
|
|
11166
|
-
components.radio.create("
|
|
11234
|
+
components.radio.create("push:pushVideoQuality:radio-5", {
|
|
11167
11235
|
label: "超清 2k",
|
|
11168
11236
|
value: "2k"
|
|
11169
11237
|
}),
|
|
11170
|
-
components.radio.create("
|
|
11238
|
+
components.radio.create("push:pushVideoQuality:radio-6", {
|
|
11171
11239
|
label: "超清 4k",
|
|
11172
11240
|
value: "4k"
|
|
11173
11241
|
})
|
|
11174
11242
|
]
|
|
11175
11243
|
}),
|
|
11176
|
-
components.input.number("
|
|
11244
|
+
components.input.number("push:pushMaxAutoVideoSize", {
|
|
11177
11245
|
label: "视频体积上限(MB)",
|
|
11178
11246
|
color: "warning",
|
|
11179
11247
|
description: "推送解析时根据该值自动选择分辨率进行下载。仅在「画质偏好」 为 \"自动选择\" 时生效",
|
|
@@ -12293,6 +12361,49 @@ var renderErrorImage = async (ctx, opts = {}) => {
|
|
|
12293
12361
|
share_url: opts.share_url
|
|
12294
12362
|
});
|
|
12295
12363
|
};
|
|
12364
|
+
var getCandidateBots = () => karin$1.getAllBotList().map((item) => item.bot).filter((bot) => bot.account.name !== "console");
|
|
12365
|
+
var getNonConsoleMasters = (masters = config.master()) => masters.filter((id) => id !== "console");
|
|
12366
|
+
var getReachableMasterBots = async (masters = config.master()) => {
|
|
12367
|
+
const owners = getNonConsoleMasters(masters);
|
|
12368
|
+
if (owners.length === 0) return [];
|
|
12369
|
+
const bots = getCandidateBots();
|
|
12370
|
+
if (bots.length === 0) return [];
|
|
12371
|
+
const friendsMap = /* @__PURE__ */ new Map();
|
|
12372
|
+
await Promise.all(bots.map(async (bot) => {
|
|
12373
|
+
try {
|
|
12374
|
+
const list = await bot.getFriendList();
|
|
12375
|
+
friendsMap.set(bot.account.selfId, Array.isArray(list) ? list : []);
|
|
12376
|
+
} catch {
|
|
12377
|
+
friendsMap.set(bot.account.selfId, []);
|
|
12378
|
+
}
|
|
12379
|
+
}));
|
|
12380
|
+
const result = [];
|
|
12381
|
+
for (const master of owners) {
|
|
12382
|
+
const matchedBot = bots.find((bot) => (friendsMap.get(bot.account.selfId) || []).some((friend) => friend.userId === master));
|
|
12383
|
+
if (matchedBot) result.push({
|
|
12384
|
+
master,
|
|
12385
|
+
bot: matchedBot
|
|
12386
|
+
});
|
|
12387
|
+
}
|
|
12388
|
+
return result;
|
|
12389
|
+
};
|
|
12390
|
+
var resolveUsableBot = async (selfId) => {
|
|
12391
|
+
if (selfId) {
|
|
12392
|
+
const matchedBot = karin$1.getBot(selfId);
|
|
12393
|
+
if (matchedBot) return matchedBot;
|
|
12394
|
+
}
|
|
12395
|
+
const reachable = await getReachableMasterBots();
|
|
12396
|
+
if (reachable.length > 0) return reachable[0].bot;
|
|
12397
|
+
const { douyin, bilibili } = statBotId$1(Config.pushlist);
|
|
12398
|
+
const preferredBotId = douyin.botId || bilibili.botId;
|
|
12399
|
+
if (preferredBotId) {
|
|
12400
|
+
const matchedBot = karin$1.getBot(preferredBotId);
|
|
12401
|
+
if (matchedBot) return matchedBot;
|
|
12402
|
+
}
|
|
12403
|
+
const fallbackBotId = karin$1.getAllBotID()[0];
|
|
12404
|
+
if (!fallbackBotId) return void 0;
|
|
12405
|
+
return karin$1.getBot(fallbackBotId);
|
|
12406
|
+
};
|
|
12296
12407
|
var parseLogsToStructured = (logs) => {
|
|
12297
12408
|
const logRegex = /\[(\d{2}:\d{2}:\d{2}\.\d{3})\]\[([A-Z]{4})\]\s(.+)/s;
|
|
12298
12409
|
return logs.map((log) => {
|
|
@@ -12324,6 +12435,17 @@ var getPushTaskBotId = () => {
|
|
|
12324
12435
|
const ids = statBotId(Config.pushlist);
|
|
12325
12436
|
return ids.douyin.botId || ids.bilibili.botId;
|
|
12326
12437
|
};
|
|
12438
|
+
var injectBotToEventForPushTask = async (event, businessName) => {
|
|
12439
|
+
if (!isPushTask(event, businessName)) return event;
|
|
12440
|
+
if (event?.bot) return event;
|
|
12441
|
+
const preferredBotId = typeof event?.selfId === "string" ? event.selfId : getPushTaskBotId();
|
|
12442
|
+
const bot = (preferredBotId ? karin$1.getBot(preferredBotId) : void 0) ?? await resolveUsableBot(preferredBotId);
|
|
12443
|
+
if (!bot) throw new Error(`[ErrorHandler] push 任务缺少可用 bot 实例: ${businessName}`);
|
|
12444
|
+
const normalizedEvent = event ?? {};
|
|
12445
|
+
normalizedEvent.bot = bot;
|
|
12446
|
+
normalizedEvent.selfId = normalizedEvent.selfId ?? bot.account.selfId;
|
|
12447
|
+
return normalizedEvent;
|
|
12448
|
+
};
|
|
12327
12449
|
var sendErrorToTrigger = async (ctx, img) => {
|
|
12328
12450
|
const { event } = ctx;
|
|
12329
12451
|
if (!event) return;
|
|
@@ -12331,20 +12453,18 @@ var sendErrorToTrigger = async (ctx, img) => {
|
|
|
12331
12453
|
try {
|
|
12332
12454
|
await event.reply(img);
|
|
12333
12455
|
} catch (err) {
|
|
12334
|
-
logger.error(`[ErrorHandler]
|
|
12456
|
+
logger.error(`[ErrorHandler] 发送错误消息给触发者失败: ${err}`);
|
|
12335
12457
|
}
|
|
12336
12458
|
};
|
|
12337
12459
|
var sendErrorToMaster = async (ctx, img, customPrefix) => {
|
|
12338
12460
|
const { options, event } = ctx;
|
|
12339
12461
|
if (!Config.app.errorLogSendTo.some((item) => item === "master")) return;
|
|
12340
|
-
const list = config.master();
|
|
12341
|
-
const master = list[0] === "console" ? list[1] : list[0];
|
|
12342
12462
|
const isPush = isPushTask(event, options.businessName);
|
|
12343
|
-
const
|
|
12344
|
-
if (!
|
|
12463
|
+
const target = await resolveSingleMasterTarget(event, isPush);
|
|
12464
|
+
if (!target) return;
|
|
12345
12465
|
try {
|
|
12346
|
-
const prefix = customPrefix || await buildErrorPrefix(ctx, isPush, botId);
|
|
12347
|
-
await karin$1.sendMaster(botId, master, [segment.text(prefix), ...img]);
|
|
12466
|
+
const prefix = customPrefix || await buildErrorPrefix(ctx, isPush, target.botId);
|
|
12467
|
+
await karin$1.sendMaster(target.botId, target.master, [segment.text(prefix), ...img]);
|
|
12348
12468
|
} catch (err) {
|
|
12349
12469
|
logger.error(`[ErrorHandler] 发送错误消息给主人失败: ${err}`);
|
|
12350
12470
|
}
|
|
@@ -12352,30 +12472,59 @@ var sendErrorToMaster = async (ctx, img, customPrefix) => {
|
|
|
12352
12472
|
var sendErrorToAllMasters = async (ctx, img, customPrefix) => {
|
|
12353
12473
|
const { options, event } = ctx;
|
|
12354
12474
|
if (!Config.app.errorLogSendTo.some((item) => item === "allMasters")) return;
|
|
12355
|
-
const masters = config.master().filter((m) => m !== "console");
|
|
12356
|
-
if (masters.length === 0) return;
|
|
12357
12475
|
const isPush = isPushTask(event, options.businessName);
|
|
12358
|
-
const
|
|
12359
|
-
if (
|
|
12360
|
-
const prefix = customPrefix || await buildErrorPrefix(ctx, isPush, botId);
|
|
12476
|
+
const targets = await resolveAllMasterTargets(event, isPush);
|
|
12477
|
+
if (targets.length === 0) return;
|
|
12478
|
+
const prefix = customPrefix || await buildErrorPrefix(ctx, isPush, targets[0].botId);
|
|
12361
12479
|
const notifiedSet = /* @__PURE__ */ new Set();
|
|
12362
|
-
for (const
|
|
12363
|
-
const key = `${botId}:${master}`;
|
|
12480
|
+
for (const target of targets) {
|
|
12481
|
+
const key = `${target.botId}:${target.master}`;
|
|
12364
12482
|
if (notifiedSet.has(key)) continue;
|
|
12365
12483
|
try {
|
|
12366
|
-
await karin$1.sendMaster(botId, master, [segment.text(prefix), ...img]);
|
|
12484
|
+
await karin$1.sendMaster(target.botId, target.master, [segment.text(prefix), ...img]);
|
|
12367
12485
|
notifiedSet.add(key);
|
|
12368
|
-
logger.debug(`[ErrorHandler] 已发送错误消息给主人: ${master} (via ${botId})`);
|
|
12486
|
+
logger.debug(`[ErrorHandler] 已发送错误消息给主人: ${target.master} (via ${target.botId})`);
|
|
12369
12487
|
} catch (err) {
|
|
12370
|
-
logger.error(`[ErrorHandler] 发送错误消息给主人 (${master}) 失败: ${err}`);
|
|
12488
|
+
logger.error(`[ErrorHandler] 发送错误消息给主人 (${target.master}) 失败: ${err}`);
|
|
12371
12489
|
}
|
|
12372
12490
|
}
|
|
12373
12491
|
};
|
|
12492
|
+
var resolveSingleMasterTarget = async (event, isPush) => {
|
|
12493
|
+
if (isPush) {
|
|
12494
|
+
const matched = (await getReachableMasterBots())[0];
|
|
12495
|
+
if (!matched) return void 0;
|
|
12496
|
+
return {
|
|
12497
|
+
master: matched.master,
|
|
12498
|
+
botId: matched.bot.account.selfId
|
|
12499
|
+
};
|
|
12500
|
+
}
|
|
12501
|
+
const master = config.master().find((item) => item !== "console");
|
|
12502
|
+
const botId = event?.bot?.account.selfId ?? event?.selfId;
|
|
12503
|
+
if (!master || !botId) return void 0;
|
|
12504
|
+
return {
|
|
12505
|
+
master,
|
|
12506
|
+
botId
|
|
12507
|
+
};
|
|
12508
|
+
};
|
|
12509
|
+
var resolveAllMasterTargets = async (event, isPush) => {
|
|
12510
|
+
const masters = config.master().filter((item) => item !== "console");
|
|
12511
|
+
if (masters.length === 0) return [];
|
|
12512
|
+
if (isPush) return (await getReachableMasterBots(masters)).map((item) => ({
|
|
12513
|
+
master: item.master,
|
|
12514
|
+
botId: item.bot.account.selfId
|
|
12515
|
+
}));
|
|
12516
|
+
const botId = event?.bot?.account.selfId ?? event?.selfId;
|
|
12517
|
+
if (!botId) return [];
|
|
12518
|
+
return masters.map((master) => ({
|
|
12519
|
+
master,
|
|
12520
|
+
botId
|
|
12521
|
+
}));
|
|
12522
|
+
};
|
|
12374
12523
|
var buildErrorPrefix = async (ctx, isPush, botId) => {
|
|
12375
12524
|
const { options, event } = ctx;
|
|
12376
|
-
if (isPush) return `${options.businessName}
|
|
12525
|
+
if (isPush) return `${options.businessName} 任务执行出错\n请尽快解决以消除警告`;
|
|
12377
12526
|
const groupId = event && "groupId" in event ? event.groupId : "";
|
|
12378
|
-
return `群:${(await karin$1.getBot(botId)?.getGroupInfo(groupId))?.groupName || "未知"}(${groupId})\n${options.businessName}
|
|
12527
|
+
return `群:${(await karin$1.getBot(botId)?.getGroupInfo(groupId))?.groupName || "未知"}(${groupId})\n${options.businessName} 任务执行出错\n请尽快解决以消除警告`;
|
|
12379
12528
|
};
|
|
12380
12529
|
var handleBusinessError = async (error, options, logs, event) => {
|
|
12381
12530
|
try {
|
|
@@ -12413,7 +12562,9 @@ var handleBusinessError = async (error, options, logs, event) => {
|
|
|
12413
12562
|
}
|
|
12414
12563
|
};
|
|
12415
12564
|
var wrapWithErrorHandler = (fn, options) => async (e, next) => {
|
|
12416
|
-
const
|
|
12565
|
+
const rawEvent = e;
|
|
12566
|
+
const normalizedEvent = await injectBotToEventForPushTask(rawEvent, options.businessName);
|
|
12567
|
+
const emojiManager = Boolean(rawEvent) && !isPushTask(rawEvent, options.businessName) ? new EmojiReactionManager(rawEvent) : void 0;
|
|
12417
12568
|
let processingTimer = null;
|
|
12418
12569
|
let successTimer = null;
|
|
12419
12570
|
if (emojiManager) {
|
|
@@ -12422,7 +12573,7 @@ var wrapWithErrorHandler = (fn, options) => async (e, next) => {
|
|
|
12422
12573
|
emojiManager.add("PROCESSING").catch(() => {});
|
|
12423
12574
|
}, 1500);
|
|
12424
12575
|
}
|
|
12425
|
-
const ctx = logger.runContext(async () => fn(
|
|
12576
|
+
const ctx = logger.runContext(async () => fn(normalizedEvent, next));
|
|
12426
12577
|
try {
|
|
12427
12578
|
const result = await ctx.run();
|
|
12428
12579
|
if (emojiManager) successTimer = setTimeout(() => {
|
|
@@ -12438,7 +12589,7 @@ var wrapWithErrorHandler = (fn, options) => async (e, next) => {
|
|
|
12438
12589
|
await emojiManager.add("ERROR");
|
|
12439
12590
|
}
|
|
12440
12591
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
12441
|
-
if (await handleBusinessError(error, options, parseLogsToStructured(ctx.logs()),
|
|
12592
|
+
if (await handleBusinessError(error, options, parseLogsToStructured(ctx.logs()), normalizedEvent) === "handled") return void 0;
|
|
12442
12593
|
throw error;
|
|
12443
12594
|
}
|
|
12444
12595
|
};
|
|
@@ -15823,7 +15974,7 @@ async function burnDouyinDanmaku(videoPath, danmakuList, outputPath, options = {
|
|
|
15823
15974
|
}
|
|
15824
15975
|
var mp4size = "";
|
|
15825
15976
|
var img;
|
|
15826
|
-
var DouYin = class extends Base {
|
|
15977
|
+
var DouYin = class DouYin extends Base {
|
|
15827
15978
|
e;
|
|
15828
15979
|
type;
|
|
15829
15980
|
is_slides;
|
|
@@ -16409,7 +16560,7 @@ var DouYin = class extends Base {
|
|
|
16409
16560
|
sec_uid: data.sec_uid,
|
|
16410
16561
|
typeMode: "strict"
|
|
16411
16562
|
})).data.user;
|
|
16412
|
-
const
|
|
16563
|
+
const displayVideos = rawData.data.aweme_list.map((aweme, index) => {
|
|
16413
16564
|
const isVideo = aweme.aweme_type === 0 || aweme.media_type === 0;
|
|
16414
16565
|
return {
|
|
16415
16566
|
aweme_id: aweme.aweme_id,
|
|
@@ -16425,12 +16576,14 @@ var DouYin = class extends Base {
|
|
|
16425
16576
|
collect_count: aweme.statistics.collect_count
|
|
16426
16577
|
},
|
|
16427
16578
|
is_video: isVideo,
|
|
16579
|
+
index: index + 1,
|
|
16428
16580
|
music: aweme.music ? {
|
|
16429
16581
|
title: aweme.music.title || "",
|
|
16430
16582
|
author: aweme.music.author || ""
|
|
16431
16583
|
} : void 0
|
|
16432
16584
|
};
|
|
16433
|
-
});
|
|
16585
|
+
}).slice(0, 16);
|
|
16586
|
+
const timeoutSeconds = 120;
|
|
16434
16587
|
const img = await Render(this.e, "douyin/user_profile", {
|
|
16435
16588
|
user: {
|
|
16436
16589
|
head_image: user.cover_and_head_image_info.profile_cover_list.length > 0 ? user.cover_and_head_image_info.profile_cover_list[0].cover_url?.url_list[0] || null : null,
|
|
@@ -16444,9 +16597,24 @@ var DouYin = class extends Base {
|
|
|
16444
16597
|
verified: !!user.custom_verify || !!user.enterprise_verify_reason,
|
|
16445
16598
|
ip_location: user.ip_location
|
|
16446
16599
|
},
|
|
16447
|
-
videos:
|
|
16600
|
+
videos: displayVideos,
|
|
16601
|
+
timeoutSeconds
|
|
16448
16602
|
});
|
|
16449
|
-
this.e.reply(img);
|
|
16603
|
+
await this.e.reply(img);
|
|
16604
|
+
const context = await karin$1.ctx(this.e, {
|
|
16605
|
+
reply: true,
|
|
16606
|
+
time: timeoutSeconds
|
|
16607
|
+
});
|
|
16608
|
+
if (context) {
|
|
16609
|
+
const num = parseInt(context.msg.trim());
|
|
16610
|
+
if (!isNaN(num) && num >= 1 && num <= displayVideos.length) {
|
|
16611
|
+
const targetData = {
|
|
16612
|
+
type: "one_work",
|
|
16613
|
+
aweme_id: displayVideos[num - 1].aweme_id
|
|
16614
|
+
};
|
|
16615
|
+
await new DouYin(context, targetData).DouyinHandler(targetData);
|
|
16616
|
+
}
|
|
16617
|
+
}
|
|
16450
16618
|
return true;
|
|
16451
16619
|
}
|
|
16452
16620
|
case "music_work": {
|
|
@@ -23038,26 +23206,6 @@ var GlowImage = ({ src, children, alt, className, imgClassName, mode = "blur-lay
|
|
|
23038
23206
|
})]
|
|
23039
23207
|
});
|
|
23040
23208
|
};
|
|
23041
|
-
var GlowText = ({ children, className, glowClassName, blurRadius = 12, glowStrength = .6, scale = 1.02 }) => (0, import_jsx_runtime.jsxs)("span", {
|
|
23042
|
-
className,
|
|
23043
|
-
style: {
|
|
23044
|
-
position: "relative",
|
|
23045
|
-
display: "inline-block"
|
|
23046
|
-
},
|
|
23047
|
-
children: [(0, import_jsx_runtime.jsx)("span", {
|
|
23048
|
-
"aria-hidden": "true",
|
|
23049
|
-
className: glowClassName,
|
|
23050
|
-
style: {
|
|
23051
|
-
position: "absolute",
|
|
23052
|
-
inset: 0,
|
|
23053
|
-
transform: `scale(${scale})`,
|
|
23054
|
-
filter: `blur(${blurRadius}px) saturate(1.1)`,
|
|
23055
|
-
opacity: glowStrength,
|
|
23056
|
-
pointerEvents: "none"
|
|
23057
|
-
},
|
|
23058
|
-
children
|
|
23059
|
-
}), (0, import_jsx_runtime.jsx)("span", { children })]
|
|
23060
|
-
});
|
|
23061
23209
|
var RolldownLogo = ({ className = "w-auto h-10" }) => (0, import_jsx_runtime.jsxs)("svg", {
|
|
23062
23210
|
viewBox: "0 0 177 15",
|
|
23063
23211
|
fill: "none",
|
|
@@ -30488,11 +30636,7 @@ var formatDuration$1 = (milliseconds) => {
|
|
|
30488
30636
|
return `${Math.floor(seconds / 60)}:${(seconds % 60).toString().padStart(2, "0")}`;
|
|
30489
30637
|
};
|
|
30490
30638
|
var VideoCard = ({ video }) => {
|
|
30491
|
-
const [titleLineCount, setTitleLineCount] = import_react.useState(2);
|
|
30492
30639
|
const titleRef = import_react.useRef(null);
|
|
30493
|
-
import_react.useEffect(() => {
|
|
30494
|
-
if (titleRef.current) setTitleLineCount(Math.ceil(titleRef.current.clientHeight / parseInt(window.getComputedStyle(titleRef.current).lineHeight)));
|
|
30495
|
-
}, [video.title]);
|
|
30496
30640
|
return (0, import_jsx_runtime.jsxs)("div", {
|
|
30497
30641
|
className: "bg-default-100 rounded-3xl overflow-hidden flex flex-col h-full",
|
|
30498
30642
|
children: [(0, import_jsx_runtime.jsxs)("div", {
|
|
@@ -30504,14 +30648,18 @@ var VideoCard = ({ video }) => {
|
|
|
30504
30648
|
alt: video.title,
|
|
30505
30649
|
className: "w-full h-full object-cover"
|
|
30506
30650
|
}),
|
|
30651
|
+
video.index && (0, import_jsx_runtime.jsx)("div", {
|
|
30652
|
+
className: "absolute top-4 left-4 px-6 py-4 rounded-2xl text-4xl font-bold bg-black/40 text-white backdrop-blur-md shadow-lg border border-white/10 z-10",
|
|
30653
|
+
children: video.index
|
|
30654
|
+
}),
|
|
30507
30655
|
(0, import_jsx_runtime.jsxs)("div", {
|
|
30508
30656
|
className: "absolute top-4 right-4 flex flex-col gap-2",
|
|
30509
|
-
children: [(0, import_jsx_runtime.
|
|
30510
|
-
className: "px-6 py-4 rounded-2xl text-4xl bg-white/50 text-black backdrop-blur-xs shadow-lg",
|
|
30511
|
-
children: video.is_video ? "视频" : "图集"
|
|
30512
|
-
}), video.is_top && (0, import_jsx_runtime.
|
|
30513
|
-
className: "px-6 py-4 rounded-2xl text-4xl bg-warning-500 text-black backdrop-blur-xs shadow-lg",
|
|
30514
|
-
children: "置顶"
|
|
30657
|
+
children: [(0, import_jsx_runtime.jsxs)("div", {
|
|
30658
|
+
className: "px-6 py-4 rounded-2xl text-4xl bg-white/50 text-black backdrop-blur-xs shadow-lg flex items-center gap-2",
|
|
30659
|
+
children: [video.is_video ? (0, import_jsx_runtime.jsx)(AiOutlineVideoCamera, {}) : (0, import_jsx_runtime.jsx)(BsImage, {}), (0, import_jsx_runtime.jsx)("span", { children: video.is_video ? "视频" : "图集" })]
|
|
30660
|
+
}), video.is_top && (0, import_jsx_runtime.jsxs)("div", {
|
|
30661
|
+
className: "px-6 py-4 rounded-2xl text-4xl bg-warning-500 text-black backdrop-blur-xs shadow-lg flex items-center gap-2",
|
|
30662
|
+
children: [(0, import_jsx_runtime.jsx)(AiFillPushpin, {}), (0, import_jsx_runtime.jsx)("span", { children: "置顶" })]
|
|
30515
30663
|
})]
|
|
30516
30664
|
}),
|
|
30517
30665
|
video.is_video && (0, import_jsx_runtime.jsx)("div", {
|
|
@@ -30520,7 +30668,7 @@ var VideoCard = ({ video }) => {
|
|
|
30520
30668
|
}),
|
|
30521
30669
|
video.music && (0, import_jsx_runtime.jsxs)("div", {
|
|
30522
30670
|
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",
|
|
30523
|
-
children: [(0, import_jsx_runtime.jsx)(
|
|
30671
|
+
children: [(0, import_jsx_runtime.jsx)(FaMusic, {}), (0, import_jsx_runtime.jsx)("span", {
|
|
30524
30672
|
className: "max-w-80 truncate",
|
|
30525
30673
|
children: video.music.title
|
|
30526
30674
|
})]
|
|
@@ -30542,7 +30690,7 @@ var VideoCard = ({ video }) => {
|
|
|
30542
30690
|
})
|
|
30543
30691
|
}),
|
|
30544
30692
|
(0, import_jsx_runtime.jsx)("div", {
|
|
30545
|
-
className:
|
|
30693
|
+
className: "mt-auto",
|
|
30546
30694
|
children: (0, import_jsx_runtime.jsxs)("div", {
|
|
30547
30695
|
className: "grid grid-cols-2 gap-3 text-3xl",
|
|
30548
30696
|
children: [
|
|
@@ -30582,73 +30730,124 @@ var DouyinUserVideoList = (prpos) => (0, import_jsx_runtime.jsxs)(DefaultLayout,
|
|
|
30582
30730
|
className: "flex justify-center",
|
|
30583
30731
|
children: (0, import_jsx_runtime.jsxs)("div", {
|
|
30584
30732
|
className: "px-20",
|
|
30585
|
-
children: [
|
|
30586
|
-
|
|
30587
|
-
|
|
30588
|
-
|
|
30589
|
-
|
|
30590
|
-
|
|
30591
|
-
|
|
30592
|
-
|
|
30593
|
-
|
|
30594
|
-
|
|
30595
|
-
|
|
30596
|
-
|
|
30597
|
-
|
|
30598
|
-
|
|
30599
|
-
|
|
30600
|
-
|
|
30601
|
-
|
|
30602
|
-
className: "text-
|
|
30603
|
-
|
|
30604
|
-
|
|
30605
|
-
|
|
30606
|
-
|
|
30607
|
-
|
|
30608
|
-
|
|
30609
|
-
|
|
30610
|
-
|
|
30611
|
-
|
|
30612
|
-
|
|
30613
|
-
|
|
30614
|
-
className: "
|
|
30615
|
-
children:
|
|
30616
|
-
|
|
30617
|
-
|
|
30618
|
-
|
|
30619
|
-
|
|
30620
|
-
|
|
30621
|
-
|
|
30622
|
-
|
|
30623
|
-
|
|
30624
|
-
|
|
30625
|
-
|
|
30626
|
-
|
|
30627
|
-
|
|
30628
|
-
|
|
30629
|
-
|
|
30630
|
-
|
|
30631
|
-
|
|
30632
|
-
|
|
30633
|
-
|
|
30634
|
-
|
|
30635
|
-
|
|
30636
|
-
|
|
30733
|
+
children: [
|
|
30734
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
30735
|
+
className: `bg-default-100/60 backdrop-blur-xl mb-30 rounded-4xl p-10 relative ${prpos.data.user.head_image ? "-mt-170" : "mt-35"}`,
|
|
30736
|
+
children: [(0, import_jsx_runtime.jsxs)("div", {
|
|
30737
|
+
className: "flex items-start gap-8 pb-8 border-b border-default-200 mb-8",
|
|
30738
|
+
children: [(0, import_jsx_runtime.jsx)("img", {
|
|
30739
|
+
src: prpos.data.user.avatar,
|
|
30740
|
+
alt: prpos.data.user.nickname,
|
|
30741
|
+
className: "w-45 h-auto rounded-2xl object-cover shrink-0"
|
|
30742
|
+
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
30743
|
+
className: "flex-1",
|
|
30744
|
+
children: [
|
|
30745
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
30746
|
+
className: "flex items-center gap-3 mb-4",
|
|
30747
|
+
children: [(0, import_jsx_runtime.jsx)("h1", {
|
|
30748
|
+
className: "text-6xl font-bold text-default-900",
|
|
30749
|
+
children: prpos.data.user.nickname
|
|
30750
|
+
}), prpos.data.user.verified && (0, import_jsx_runtime.jsx)(RiVerifiedBadgeFill, { className: "text-5xl text-primary-500" })]
|
|
30751
|
+
}),
|
|
30752
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
30753
|
+
className: "flex gap-6 mb-6 text-2xl text-default-500",
|
|
30754
|
+
children: [(0, import_jsx_runtime.jsxs)("span", {
|
|
30755
|
+
className: "flex items-center gap-2",
|
|
30756
|
+
children: [
|
|
30757
|
+
(0, import_jsx_runtime.jsx)(FaTiktok, {}),
|
|
30758
|
+
" 抖音号:",
|
|
30759
|
+
prpos.data.user.short_id
|
|
30760
|
+
]
|
|
30761
|
+
}), prpos.data.user.ip_location && (0, import_jsx_runtime.jsxs)("span", {
|
|
30762
|
+
className: "flex items-center gap-1",
|
|
30763
|
+
children: [
|
|
30764
|
+
(0, import_jsx_runtime.jsx)(MdLocationOn, { className: "text-3xl" }),
|
|
30765
|
+
" ",
|
|
30766
|
+
prpos.data.user.ip_location
|
|
30767
|
+
]
|
|
30768
|
+
})]
|
|
30769
|
+
}),
|
|
30770
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
30771
|
+
className: "flex gap-8 text-3xl",
|
|
30772
|
+
children: [
|
|
30773
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
30774
|
+
className: "flex items-center gap-2",
|
|
30775
|
+
children: [
|
|
30776
|
+
(0, import_jsx_runtime.jsx)(RiUserFollowLine, { className: "text-default-500" }),
|
|
30777
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
30778
|
+
className: "text-default-500",
|
|
30779
|
+
children: "关注"
|
|
30780
|
+
}),
|
|
30781
|
+
(0, import_jsx_runtime.jsxs)("span", {
|
|
30782
|
+
className: "font-medium text-4xl text-default-900",
|
|
30783
|
+
children: [" ", formatCount(prpos.data.user.following_count)]
|
|
30784
|
+
})
|
|
30785
|
+
]
|
|
30786
|
+
}),
|
|
30787
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
30788
|
+
className: "flex items-center gap-2",
|
|
30789
|
+
children: [
|
|
30790
|
+
(0, import_jsx_runtime.jsx)(FaUserGroup, { className: "text-default-500" }),
|
|
30791
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
30792
|
+
className: "text-default-500",
|
|
30793
|
+
children: "粉丝"
|
|
30794
|
+
}),
|
|
30795
|
+
(0, import_jsx_runtime.jsxs)("span", {
|
|
30796
|
+
className: "font-medium text-4xl text-default-900",
|
|
30797
|
+
children: [" ", formatCount(prpos.data.user.follower_count)]
|
|
30798
|
+
})
|
|
30799
|
+
]
|
|
30800
|
+
}),
|
|
30801
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
30802
|
+
className: "flex items-center gap-2",
|
|
30803
|
+
children: [
|
|
30804
|
+
(0, import_jsx_runtime.jsx)(AiFillHeart, { className: "text-default-500" }),
|
|
30805
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
30806
|
+
className: "text-default-500",
|
|
30807
|
+
children: "获赞"
|
|
30808
|
+
}),
|
|
30809
|
+
(0, import_jsx_runtime.jsxs)("span", {
|
|
30810
|
+
className: "font-medium text-4xl text-default-900",
|
|
30811
|
+
children: [" ", formatCount(prpos.data.user.total_favorited)]
|
|
30812
|
+
})
|
|
30813
|
+
]
|
|
30814
|
+
})
|
|
30815
|
+
]
|
|
30816
|
+
})
|
|
30817
|
+
]
|
|
30818
|
+
})]
|
|
30819
|
+
}), (0, import_jsx_runtime.jsx)("p", {
|
|
30820
|
+
className: "text-3xl text-default-700 line-clamp-3",
|
|
30821
|
+
children: prpos.data.user.signature || "这个用户很懒,还没有签名"
|
|
30637
30822
|
})]
|
|
30638
|
-
}),
|
|
30639
|
-
|
|
30640
|
-
|
|
30641
|
-
|
|
30642
|
-
|
|
30643
|
-
|
|
30644
|
-
|
|
30645
|
-
|
|
30646
|
-
|
|
30647
|
-
|
|
30648
|
-
|
|
30649
|
-
|
|
30823
|
+
}),
|
|
30824
|
+
prpos.data.timeoutSeconds && (0, import_jsx_runtime.jsx)("div", {
|
|
30825
|
+
className: "bg-default-100/60 backdrop-blur-xl mb-8 rounded-4xl p-6 border border-default-200/50 shadow-sm flex justify-center items-center",
|
|
30826
|
+
children: (0, import_jsx_runtime.jsxs)("p", {
|
|
30827
|
+
className: "text-3xl text-default-700 font-medium flex items-center gap-3",
|
|
30828
|
+
children: [(0, import_jsx_runtime.jsx)(MdOutlineLightbulb, { className: "text-4xl text-warning-500" }), (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
30829
|
+
"请在 ",
|
|
30830
|
+
prpos.data.timeoutSeconds,
|
|
30831
|
+
" 秒内发送 ",
|
|
30832
|
+
(0, import_jsx_runtime.jsxs)("span", {
|
|
30833
|
+
className: "text-primary-500 font-bold",
|
|
30834
|
+
children: ["1~", prpos.data.videos.length]
|
|
30835
|
+
}),
|
|
30836
|
+
" 之间的数字解析对应作品。例如发送“1”解析第一个作品"
|
|
30837
|
+
] })]
|
|
30838
|
+
})
|
|
30839
|
+
}),
|
|
30840
|
+
prpos.data.videos.length > 0 ? (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: (0, import_jsx_runtime.jsx)("div", {
|
|
30841
|
+
className: "grid grid-cols-2 gap-6 mb-8",
|
|
30842
|
+
children: prpos.data.videos.map((video) => (0, import_jsx_runtime.jsx)(VideoCard, { video }, video.aweme_id))
|
|
30843
|
+
}) }) : (0, import_jsx_runtime.jsx)("div", {
|
|
30844
|
+
className: "text-center py-20",
|
|
30845
|
+
children: (0, import_jsx_runtime.jsx)("p", {
|
|
30846
|
+
className: "text-[32px] text-default-500",
|
|
30847
|
+
children: "暂无视频内容"
|
|
30848
|
+
})
|
|
30650
30849
|
})
|
|
30651
|
-
|
|
30850
|
+
]
|
|
30652
30851
|
})
|
|
30653
30852
|
})]
|
|
30654
30853
|
});
|
|
@@ -33406,274 +33605,331 @@ var VersionWarning = (props) => {
|
|
|
33406
33605
|
]
|
|
33407
33606
|
});
|
|
33408
33607
|
};
|
|
33409
|
-
var Changelog = import_react.memo((props) =>
|
|
33410
|
-
|
|
33411
|
-
|
|
33412
|
-
|
|
33413
|
-
|
|
33414
|
-
|
|
33415
|
-
|
|
33416
|
-
|
|
33608
|
+
var Changelog = import_react.memo((props) => {
|
|
33609
|
+
const backgroundColors = props.data.useDarkTheme ?? false ? {
|
|
33610
|
+
base: "#06110d",
|
|
33611
|
+
primary: "rgba(70, 184, 145, 0.26)",
|
|
33612
|
+
secondary: "rgba(135, 214, 84, 0.22)",
|
|
33613
|
+
accent: "rgba(88, 154, 210, 0.18)",
|
|
33614
|
+
wash: "rgba(7, 24, 18, 0.8)",
|
|
33615
|
+
tint: "rgba(162, 224, 103, 0.1)",
|
|
33616
|
+
noiseOpacity: .22,
|
|
33617
|
+
noiseBlend: "screen",
|
|
33618
|
+
inlineCodeBg: "rgba(255, 255, 255, 0.08)",
|
|
33619
|
+
inlineCodeText: "#dff3db"
|
|
33620
|
+
} : {
|
|
33621
|
+
base: "#f5fbfc",
|
|
33622
|
+
primary: "rgba(214, 236, 240, 0.95)",
|
|
33623
|
+
secondary: "rgba(189, 221, 34, 0.42)",
|
|
33624
|
+
accent: "rgba(214, 236, 240, 0.72)",
|
|
33625
|
+
wash: "rgba(255, 255, 255, 0.36)",
|
|
33626
|
+
tint: "rgba(189, 221, 34, 0.12)",
|
|
33627
|
+
noiseOpacity: .16,
|
|
33628
|
+
noiseBlend: "multiply",
|
|
33629
|
+
inlineCodeBg: "rgba(15, 23, 42, 0.06)",
|
|
33630
|
+
inlineCodeText: "#314329"
|
|
33631
|
+
};
|
|
33632
|
+
return (0, import_jsx_runtime.jsxs)(DefaultLayout, {
|
|
33633
|
+
...props,
|
|
33634
|
+
className: "relative overflow-hidden",
|
|
33635
|
+
style: { backgroundColor: backgroundColors.base },
|
|
33417
33636
|
children: [
|
|
33418
|
-
|
|
33419
|
-
className: "
|
|
33637
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
33638
|
+
className: "absolute inset-0 pointer-events-none z-0",
|
|
33420
33639
|
children: [
|
|
33421
|
-
(0, import_jsx_runtime.jsx)("div", {
|
|
33422
|
-
|
|
33423
|
-
|
|
33424
|
-
src: "/image/other/changelog/banner.webp",
|
|
33425
|
-
alt: "横幅"
|
|
33640
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
33641
|
+
className: "absolute -top-48 -left-20 w-7xl h-280 rounded-full blur-[120px]",
|
|
33642
|
+
style: { background: `radial-gradient(ellipse at 35% 40%, ${backgroundColors.primary} 0%, transparent 72%)` }
|
|
33426
33643
|
}),
|
|
33427
33644
|
(0, import_jsx_runtime.jsx)("div", {
|
|
33428
|
-
className: "
|
|
33429
|
-
|
|
33430
|
-
|
|
33431
|
-
|
|
33432
|
-
|
|
33645
|
+
className: "absolute top-42 right-[-7%] w-[30%] h-[24%] rounded-full blur-[132px] rotate-12",
|
|
33646
|
+
style: { background: `radial-gradient(ellipse at 50% 50%, ${backgroundColors.secondary} 0%, transparent 72%)` }
|
|
33647
|
+
}),
|
|
33648
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
33649
|
+
className: "absolute -bottom-36 left-30 w-280 h-220 rounded-full blur-[128px] -rotate-6",
|
|
33650
|
+
style: { background: `radial-gradient(ellipse at 55% 55%, ${backgroundColors.accent} 0%, transparent 72%)` }
|
|
33651
|
+
}),
|
|
33652
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
33653
|
+
className: "absolute left-[10%] w-[34%] h-[30%] blur-[138px]",
|
|
33654
|
+
style: {
|
|
33655
|
+
top: "33%",
|
|
33656
|
+
background: `radial-gradient(ellipse at 42% 50%, ${backgroundColors.tint} 0%, transparent 76%)`
|
|
33657
|
+
}
|
|
33658
|
+
}),
|
|
33659
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
33660
|
+
className: "absolute left-[32%] -bottom-[14%] w-[44%] h-[28%] blur-[342px]",
|
|
33661
|
+
style: { background: `radial-gradient(ellipse at 50% 48%, ${backgroundColors.secondary} 0%, transparent 77%)` }
|
|
33662
|
+
}),
|
|
33663
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
33664
|
+
className: "absolute inset-0",
|
|
33665
|
+
style: { background: `linear-gradient(180deg, ${backgroundColors.wash} 0%, transparent 28%, transparent 72%, ${backgroundColors.wash} 100%)` }
|
|
33433
33666
|
})
|
|
33434
33667
|
]
|
|
33435
|
-
}),
|
|
33436
|
-
|
|
33437
|
-
|
|
33438
|
-
|
|
33439
|
-
|
|
33440
|
-
|
|
33441
|
-
|
|
33442
|
-
|
|
33443
|
-
|
|
33444
|
-
|
|
33445
|
-
|
|
33446
|
-
|
|
33447
|
-
|
|
33448
|
-
|
|
33449
|
-
|
|
33450
|
-
|
|
33451
|
-
|
|
33452
|
-
|
|
33453
|
-
|
|
33454
|
-
|
|
33455
|
-
|
|
33456
|
-
|
|
33457
|
-
|
|
33458
|
-
|
|
33459
|
-
|
|
33460
|
-
|
|
33461
|
-
|
|
33462
|
-
|
|
33463
|
-
|
|
33464
|
-
|
|
33465
|
-
|
|
33466
|
-
|
|
33668
|
+
}),
|
|
33669
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
33670
|
+
className: "absolute inset-0 pointer-events-none z-0",
|
|
33671
|
+
style: {
|
|
33672
|
+
opacity: backgroundColors.noiseOpacity,
|
|
33673
|
+
mixBlendMode: backgroundColors.noiseBlend
|
|
33674
|
+
},
|
|
33675
|
+
children: (0, import_jsx_runtime.jsxs)("svg", {
|
|
33676
|
+
className: "w-full h-full",
|
|
33677
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
33678
|
+
children: [(0, import_jsx_runtime.jsxs)("filter", {
|
|
33679
|
+
id: "changelogNoise",
|
|
33680
|
+
x: "0%",
|
|
33681
|
+
y: "0%",
|
|
33682
|
+
width: "100%",
|
|
33683
|
+
height: "100%",
|
|
33684
|
+
children: [
|
|
33685
|
+
(0, import_jsx_runtime.jsx)("feTurbulence", {
|
|
33686
|
+
type: "fractalNoise",
|
|
33687
|
+
baseFrequency: "0.88",
|
|
33688
|
+
numOctaves: "2",
|
|
33689
|
+
stitchTiles: "stitch",
|
|
33690
|
+
result: "noise"
|
|
33691
|
+
}),
|
|
33692
|
+
(0, import_jsx_runtime.jsx)("feColorMatrix", {
|
|
33693
|
+
type: "saturate",
|
|
33694
|
+
values: "0",
|
|
33695
|
+
result: "gray"
|
|
33696
|
+
}),
|
|
33697
|
+
(0, import_jsx_runtime.jsxs)("feComponentTransfer", { children: [
|
|
33698
|
+
(0, import_jsx_runtime.jsx)("feFuncR", {
|
|
33699
|
+
type: "discrete",
|
|
33700
|
+
tableValues: "0 0 1 1"
|
|
33467
33701
|
}),
|
|
33468
|
-
(0, import_jsx_runtime.jsx)("
|
|
33469
|
-
|
|
33470
|
-
|
|
33471
|
-
glowStrength: 1.5,
|
|
33472
|
-
scale: 1.05,
|
|
33473
|
-
children: (0, import_jsx_runtime.jsx)(code_default, {
|
|
33474
|
-
radius: "lg",
|
|
33475
|
-
color: "warning",
|
|
33476
|
-
className: "text-[0.9em]",
|
|
33477
|
-
children: "WebUI"
|
|
33478
|
-
})
|
|
33702
|
+
(0, import_jsx_runtime.jsx)("feFuncG", {
|
|
33703
|
+
type: "discrete",
|
|
33704
|
+
tableValues: "0 0 1 1"
|
|
33479
33705
|
}),
|
|
33480
|
-
(0, import_jsx_runtime.jsx)("
|
|
33481
|
-
|
|
33482
|
-
|
|
33483
|
-
glowStrength: 1.5,
|
|
33484
|
-
scale: 1.05,
|
|
33485
|
-
children: (0, import_jsx_runtime.jsx)(code_default, {
|
|
33486
|
-
radius: "lg",
|
|
33487
|
-
color: "warning",
|
|
33488
|
-
className: "text-[0.9em]",
|
|
33489
|
-
children: "插件管理"
|
|
33490
|
-
})
|
|
33706
|
+
(0, import_jsx_runtime.jsx)("feFuncB", {
|
|
33707
|
+
type: "discrete",
|
|
33708
|
+
tableValues: "0 0 1 1"
|
|
33491
33709
|
}),
|
|
33492
|
-
(0, import_jsx_runtime.jsx)("
|
|
33493
|
-
|
|
33494
|
-
|
|
33495
|
-
glowStrength: 1.5,
|
|
33496
|
-
scale: 1.05,
|
|
33497
|
-
children: (0, import_jsx_runtime.jsx)(code_default, {
|
|
33498
|
-
radius: "lg",
|
|
33499
|
-
color: "warning",
|
|
33500
|
-
className: "text-[0.9em]",
|
|
33501
|
-
children: "已安装"
|
|
33502
|
-
})
|
|
33710
|
+
(0, import_jsx_runtime.jsx)("feFuncA", {
|
|
33711
|
+
type: "table",
|
|
33712
|
+
tableValues: "0 0.25 0.9 1"
|
|
33503
33713
|
})
|
|
33504
|
-
]
|
|
33505
|
-
|
|
33506
|
-
|
|
33507
|
-
|
|
33714
|
+
] })
|
|
33715
|
+
]
|
|
33716
|
+
}), (0, import_jsx_runtime.jsx)("rect", {
|
|
33717
|
+
width: "100%",
|
|
33718
|
+
height: "100%",
|
|
33719
|
+
filter: "url(#changelogNoise)"
|
|
33720
|
+
})]
|
|
33721
|
+
})
|
|
33722
|
+
}),
|
|
33723
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
33724
|
+
className: "relative px-20 pt-5 pb-0 w-full max-w-none prose prose-lg prose-invert from-default-50 to-default-100",
|
|
33725
|
+
children: [
|
|
33726
|
+
props.data.Tip === true ? (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: (0, import_jsx_runtime.jsxs)("div", {
|
|
33727
|
+
className: "pt-32",
|
|
33728
|
+
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
33729
|
+
className: "text-5xl leading-relaxed text-center mb-8 opacity-50 text-default-600",
|
|
33730
|
+
children: "以下任意方式均可更新"
|
|
33731
|
+
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
33732
|
+
className: "flex flex-col gap-6 text-[2.8em] leading-relaxed text-default-700",
|
|
33508
33733
|
children: [
|
|
33509
|
-
(0, import_jsx_runtime.
|
|
33510
|
-
className: "
|
|
33511
|
-
children:
|
|
33734
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
33735
|
+
className: "flex items-center gap-5",
|
|
33736
|
+
children: [
|
|
33737
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
33738
|
+
className: "text-default-500 text-[1.2em]",
|
|
33739
|
+
children: "•"
|
|
33740
|
+
}),
|
|
33741
|
+
(0, import_jsx_runtime.jsx)("span", { children: "回复" }),
|
|
33742
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
33743
|
+
className: "inline-block text-[1.15em] font-bold text-default-900",
|
|
33744
|
+
children: "更新"
|
|
33745
|
+
}),
|
|
33746
|
+
(0, import_jsx_runtime.jsx)("span", { children: "立刻开始" })
|
|
33747
|
+
]
|
|
33512
33748
|
}),
|
|
33513
|
-
(0, import_jsx_runtime.
|
|
33514
|
-
|
|
33515
|
-
|
|
33516
|
-
|
|
33517
|
-
|
|
33518
|
-
|
|
33519
|
-
|
|
33520
|
-
|
|
33521
|
-
|
|
33522
|
-
|
|
33523
|
-
|
|
33524
|
-
|
|
33525
|
-
"
|
|
33526
|
-
|
|
33527
|
-
|
|
33749
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
33750
|
+
className: "flex items-center gap-5",
|
|
33751
|
+
children: [
|
|
33752
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
33753
|
+
className: "text-default-500 text-[1.2em]",
|
|
33754
|
+
children: "•"
|
|
33755
|
+
}),
|
|
33756
|
+
(0, import_jsx_runtime.jsx)("span", { children: "进入" }),
|
|
33757
|
+
(0, import_jsx_runtime.jsx)(code_default, {
|
|
33758
|
+
radius: "lg",
|
|
33759
|
+
color: "success",
|
|
33760
|
+
className: "text-[0.9em]",
|
|
33761
|
+
children: "Karin WebUI"
|
|
33762
|
+
}),
|
|
33763
|
+
(0, import_jsx_runtime.jsx)("span", { children: "→" }),
|
|
33764
|
+
(0, import_jsx_runtime.jsx)(code_default, {
|
|
33765
|
+
radius: "lg",
|
|
33766
|
+
color: "success",
|
|
33767
|
+
className: "text-[0.9em]",
|
|
33768
|
+
children: "插件管理"
|
|
33769
|
+
}),
|
|
33770
|
+
(0, import_jsx_runtime.jsx)("span", { children: "→" }),
|
|
33771
|
+
(0, import_jsx_runtime.jsx)(code_default, {
|
|
33772
|
+
radius: "lg",
|
|
33773
|
+
color: "success",
|
|
33774
|
+
className: "text-[0.9em]",
|
|
33775
|
+
children: "已安装"
|
|
33776
|
+
}),
|
|
33777
|
+
(0, import_jsx_runtime.jsx)("span", { children: "→" }),
|
|
33778
|
+
(0, import_jsx_runtime.jsx)("span", { children: "一览更新" })
|
|
33779
|
+
]
|
|
33780
|
+
}),
|
|
33781
|
+
(0, import_jsx_runtime.jsxs)("div", {
|
|
33782
|
+
className: "flex items-center gap-5",
|
|
33783
|
+
children: [
|
|
33784
|
+
(0, import_jsx_runtime.jsx)("span", {
|
|
33785
|
+
className: "text-default-500 text-[1.2em]",
|
|
33786
|
+
children: "•"
|
|
33787
|
+
}),
|
|
33788
|
+
(0, import_jsx_runtime.jsx)("span", { children: "Karin 根目录运行" }),
|
|
33789
|
+
(0, import_jsx_runtime.jsxs)(code_default, {
|
|
33790
|
+
radius: "lg",
|
|
33791
|
+
color: "success",
|
|
33792
|
+
className: "text-[0.85em] whitespace-nowrap",
|
|
33793
|
+
children: [
|
|
33794
|
+
"pnpm add karin-plugin-kkk@",
|
|
33795
|
+
props.data.remoteVersion,
|
|
33796
|
+
" -w"
|
|
33797
|
+
]
|
|
33798
|
+
})
|
|
33799
|
+
]
|
|
33528
33800
|
})
|
|
33529
33801
|
]
|
|
33530
|
-
})
|
|
33531
|
-
|
|
33532
|
-
|
|
33533
|
-
|
|
33534
|
-
|
|
33535
|
-
|
|
33536
|
-
|
|
33537
|
-
|
|
33538
|
-
|
|
33539
|
-
|
|
33540
|
-
|
|
33541
|
-
...props,
|
|
33542
|
-
children
|
|
33543
|
-
}),
|
|
33544
|
-
h2: ({ children, ...props }) => (0, import_jsx_runtime.jsxs)("div", {
|
|
33545
|
-
className: "relative mt-20 mb-5",
|
|
33546
|
-
children: [
|
|
33547
|
-
(0, import_jsx_runtime.jsx)("div", {
|
|
33548
|
-
className: "absolute -top-13 left-0 text-[11em] font-black text-default-200/50 select-none pointer-events-none uppercase leading-none",
|
|
33549
|
-
"aria-hidden": "true",
|
|
33550
|
-
children: typeof children === "string" ? children : "H2"
|
|
33802
|
+
})]
|
|
33803
|
+
}) }) : null,
|
|
33804
|
+
(0, import_jsx_runtime.jsx)("div", {
|
|
33805
|
+
className: "changelog-content",
|
|
33806
|
+
children: (0, import_jsx_runtime.jsx)(Markdown, {
|
|
33807
|
+
rehypePlugins: [rehypeHighlight],
|
|
33808
|
+
components: {
|
|
33809
|
+
h1: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("h1", {
|
|
33810
|
+
className: "text-[5.28em] font-semibold mb-8 pb-2 border-b-2 border-default-400 text-default-900",
|
|
33811
|
+
...props,
|
|
33812
|
+
children
|
|
33551
33813
|
}),
|
|
33552
|
-
(0, import_jsx_runtime.
|
|
33553
|
-
className: "
|
|
33814
|
+
h2: ({ children, ...props }) => (0, import_jsx_runtime.jsxs)("div", {
|
|
33815
|
+
className: "relative mt-25 mb-5",
|
|
33816
|
+
children: [(0, import_jsx_runtime.jsx)("h2", {
|
|
33817
|
+
className: "ml-5 relative z-10 text-[5.28em] text-default-900 font-light",
|
|
33818
|
+
...props,
|
|
33819
|
+
children
|
|
33820
|
+
}), (0, import_jsx_runtime.jsx)("div", { className: "w-full border-b border-default-400" })]
|
|
33821
|
+
}),
|
|
33822
|
+
h3: ({ children, ...props }) => (0, import_jsx_runtime.jsxs)("h3", {
|
|
33823
|
+
className: "flex items-baseline gap-3 text-[3.2em] font-light mb-2 text-default-900",
|
|
33824
|
+
...props,
|
|
33825
|
+
children: [children, (0, import_jsx_runtime.jsx)(CornerDownLeft, {
|
|
33826
|
+
strokeWidth: 2.5,
|
|
33827
|
+
className: "w-[1em] h-[1em] text-default-900/10"
|
|
33828
|
+
})]
|
|
33829
|
+
}),
|
|
33830
|
+
h4: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("h4", {
|
|
33831
|
+
className: "text-[2.64em] font-semibold mb-5 text-default-900",
|
|
33554
33832
|
...props,
|
|
33555
33833
|
children
|
|
33556
33834
|
}),
|
|
33557
|
-
(0, import_jsx_runtime.jsx)("
|
|
33558
|
-
|
|
33559
|
-
|
|
33560
|
-
|
|
33561
|
-
|
|
33562
|
-
|
|
33563
|
-
|
|
33564
|
-
|
|
33565
|
-
|
|
33835
|
+
h5: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("h5", {
|
|
33836
|
+
className: "text-[2.38em] font-semibold mb-5 text-default-900",
|
|
33837
|
+
...props,
|
|
33838
|
+
children
|
|
33839
|
+
}),
|
|
33840
|
+
h6: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("h6", {
|
|
33841
|
+
className: "text-[2.11em] font-semibold mb-4 text-default-600",
|
|
33842
|
+
...props,
|
|
33843
|
+
children
|
|
33844
|
+
}),
|
|
33845
|
+
p: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("p", {
|
|
33846
|
+
className: "text-[2.64em] leading-[1.75] mb-[2.64em] text-default-900",
|
|
33847
|
+
...props,
|
|
33848
|
+
children
|
|
33849
|
+
}),
|
|
33850
|
+
ul: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("ul", {
|
|
33851
|
+
className: "pl-[5em] mb-[2em] list-disc text-default-900",
|
|
33852
|
+
...props,
|
|
33853
|
+
children
|
|
33854
|
+
}),
|
|
33855
|
+
ol: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("ol", {
|
|
33856
|
+
className: "pl-[3.6em] mb-[1.8em] list-decimal text-default-900",
|
|
33857
|
+
...props,
|
|
33858
|
+
children
|
|
33859
|
+
}),
|
|
33860
|
+
li: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("li", {
|
|
33861
|
+
className: "text-[2.6em] leading-[1.6] text-default-900 font-black",
|
|
33862
|
+
...props,
|
|
33863
|
+
children
|
|
33864
|
+
}),
|
|
33865
|
+
blockquote: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("blockquote", {
|
|
33866
|
+
className: "border-l-4 border-default-500 pl-[1.8em] py-[0.9em] mb-[1.8em] text-default-700 bg-default-100",
|
|
33867
|
+
...props,
|
|
33868
|
+
children
|
|
33869
|
+
}),
|
|
33870
|
+
code: ({ children }) => (0, import_jsx_runtime.jsx)("code", {
|
|
33871
|
+
className: "inline align-text-bottom leading-inherit text-[0.8em] whitespace-normal break-all box-decoration-slice rounded-[0.5em] px-[0.38em] py-[0.14em] font-semibold",
|
|
33872
|
+
style: {
|
|
33873
|
+
backgroundColor: backgroundColors.inlineCodeBg,
|
|
33874
|
+
color: backgroundColors.inlineCodeText
|
|
33875
|
+
},
|
|
33876
|
+
children
|
|
33877
|
+
}),
|
|
33878
|
+
pre: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("pre", {
|
|
33879
|
+
className: "p-[1.8em] mb-[1.8em] bg-default-200 rounded overflow-x-auto font-mono",
|
|
33880
|
+
...props,
|
|
33881
|
+
children
|
|
33882
|
+
}),
|
|
33883
|
+
a: ({ children, href, ...props }) => (0, import_jsx_runtime.jsx)("a", {
|
|
33884
|
+
className: "inline-flex gap-3 items-baseline cursor-pointer text-default-900/50 hover:underline",
|
|
33885
|
+
onClick: (e) => e.preventDefault(),
|
|
33886
|
+
...props,
|
|
33887
|
+
children: (0, import_jsx_runtime.jsx)("span", { children })
|
|
33888
|
+
}),
|
|
33889
|
+
img: ({ ...props }) => (0, import_jsx_runtime.jsx)("img", {
|
|
33890
|
+
className: "max-w-full h-auto rounded",
|
|
33891
|
+
...props
|
|
33892
|
+
}),
|
|
33893
|
+
table: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("table", {
|
|
33894
|
+
className: "w-full border-collapse mb-[1.8em] text-default-900",
|
|
33895
|
+
...props,
|
|
33896
|
+
children
|
|
33897
|
+
}),
|
|
33898
|
+
th: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("th", {
|
|
33899
|
+
className: "px-5 py-3 font-semibold text-left border text-default-900 bg-default-200 border-default-400",
|
|
33900
|
+
...props,
|
|
33901
|
+
children
|
|
33902
|
+
}),
|
|
33903
|
+
td: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("td", {
|
|
33904
|
+
className: "px-5 py-3 border text-default-900 border-default-400",
|
|
33905
|
+
...props,
|
|
33906
|
+
children
|
|
33907
|
+
})
|
|
33908
|
+
},
|
|
33909
|
+
children: props.data?.markdown ?? ""
|
|
33910
|
+
})
|
|
33911
|
+
}),
|
|
33912
|
+
props.data.Tip === true && props.data.buildTime && (0, import_jsx_runtime.jsxs)("div", {
|
|
33913
|
+
className: "flex gap-8 justify-center py-12 mt-16 border-t-2 border-default-300 opacity-60",
|
|
33914
|
+
children: [(0, import_jsx_runtime.jsxs)("div", {
|
|
33915
|
+
className: "text-4xl",
|
|
33916
|
+
children: ["更新频道:", (0, import_jsx_runtime.jsx)("span", {
|
|
33917
|
+
className: "font-bold text-default-700",
|
|
33918
|
+
children: " 正式版"
|
|
33566
33919
|
})]
|
|
33567
|
-
}),
|
|
33568
|
-
|
|
33569
|
-
|
|
33570
|
-
|
|
33571
|
-
|
|
33572
|
-
}),
|
|
33573
|
-
h5: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("h5", {
|
|
33574
|
-
className: "text-[2.38em] font-semibold mb-5 text-default-900",
|
|
33575
|
-
...props,
|
|
33576
|
-
children
|
|
33577
|
-
}),
|
|
33578
|
-
h6: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("h6", {
|
|
33579
|
-
className: "text-[2.11em] font-semibold mb-4 text-default-600",
|
|
33580
|
-
...props,
|
|
33581
|
-
children
|
|
33582
|
-
}),
|
|
33583
|
-
p: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("p", {
|
|
33584
|
-
className: "text-[2.64em] leading-[1.75] mb-[2.64em] text-default-900",
|
|
33585
|
-
...props,
|
|
33586
|
-
children
|
|
33587
|
-
}),
|
|
33588
|
-
ul: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("ul", {
|
|
33589
|
-
className: "pl-[5em] mb-[2em] list-disc text-default-900",
|
|
33590
|
-
...props,
|
|
33591
|
-
children
|
|
33592
|
-
}),
|
|
33593
|
-
ol: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("ol", {
|
|
33594
|
-
className: "pl-[3.6em] mb-[1.8em] list-decimal text-default-900",
|
|
33595
|
-
...props,
|
|
33596
|
-
children
|
|
33597
|
-
}),
|
|
33598
|
-
li: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("li", {
|
|
33599
|
-
className: "text-[2.6em] leading-[1.6] text-default-900",
|
|
33600
|
-
...props,
|
|
33601
|
-
children
|
|
33602
|
-
}),
|
|
33603
|
-
blockquote: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("blockquote", {
|
|
33604
|
-
className: "border-l-4 border-default-500 pl-[1.8em] py-[0.9em] mb-[1.8em] text-default-700 bg-default-100",
|
|
33605
|
-
...props,
|
|
33606
|
-
children
|
|
33607
|
-
}),
|
|
33608
|
-
code: ({ children }) => (0, import_jsx_runtime.jsx)(code_default, {
|
|
33609
|
-
radius: "lg",
|
|
33610
|
-
color: "warning",
|
|
33611
|
-
className: "inline align-text-bottom leading-inherit text-[0.8em] whitespace-normal break-all box-decoration-slice",
|
|
33612
|
-
children
|
|
33613
|
-
}),
|
|
33614
|
-
pre: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("pre", {
|
|
33615
|
-
className: "p-[1.8em] mb-[1.8em] bg-default-200 rounded overflow-x-auto font-mono",
|
|
33616
|
-
...props,
|
|
33617
|
-
children
|
|
33618
|
-
}),
|
|
33619
|
-
a: ({ children, href, ...props }) => (0, import_jsx_runtime.jsxs)("a", {
|
|
33620
|
-
className: "inline-flex gap-3 items-baseline cursor-pointer text-warning hover:underline",
|
|
33621
|
-
onClick: (e) => e.preventDefault(),
|
|
33622
|
-
...props,
|
|
33623
|
-
children: [(0, import_jsx_runtime.jsx)(GlowText, {
|
|
33624
|
-
blurRadius: 10,
|
|
33625
|
-
glowStrength: 3,
|
|
33626
|
-
scale: 1.2,
|
|
33627
|
-
children
|
|
33628
|
-
}), (0, import_jsx_runtime.jsx)(GlowText, {
|
|
33629
|
-
blurRadius: 10,
|
|
33630
|
-
glowStrength: 3,
|
|
33631
|
-
scale: 1.2,
|
|
33632
|
-
children: (0, import_jsx_runtime.jsx)(ExternalLink, { className: "w-[1.1em] h-[1.1em] -mb-[0.1em]" })
|
|
33920
|
+
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
33921
|
+
className: "text-4xl",
|
|
33922
|
+
children: ["编译于:", (0, import_jsx_runtime.jsxs)("span", {
|
|
33923
|
+
className: "font-bold text-default-700",
|
|
33924
|
+
children: [" ", props.data.buildTime]
|
|
33633
33925
|
})]
|
|
33634
|
-
})
|
|
33635
|
-
|
|
33636
|
-
|
|
33637
|
-
...props
|
|
33638
|
-
}),
|
|
33639
|
-
table: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("table", {
|
|
33640
|
-
className: "w-full border-collapse mb-[1.8em] text-default-900",
|
|
33641
|
-
...props,
|
|
33642
|
-
children
|
|
33643
|
-
}),
|
|
33644
|
-
th: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("th", {
|
|
33645
|
-
className: "px-5 py-3 font-semibold text-left border text-default-900 bg-default-200 border-default-400",
|
|
33646
|
-
...props,
|
|
33647
|
-
children
|
|
33648
|
-
}),
|
|
33649
|
-
td: ({ children, ...props }) => (0, import_jsx_runtime.jsx)("td", {
|
|
33650
|
-
className: "px-5 py-3 border text-default-900 border-default-400",
|
|
33651
|
-
...props,
|
|
33652
|
-
children
|
|
33653
|
-
})
|
|
33654
|
-
},
|
|
33655
|
-
children: props.data?.markdown ?? ""
|
|
33656
|
-
})
|
|
33657
|
-
}),
|
|
33658
|
-
props.data.Tip === true && props.data.buildTime && (0, import_jsx_runtime.jsxs)("div", {
|
|
33659
|
-
className: "flex gap-8 justify-center py-12 mt-16 border-t-2 border-default-300 opacity-60",
|
|
33660
|
-
children: [(0, import_jsx_runtime.jsxs)("div", {
|
|
33661
|
-
className: "text-4xl",
|
|
33662
|
-
children: ["更新频道:", (0, import_jsx_runtime.jsx)("span", {
|
|
33663
|
-
className: "font-bold text-warning-200",
|
|
33664
|
-
children: " 正式版"
|
|
33665
|
-
})]
|
|
33666
|
-
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
33667
|
-
className: "text-4xl",
|
|
33668
|
-
children: ["编译于:", (0, import_jsx_runtime.jsxs)("span", {
|
|
33669
|
-
className: "font-bold text-warning-200",
|
|
33670
|
-
children: [" ", props.data.buildTime]
|
|
33671
|
-
})]
|
|
33672
|
-
})]
|
|
33926
|
+
})]
|
|
33927
|
+
})
|
|
33928
|
+
]
|
|
33673
33929
|
})
|
|
33674
33930
|
]
|
|
33675
|
-
})
|
|
33676
|
-
})
|
|
33931
|
+
});
|
|
33932
|
+
});
|
|
33677
33933
|
Changelog.displayName = "Changelog";
|
|
33678
33934
|
var ERROR_TITLES = [
|
|
33679
33935
|
"哎呀",
|