karin-plugin-kkk 2.27.1 → 2.27.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.
- package/CHANGELOG.md +49 -0
- package/lib/apps/__ready.js +1 -2
- package/lib/apps/admin.js +1 -2
- package/lib/apps/help.js +1 -2
- package/lib/apps/push.js +1 -2
- package/lib/apps/qrlogin.js +1 -2
- package/lib/apps/statistics.js +1 -2
- package/lib/apps/tools.js +1 -2
- package/lib/apps/update.js +1 -2
- package/lib/build-metadata.json +5 -5
- package/lib/core_chunk/ArticleWork-B9VlEbFM.js +2 -0
- package/lib/core_chunk/Comment-B1-QWo31.js +2 -0
- package/lib/core_chunk/Comment-CsjhEqQE.js +2 -0
- package/lib/core_chunk/Comment-DqdTSc8A.js +2 -0
- package/lib/core_chunk/Comment-vfsv9BWV.js +2 -0
- package/lib/core_chunk/DYNAMIC_TYPE_ARTICLE-DhI4wyiD.js +2 -0
- package/lib/core_chunk/DYNAMIC_TYPE_AV-6dOhp5Vb.js +2 -0
- package/lib/core_chunk/DYNAMIC_TYPE_DRAW-CyEKe3mQ.js +2 -0
- package/lib/core_chunk/DYNAMIC_TYPE_FORWARD-DgwU5r0h.js +2 -0
- package/lib/core_chunk/DYNAMIC_TYPE_LIVE_RCMD-v8wYPTDs.js +2 -0
- package/lib/core_chunk/DYNAMIC_TYPE_WORD-BhB1tElH.js +2 -0
- package/lib/core_chunk/Dynamic-k3p7RKuw.js +2 -0
- package/lib/core_chunk/FavoriteList-VfKULbNA.js +2 -0
- package/lib/core_chunk/GlobalStatistics-Bc7svC23.js +2 -0
- package/lib/core_chunk/GroupStatistics-BIMjUQ01.js +2 -0
- package/lib/core_chunk/Help-vD_prhrv.js +2 -0
- package/lib/core_chunk/ImageWork-DGp6mxVH.js +2 -0
- package/lib/core_chunk/Live-DqlY-h7D.js +2 -0
- package/lib/core_chunk/MusicInfo-Ba4wnEpW.js +2 -0
- package/lib/core_chunk/RecommendList-Cng4vsUq.js +2 -0
- package/lib/core_chunk/UserList-BHq909y3.js +2 -0
- package/lib/core_chunk/UserList-Cc-KSITl.js +2 -0
- package/lib/core_chunk/UserVideoList-BoX9UYyz.js +2 -0
- package/lib/core_chunk/VersionWarning-CIL9fLZa.js +2 -0
- package/lib/core_chunk/VideoWork-yO5B3pBL.js +2 -0
- package/lib/core_chunk/amagiClient-ekHY-PXh.js +2 -0
- package/lib/core_chunk/bangumi-DKQ6q6pC.js +2 -0
- package/lib/core_chunk/changelog-CqYNfGVJ.js +2 -0
- package/lib/core_chunk/db-CPobc711.js +2 -0
- package/lib/core_chunk/dist-uCFspDJu.js +2 -0
- package/lib/core_chunk/handlerError-D0W7_FuK.js +2 -0
- package/lib/core_chunk/{main-GkRJUnjP.js → main-DpV125vG.js} +198 -120
- package/lib/core_chunk/noteInfo-BRi4E8ui.js +2 -0
- package/lib/core_chunk/qrcodeImg-B01ESZUL.js +2 -0
- package/lib/core_chunk/qrcodeImg-Cy0np3Sk.js +2 -0
- package/lib/core_chunk/qrlogin-DcHpe2_c.js +2 -0
- package/lib/core_chunk/setup-DPzunDIj.js +2 -0
- package/lib/core_chunk/template.d.mts +13 -13
- package/lib/core_chunk/template.js +1 -2
- package/lib/core_chunk/{vendor-CupLbLdw.js → vendor-CPNFNbMs.js} +3105 -2114
- package/lib/core_chunk/videoInfo-ByNoR3t4.js +2 -0
- package/lib/core_chunk/videoInfo-DONA7eyd.js +2 -0
- package/lib/index.js +1 -1
- package/lib/root.js +1 -1
- package/lib/web.config.js +1 -2
- package/package.json +2 -2
- package/lib/core_chunk/ArticleWork-YUXD4J4o.js +0 -3
- package/lib/core_chunk/Comment-BlsGb0BJ.js +0 -3
- package/lib/core_chunk/Comment-BvaBxBXq.js +0 -3
- package/lib/core_chunk/Comment-DAkBYEwQ.js +0 -3
- package/lib/core_chunk/Comment-W7yzE3V8.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_ARTICLE-C_yXdHL6.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_AV-9V_K1fEv.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_DRAW-B0nRDWIR.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_FORWARD-CQddwMwd.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_LIVE_RCMD-Bt_E88wL.js +0 -3
- package/lib/core_chunk/DYNAMIC_TYPE_WORD-BDutqdJU.js +0 -3
- package/lib/core_chunk/Dynamic-s7ouu-nG.js +0 -3
- package/lib/core_chunk/FavoriteList-D0o5nbi4.js +0 -3
- package/lib/core_chunk/GlobalStatistics-aqVNKMGM.js +0 -3
- package/lib/core_chunk/GroupStatistics-BppQCu9O.js +0 -3
- package/lib/core_chunk/Help-BX3TqQaQ.js +0 -3
- package/lib/core_chunk/ImageWork-CYelfERx.js +0 -3
- package/lib/core_chunk/Live-CQP5OR8Y.js +0 -3
- package/lib/core_chunk/MusicInfo-zvwtog_A.js +0 -3
- package/lib/core_chunk/RecommendList-CXiPOzIN.js +0 -3
- package/lib/core_chunk/UserList-Dp-zNY4Z.js +0 -3
- package/lib/core_chunk/UserList-e7qGfWpS.js +0 -3
- package/lib/core_chunk/UserVideoList-DsfeY2HS.js +0 -3
- package/lib/core_chunk/VersionWarning-mCbREKfz.js +0 -3
- package/lib/core_chunk/VideoWork-DWP1x1xo.js +0 -3
- package/lib/core_chunk/amagiClient-C_qQFi3I.js +0 -3
- package/lib/core_chunk/bangumi-CXz3aPKE.js +0 -3
- package/lib/core_chunk/changelog-icKPF2Vh.js +0 -3
- package/lib/core_chunk/db-CjI5bW_8.js +0 -3
- package/lib/core_chunk/dist-Cx4SNJ6B.js +0 -2
- package/lib/core_chunk/handlerError-DIJznuvm.js +0 -3
- package/lib/core_chunk/noteInfo-DlLJJaxT.js +0 -3
- package/lib/core_chunk/qrcodeImg-C0mEIm5B.js +0 -3
- package/lib/core_chunk/qrcodeImg-COPQdgv8.js +0 -3
- package/lib/core_chunk/qrlogin-COaceLuZ.js +0 -3
- package/lib/core_chunk/setup-FE-bwEzb.js +0 -3
- package/lib/core_chunk/videoInfo-7t7_qNts.js +0 -3
- package/lib/core_chunk/videoInfo-CWzMOt6K.js +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "./rolldown-runtime-8i3BgXHp.js";
|
|
2
|
-
import { $ as RiTrophyFill, $t as
|
|
2
|
+
import { $ as RiTrophyFill, $t as differenceInSeconds, 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 purify, H as RiPieChart2Fill, Ht as Bookmark, I as RiLineChartFill, It as CircleFadingArrowUp, J as RiSparkling2Fill, K as RiSendPlaneFill, Kt as require_dist, 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 format, 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 fromUnixTime, Y as RiStarFill, Yt as zhCN, Z as RiThumbUpFill, Zt as formatDistanceToNow, _ as FaTiktok, _n as AxiosError$1, _t as Quote, a as VictoryChart, an as button_default, at as User, b as AiFillHeart, bn as zod_default, bt as Play, c as VictoryTheme, cn as clsx, ct as ThumbsUp, d as MdAccessTime, dn as require_jsQR, dt as Smartphone, en as require_qr_code_styling, et as RiUserFollowLine, f as MdLocationOn, fn as require_jpeg_js, ft as Shield, g as FaMusic, gn as Chalk, gt as Radio, h as FaCommentDots, hn as require_protobufjs, ht as ScanLine, i as VictoryLine, in as chip_default, it as Users, j as RiGroupLine, jt as ExternalLink, k as RiBarChartFill, kt as FileText, l as TbScan, ln as require_react, lt as Terminal, m as FaCodeBranch, mn as require_express, mt as Share2, n as VictoryScatter, nn as require_server_node, nt as RiVideoLine, o as VictoryAxis, on as HeroUIProvider, ot as UserPlus, p as MdOutlineLightbulb, pn as require_heic_decode, pt as ShieldCheck, q as RiShareForwardFill, qt as require_lib, r as VictoryPie, rn as code_default, rt as Zap, s as VictoryLabel, sn as require_jsx_runtime, st as TriangleAlert, t as rehypeHighlight, tn as Window, tt as RiVerifiedBadgeFill, u as HiOutlineMenuAlt2, un as require_png, ut as Star, v as FaUserGroup, vn as axios$1, vt as QrCode, w as IoSearch, wt as Info, x as AiFillPushpin, xt as Music, y as BsImage, yn as Xhshow, yt as Plug2, z as RiLiveLine, zt as CircleAlert } from "./vendor-CPNFNbMs.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-DPzunDIj.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-ekHY-PXh.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-CPobc711.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-CPobc711.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-CPobc711.js");
|
|
5383
5383
|
const douyinDB = await getDouyinDB();
|
|
5384
5384
|
const bilibiliDB = await getBilibiliDB();
|
|
5385
5385
|
const pushCfg = this.getYaml("config", "pushlist");
|
|
@@ -5494,8 +5494,15 @@ var AmagiBase = class {
|
|
|
5494
5494
|
return createProxy(client);
|
|
5495
5495
|
};
|
|
5496
5496
|
};
|
|
5497
|
+
var createLiveProxy = (getter) => new Proxy({}, { get(_target, prop) {
|
|
5498
|
+
const current = getter();
|
|
5499
|
+
const value = Reflect.get(current, prop);
|
|
5500
|
+
if (typeof value === "function") return value.bind(current);
|
|
5501
|
+
if (value && typeof value === "object") return createLiveProxy(() => Reflect.get(getter(), prop));
|
|
5502
|
+
return value;
|
|
5503
|
+
} });
|
|
5497
5504
|
var amagiClientInstance = new AmagiBase();
|
|
5498
|
-
var amagiClient = amagiClientInstance.amagi;
|
|
5505
|
+
var amagiClient = createLiveProxy(() => amagiClientInstance.amagi);
|
|
5499
5506
|
var reloadAmagiConfig = () => {
|
|
5500
5507
|
amagiClientInstance.reloadConfig();
|
|
5501
5508
|
};
|
|
@@ -8023,47 +8030,47 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8023
8030
|
switch (baseComponent.id) {
|
|
8024
8031
|
case "comment": return createComponentConfig(baseComponent, {
|
|
8025
8032
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8026
|
-
lazyComponent: () => import("./Comment-
|
|
8033
|
+
lazyComponent: () => import("./Comment-vfsv9BWV.js").then((module) => ({ default: module.DouyinComment }))
|
|
8027
8034
|
});
|
|
8028
8035
|
case "dynamic": return createComponentConfig(baseComponent, {
|
|
8029
8036
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8030
|
-
lazyComponent: () => import("./Dynamic-
|
|
8037
|
+
lazyComponent: () => import("./Dynamic-k3p7RKuw.js").then((module) => ({ default: module.DouyinDynamic }))
|
|
8031
8038
|
});
|
|
8032
8039
|
case "video-work": return createComponentConfig(baseComponent, {
|
|
8033
8040
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8034
|
-
lazyComponent: () => import("./VideoWork-
|
|
8041
|
+
lazyComponent: () => import("./VideoWork-yO5B3pBL.js").then((module) => ({ default: module.DouyinVideoWork }))
|
|
8035
8042
|
});
|
|
8036
8043
|
case "image-work": return createComponentConfig(baseComponent, {
|
|
8037
8044
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8038
|
-
lazyComponent: () => import("./ImageWork-
|
|
8045
|
+
lazyComponent: () => import("./ImageWork-DGp6mxVH.js").then((module) => ({ default: module.DouyinImageWork }))
|
|
8039
8046
|
});
|
|
8040
8047
|
case "article-work": return createComponentConfig(baseComponent, {
|
|
8041
8048
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8042
|
-
lazyComponent: () => import("./ArticleWork-
|
|
8049
|
+
lazyComponent: () => import("./ArticleWork-B9VlEbFM.js").then((module) => ({ default: module.DouyinArticleWork }))
|
|
8043
8050
|
});
|
|
8044
8051
|
case "favorite-list": return createComponentConfig(baseComponent, {
|
|
8045
8052
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8046
|
-
lazyComponent: () => import("./FavoriteList-
|
|
8053
|
+
lazyComponent: () => import("./FavoriteList-VfKULbNA.js").then((module) => ({ default: module.DouyinFavoriteList }))
|
|
8047
8054
|
});
|
|
8048
8055
|
case "recommend-list": return createComponentConfig(baseComponent, {
|
|
8049
8056
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8050
|
-
lazyComponent: () => import("./RecommendList-
|
|
8057
|
+
lazyComponent: () => import("./RecommendList-Cng4vsUq.js").then((module) => ({ default: module.DouyinRecommendList }))
|
|
8051
8058
|
});
|
|
8052
8059
|
case "live": return createComponentConfig(baseComponent, {
|
|
8053
8060
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8054
|
-
lazyComponent: () => import("./Live-
|
|
8061
|
+
lazyComponent: () => import("./Live-DqlY-h7D.js").then((module) => ({ default: module.DouyinLive }))
|
|
8055
8062
|
});
|
|
8056
8063
|
case "musicinfo": return createComponentConfig(baseComponent, {
|
|
8057
8064
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8058
|
-
lazyComponent: () => import("./MusicInfo-
|
|
8065
|
+
lazyComponent: () => import("./MusicInfo-Ba4wnEpW.js").then((module) => ({ default: module.DouyinMusicInfo }))
|
|
8059
8066
|
});
|
|
8060
|
-
case "user_profile": return createComponentConfig(baseComponent, { lazyComponent: () => import("./UserVideoList-
|
|
8067
|
+
case "user_profile": return createComponentConfig(baseComponent, { lazyComponent: () => import("./UserVideoList-BoX9UYyz.js").then((module) => ({ default: module.DouyinUserVideoList })) });
|
|
8061
8068
|
case "userlist": return createComponentConfig(baseComponent, {
|
|
8062
8069
|
validateData: (data) => data && Array.isArray(data.renderOpt),
|
|
8063
|
-
lazyComponent: () => import("./UserList-
|
|
8070
|
+
lazyComponent: () => import("./UserList-Cc-KSITl.js").then((module) => ({ default: module.default }))
|
|
8064
8071
|
});
|
|
8065
|
-
case "videoInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./videoInfo-
|
|
8066
|
-
case "qrcodeImg": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrcodeImg-
|
|
8072
|
+
case "videoInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./videoInfo-ByNoR3t4.js").then((module) => ({ default: module.DouyinVideoInfo })) });
|
|
8073
|
+
case "qrcodeImg": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrcodeImg-B01ESZUL.js").then((module) => ({ default: module.DouyinQrcodeImg })) });
|
|
8067
8074
|
default: return createComponentConfig(baseComponent);
|
|
8068
8075
|
}
|
|
8069
8076
|
});
|
|
@@ -8073,42 +8080,42 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8073
8080
|
switch (baseComponent.id) {
|
|
8074
8081
|
case "comment": return createComponentConfig(baseComponent, {
|
|
8075
8082
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8076
|
-
lazyComponent: () => import("./Comment-
|
|
8083
|
+
lazyComponent: () => import("./Comment-CsjhEqQE.js").then((module) => ({ default: module.BilibiliComment }))
|
|
8077
8084
|
});
|
|
8078
8085
|
case "userlist": return createComponentConfig(baseComponent, {
|
|
8079
8086
|
validateData: (data) => data && Array.isArray(data.renderOpt),
|
|
8080
|
-
lazyComponent: () => import("./UserList-
|
|
8087
|
+
lazyComponent: () => import("./UserList-BHq909y3.js").then((module) => ({ default: module.default }))
|
|
8081
8088
|
});
|
|
8082
|
-
case "bangumi": return createComponentConfig(baseComponent, { lazyComponent: () => import("./bangumi-
|
|
8089
|
+
case "bangumi": return createComponentConfig(baseComponent, { lazyComponent: () => import("./bangumi-DKQ6q6pC.js").then((module) => ({ default: module.default })) });
|
|
8083
8090
|
case "dynamic/DYNAMIC_TYPE_DRAW": return createComponentConfig(baseComponent, {
|
|
8084
8091
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8085
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_DRAW-
|
|
8092
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_DRAW-CyEKe3mQ.js").then((module) => ({ default: module.BilibiliDrawDynamic }))
|
|
8086
8093
|
});
|
|
8087
8094
|
case "dynamic/DYNAMIC_TYPE_WORD": return createComponentConfig(baseComponent, {
|
|
8088
8095
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8089
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_WORD-
|
|
8096
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_WORD-BhB1tElH.js").then((module) => ({ default: module.BilibiliWordDynamic }))
|
|
8090
8097
|
});
|
|
8091
8098
|
case "dynamic/DYNAMIC_TYPE_AV": return createComponentConfig(baseComponent, {
|
|
8092
8099
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8093
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_AV-
|
|
8100
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_AV-6dOhp5Vb.js").then((module) => ({ default: module.BilibiliVideoDynamic }))
|
|
8094
8101
|
});
|
|
8095
8102
|
case "dynamic/DYNAMIC_TYPE_FORWARD": return createComponentConfig(baseComponent, {
|
|
8096
8103
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8097
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_FORWARD-
|
|
8104
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_FORWARD-DgwU5r0h.js").then((module) => ({ default: module.BilibiliForwardDynamic }))
|
|
8098
8105
|
});
|
|
8099
8106
|
case "dynamic/DYNAMIC_TYPE_LIVE_RCMD": return createComponentConfig(baseComponent, {
|
|
8100
8107
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8101
|
-
lazyComponent: () => import("./DYNAMIC_TYPE_LIVE_RCMD-
|
|
8108
|
+
lazyComponent: () => import("./DYNAMIC_TYPE_LIVE_RCMD-v8wYPTDs.js").then((module) => ({ default: module.BilibiliLiveDynamic }))
|
|
8102
8109
|
});
|
|
8103
8110
|
case "dynamic/DYNAMIC_TYPE_WORD": return createComponentConfig(baseComponent, { validateData: (data) => data && typeof data.share_url === "string" });
|
|
8104
|
-
case "dynamic/DYNAMIC_TYPE_ARTICLE": return createComponentConfig(baseComponent, { lazyComponent: () => import("./DYNAMIC_TYPE_ARTICLE-
|
|
8111
|
+
case "dynamic/DYNAMIC_TYPE_ARTICLE": return createComponentConfig(baseComponent, { lazyComponent: () => import("./DYNAMIC_TYPE_ARTICLE-DhI4wyiD.js").then((module) => ({ default: module.BilibiliArticleDynamic })) });
|
|
8105
8112
|
case "videoInfo": return createComponentConfig(baseComponent, {
|
|
8106
8113
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8107
|
-
lazyComponent: () => import("./videoInfo-
|
|
8114
|
+
lazyComponent: () => import("./videoInfo-DONA7eyd.js").then((module) => ({ default: module.BilibiliVideoInfo }))
|
|
8108
8115
|
});
|
|
8109
8116
|
case "qrcodeImg": return createComponentConfig(baseComponent, {
|
|
8110
8117
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8111
|
-
lazyComponent: () => import("./qrcodeImg-
|
|
8118
|
+
lazyComponent: () => import("./qrcodeImg-Cy0np3Sk.js").then((module) => ({ default: module.BilibiliQrcodeImg }))
|
|
8112
8119
|
});
|
|
8113
8120
|
default: return createComponentConfig(baseComponent);
|
|
8114
8121
|
}
|
|
@@ -8119,7 +8126,7 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8119
8126
|
switch (baseComponent.id) {
|
|
8120
8127
|
case "comment": return createComponentConfig(baseComponent, {
|
|
8121
8128
|
validateData: (data) => data && typeof data.share_url === "string",
|
|
8122
|
-
lazyComponent: () => import("./Comment-
|
|
8129
|
+
lazyComponent: () => import("./Comment-DqdTSc8A.js").then((module) => ({ default: module.KuaishouComment }))
|
|
8123
8130
|
});
|
|
8124
8131
|
default: return createComponentConfig(baseComponent);
|
|
8125
8132
|
}
|
|
@@ -8128,8 +8135,8 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8128
8135
|
case PlatformType.XIAOHONGSHU:
|
|
8129
8136
|
platform.components = basePlatform.components.map((baseComponent) => {
|
|
8130
8137
|
switch (baseComponent.id) {
|
|
8131
|
-
case "noteInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./noteInfo-
|
|
8132
|
-
case "comment": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Comment-
|
|
8138
|
+
case "noteInfo": return createComponentConfig(baseComponent, { lazyComponent: () => import("./noteInfo-BRi4E8ui.js").then((module) => ({ default: module.XiaohongshuNoteInfo })) });
|
|
8139
|
+
case "comment": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Comment-B1-QWo31.js").then((module) => ({ default: module.XiaohongshuComment })) });
|
|
8133
8140
|
default: return createComponentConfig(baseComponent);
|
|
8134
8141
|
}
|
|
8135
8142
|
});
|
|
@@ -8137,11 +8144,11 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8137
8144
|
case PlatformType.OTHER:
|
|
8138
8145
|
platform.components = basePlatform.components.map((baseComponent) => {
|
|
8139
8146
|
switch (baseComponent.id) {
|
|
8140
|
-
case "help": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Help-
|
|
8141
|
-
case "handlerError": return createComponentConfig(baseComponent, { lazyComponent: () => import("./handlerError-
|
|
8142
|
-
case "changelog": return createComponentConfig(baseComponent, { lazyComponent: () => import("./changelog-
|
|
8143
|
-
case "version_warning": return createComponentConfig(baseComponent, { lazyComponent: () => import("./VersionWarning-
|
|
8144
|
-
case "qrlogin": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrlogin-
|
|
8147
|
+
case "help": return createComponentConfig(baseComponent, { lazyComponent: () => import("./Help-vD_prhrv.js").then((module) => ({ default: module.default })) });
|
|
8148
|
+
case "handlerError": return createComponentConfig(baseComponent, { lazyComponent: () => import("./handlerError-D0W7_FuK.js").then((module) => ({ default: module.handlerError })) });
|
|
8149
|
+
case "changelog": return createComponentConfig(baseComponent, { lazyComponent: () => import("./changelog-CqYNfGVJ.js").then((module) => ({ default: module.Changelog })) });
|
|
8150
|
+
case "version_warning": return createComponentConfig(baseComponent, { lazyComponent: () => import("./VersionWarning-CIL9fLZa.js").then((module) => ({ default: module.VersionWarning })) });
|
|
8151
|
+
case "qrlogin": return createComponentConfig(baseComponent, { lazyComponent: () => import("./qrlogin-DcHpe2_c.js").then((module) => ({ default: module.QrLogin })) });
|
|
8145
8152
|
default: return createComponentConfig(baseComponent);
|
|
8146
8153
|
}
|
|
8147
8154
|
});
|
|
@@ -8149,8 +8156,8 @@ var componentConfigs = baseComponentConfigs.map((basePlatform) => {
|
|
|
8149
8156
|
case PlatformType.STATISTICS:
|
|
8150
8157
|
platform.components = basePlatform.components.map((baseComponent) => {
|
|
8151
8158
|
switch (baseComponent.id) {
|
|
8152
|
-
case "group": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GroupStatistics-
|
|
8153
|
-
case "global": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GlobalStatistics-
|
|
8159
|
+
case "group": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GroupStatistics-BIMjUQ01.js").then((module) => ({ default: module.GroupStatistics })) });
|
|
8160
|
+
case "global": return createComponentConfig(baseComponent, { lazyComponent: () => import("./GlobalStatistics-Bc7svC23.js").then((module) => ({ default: module.GlobalStatistics })) });
|
|
8154
8161
|
default: return createComponentConfig(baseComponent);
|
|
8155
8162
|
}
|
|
8156
8163
|
});
|
|
@@ -8609,18 +8616,58 @@ var HtmlWrapper = class {
|
|
|
8609
8616
|
constructor(resourceManager) {
|
|
8610
8617
|
this.resourceManager = resourceManager;
|
|
8611
8618
|
}
|
|
8619
|
+
getAssetMimeType(assetPath) {
|
|
8620
|
+
switch (path.extname(assetPath).toLowerCase()) {
|
|
8621
|
+
case ".woff2": return "font/woff2";
|
|
8622
|
+
case ".woff": return "font/woff";
|
|
8623
|
+
case ".ttf": return "font/ttf";
|
|
8624
|
+
case ".otf": return "font/otf";
|
|
8625
|
+
case ".eot": return "application/vnd.ms-fontobject";
|
|
8626
|
+
case ".svg": return "image/svg+xml";
|
|
8627
|
+
case ".png": return "image/png";
|
|
8628
|
+
case ".jpg":
|
|
8629
|
+
case ".jpeg": return "image/jpeg";
|
|
8630
|
+
case ".gif": return "image/gif";
|
|
8631
|
+
case ".webp": return "image/webp";
|
|
8632
|
+
case ".avif": return "image/avif";
|
|
8633
|
+
default: return "application/octet-stream";
|
|
8634
|
+
}
|
|
8635
|
+
}
|
|
8636
|
+
toDataUri(assetPath) {
|
|
8637
|
+
if (!fs.existsSync(assetPath)) {
|
|
8638
|
+
logger$1.warn("未找到静态资源文件,跳过内联:", assetPath);
|
|
8639
|
+
return null;
|
|
8640
|
+
}
|
|
8641
|
+
return `data:${this.getAssetMimeType(assetPath)};base64,${fs.readFileSync(assetPath).toString("base64")}`;
|
|
8642
|
+
}
|
|
8643
|
+
loadInlineCss(cssFilePath) {
|
|
8644
|
+
if (!fs.existsSync(cssFilePath)) {
|
|
8645
|
+
logger$1.warn("未找到 CSS 文件,跳过内联:", cssFilePath);
|
|
8646
|
+
return "";
|
|
8647
|
+
}
|
|
8648
|
+
const cssDir = path.dirname(cssFilePath);
|
|
8649
|
+
return fs.readFileSync(cssFilePath, "utf-8").replace(/url\((['"]?)(?!data:|https?:|file:|#)([^)'"]+)\1\)/g, (_match, quote, assetPath) => {
|
|
8650
|
+
const normalizedAssetPath = assetPath.trim();
|
|
8651
|
+
if (!normalizedAssetPath || normalizedAssetPath.startsWith("/")) return `url(${quote}${normalizedAssetPath}${quote})`;
|
|
8652
|
+
const absoluteAssetPath = path.resolve(cssDir, normalizedAssetPath);
|
|
8653
|
+
const dataUri = this.toDataUri(absoluteAssetPath);
|
|
8654
|
+
return dataUri ? `url(${quote}${dataUri}${quote})` : `url(${quote}${normalizedAssetPath}${quote})`;
|
|
8655
|
+
});
|
|
8656
|
+
}
|
|
8657
|
+
getInlineStyles(_htmlFilePath, includeFonts = true) {
|
|
8658
|
+
const { cssDir, imageDir } = this.resourceManager.getResourcePaths();
|
|
8659
|
+
const fontDir = path.join(path.dirname(imageDir), "font");
|
|
8660
|
+
const styleFiles = [path.join(cssDir, "karin-plugin-kkk.css")];
|
|
8661
|
+
if (includeFonts) styleFiles.unshift(path.join(fontDir, "bilifont", "font.css"), path.join(fontDir, "mono", "font.css"));
|
|
8662
|
+
return styleFiles.map((filePath) => this.loadInlineCss(filePath)).filter(Boolean).join("\n");
|
|
8663
|
+
}
|
|
8612
8664
|
wrapContent(htmlContent, htmlFilePath, isDark = false) {
|
|
8613
8665
|
const htmlDir = path.dirname(htmlFilePath);
|
|
8614
|
-
const {
|
|
8615
|
-
const
|
|
8666
|
+
const { imageDir } = this.resourceManager.getResourcePaths();
|
|
8667
|
+
const inlineStyles = this.getInlineStyles(htmlFilePath);
|
|
8616
8668
|
const imageRelativePath = path.relative(htmlDir, imageDir).replace(/\\/g, "/");
|
|
8617
|
-
const cssUrl = path.join(cssRelativePath, "karin-plugin-kkk.css").replace(/\\/g, "/");
|
|
8618
|
-
const fontDir = path.join(path.dirname(imageDir), "font");
|
|
8619
|
-
const fontRelativePath = path.relative(htmlDir, fontDir).replace(/\\/g, "/");
|
|
8620
|
-
const bilifontUrl = path.join(fontRelativePath, "bilifont/font.css").replace(/\\/g, "/");
|
|
8621
|
-
const monoFontUrl = path.join(fontRelativePath, "mono/font.css").replace(/\\/g, "/");
|
|
8622
8669
|
let processedHtml = htmlContent.replace(/src="\/image\//g, `src="${imageRelativePath}/`).replace(/src='\/image\//g, `src='${imageRelativePath}/`).replace(/src="image\//g, `src="${imageRelativePath}/`);
|
|
8623
|
-
return `\n <!DOCTYPE html>\n <html lang="zh-CN">\n <head>\n <meta charset="UTF-8">\n <meta name="viewport" content="width=device-width">\n <
|
|
8670
|
+
return `\n <!DOCTYPE html>\n <html lang="zh-CN">\n <head>\n <meta charset="UTF-8">\n <meta name="viewport" content="width=device-width">\n <style>${inlineStyles}</style>\n <style>\n html, body {\n margin: 0;\n padding: 0;\n background: transparent !important;\n }\n body {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n }\n #container {\n border-radius: 3rem;\n overflow: hidden;\n background-clip: padding-box;\n }\n </style>\n </head>\n <body class="${isDark ? "dark" : ""}">\n ${processedHtml}\n </body>\n </html>\n `;
|
|
8624
8671
|
}
|
|
8625
8672
|
};
|
|
8626
8673
|
var SSRRender = class {
|
|
@@ -8698,9 +8745,7 @@ var renderVideoPreviewPage = (options) => {
|
|
|
8698
8745
|
};
|
|
8699
8746
|
const appHtml = (0, import_server_node.renderToString)(import_react.createElement(VideoPreviewApp, { state }));
|
|
8700
8747
|
const serializedState = escapeVideoPreviewJson(state);
|
|
8701
|
-
|
|
8702
|
-
const cssFilePath = path.join(cssDir, "karin-plugin-kkk.css");
|
|
8703
|
-
return `<!DOCTYPE html>\n<html lang="zh-CN">\n<head>\n <meta charset="UTF-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <title>临时预览</title>\n <style>\n * { box-sizing: border-box; }\n :root { --preview-bg: #ffffff; --preview-fg: #0f172a; --preview-muted: #64748b; }\n @media (prefers-color-scheme: dark) {\n :root { --preview-bg: #050505; --preview-fg: #e2e8f0; --preview-muted: #94a3b8; }\n }\n body { margin: 0; font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; background: var(--preview-bg); color: var(--preview-fg); }\n .preview-noise { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.25'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; opacity: 0.8; }\n @media (max-width: 720px) {\n .max-w-6xl { padding-left: 16px; padding-right: 16px; }\n }\n </style>\n <style>${fs.existsSync(cssFilePath) ? fs.readFileSync(cssFilePath, "utf-8") : ""}</style>\n</head>\n<body>\n <div id="app">${appHtml}</div>\n <script>\n window.__VIDEO_PREVIEW__=${serializedState};\n (() => {\n const state = window.__VIDEO_PREVIEW__ || {};\n const countdownEl = document.getElementById('preview-countdown');\n if (!countdownEl) return;\n const format = (ms) => {\n const totalSeconds = Math.max(Math.floor(ms / 1000), 0);\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n const pad = (value) => String(value).padStart(2, '0');\n return hours > 0 ? pad(hours) + ':' + pad(minutes) + ':' + pad(seconds) : pad(minutes) + ':' + pad(seconds);\n };\n const update = (payload) => {\n if (!payload.removeCache) {\n countdownEl.textContent = '不删除';\n return;\n }\n if (payload.removed) {\n countdownEl.textContent = '00:00';\n return;\n }\n const remainingMs = typeof payload.remainingMs === 'number'\n ? payload.remainingMs\n : (payload.expireAt ? Math.max(payload.expireAt - (payload.serverNow || Date.now()), 0) : null);\n if (remainingMs === null) {\n countdownEl.textContent = '--:--';\n return;\n }\n countdownEl.textContent = format(remainingMs);\n };\n update(state);\n if (state.eventsUrl) {\n const source = new EventSource(state.eventsUrl);\n source.onmessage = (event) => {\n try {\n update(JSON.parse(event.data));\n } catch {}\n };\n }\n })();\n <\/script>\n</body>\n</html>`;
|
|
8748
|
+
return `<!DOCTYPE html>\n<html lang="zh-CN">\n<head>\n <meta charset="UTF-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <title>临时预览</title>\n <style>\n * { box-sizing: border-box; }\n :root { --preview-bg: #ffffff; --preview-fg: #0f172a; --preview-muted: #64748b; }\n @media (prefers-color-scheme: dark) {\n :root { --preview-bg: #050505; --preview-fg: #e2e8f0; --preview-muted: #94a3b8; }\n }\n body { margin: 0; font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; background: var(--preview-bg); color: var(--preview-fg); }\n .preview-noise { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.25'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; opacity: 0.8; }\n @media (max-width: 720px) {\n .max-w-6xl { padding-left: 16px; padding-right: 16px; }\n }\n </style>\n <style>${new HtmlWrapper(new ResourcePathManager()).getInlineStyles(path.join(process.cwd(), "video-preview.html"), false)}</style>\n</head>\n<body>\n <div id="app">${appHtml}</div>\n <script>\n window.__VIDEO_PREVIEW__=${serializedState};\n (() => {\n const state = window.__VIDEO_PREVIEW__ || {};\n const countdownEl = document.getElementById('preview-countdown');\n if (!countdownEl) return;\n const format = (ms) => {\n const totalSeconds = Math.max(Math.floor(ms / 1000), 0);\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n const pad = (value) => String(value).padStart(2, '0');\n return hours > 0 ? pad(hours) + ':' + pad(minutes) + ':' + pad(seconds) : pad(minutes) + ':' + pad(seconds);\n };\n const update = (payload) => {\n if (!payload.removeCache) {\n countdownEl.textContent = '不删除';\n return;\n }\n if (payload.removed) {\n countdownEl.textContent = '00:00';\n return;\n }\n const remainingMs = typeof payload.remainingMs === 'number'\n ? payload.remainingMs\n : (payload.expireAt ? Math.max(payload.expireAt - (payload.serverNow || Date.now()), 0) : null);\n if (remainingMs === null) {\n countdownEl.textContent = '--:--';\n return;\n }\n countdownEl.textContent = format(remainingMs);\n };\n update(state);\n if (state.eventsUrl) {\n const source = new EventSource(state.eventsUrl);\n source.onmessage = (event) => {\n try {\n update(JSON.parse(event.data));\n } catch {}\n };\n }\n })();\n <\/script>\n</body>\n</html>`;
|
|
8704
8749
|
};
|
|
8705
8750
|
var isSemverGreater = (remote, local) => {
|
|
8706
8751
|
if (!remote || !local) return false;
|
|
@@ -8856,7 +8901,7 @@ var Render = async (event, path$1, data) => {
|
|
|
8856
8901
|
throw new Error(`SSR渲染失败: ${err.message || "未知错误"}`);
|
|
8857
8902
|
});
|
|
8858
8903
|
const renderResult = await render.render({
|
|
8859
|
-
name: `${Root.pluginName}/${templateType}
|
|
8904
|
+
name: `${Root.pluginName}/${templateType}`,
|
|
8860
8905
|
file: result.htmlPath,
|
|
8861
8906
|
multiPage: Config.app.multiPageRender ? Config.app.multiPageHeight : false,
|
|
8862
8907
|
selector: "#container",
|
|
@@ -8888,7 +8933,8 @@ var Render = async (event, path$1, data) => {
|
|
|
8888
8933
|
});
|
|
8889
8934
|
ret.push(segment.image("base64://" + finalImageBuffer.toString("base64")));
|
|
8890
8935
|
}
|
|
8891
|
-
|
|
8936
|
+
const statsText = imageStats.map((stat, i) => ` [${i + 1}] 类型: ${stat.type}, 大小: ${stat.sizeMb}MB, 尺寸: ${stat.dimensions}`).join("\n");
|
|
8937
|
+
logger.debug(`[Render] 图片处理完成,准备入队发送:\n共 ${imageStats.length} 张图片:\n${statsText}`);
|
|
8892
8938
|
return ret;
|
|
8893
8939
|
};
|
|
8894
8940
|
var getImageMetadata = (buffer) => {
|
|
@@ -16601,18 +16647,42 @@ var DouYin = class DouYin extends Base {
|
|
|
16601
16647
|
timeoutSeconds
|
|
16602
16648
|
});
|
|
16603
16649
|
await this.e.reply(img);
|
|
16650
|
+
logger.debug(`等待用户选择视频,开始计时,${timeoutSeconds}秒后终止等待...`);
|
|
16604
16651
|
const context = await karin$1.ctx(this.e, {
|
|
16605
|
-
|
|
16652
|
+
throwOnTimeout: false,
|
|
16606
16653
|
time: timeoutSeconds
|
|
16607
16654
|
});
|
|
16655
|
+
if (!context) {
|
|
16656
|
+
await this.e.reply(`${timeoutSeconds} 秒内没收到作品序号,已取消后续操作`);
|
|
16657
|
+
return true;
|
|
16658
|
+
}
|
|
16608
16659
|
if (context) {
|
|
16609
16660
|
const num = parseInt(context.msg.trim());
|
|
16610
16661
|
if (!isNaN(num) && num >= 1 && num <= displayVideos.length) {
|
|
16611
|
-
const
|
|
16612
|
-
|
|
16613
|
-
|
|
16614
|
-
|
|
16615
|
-
|
|
16662
|
+
const emojiManager = new EmojiReactionManager(context);
|
|
16663
|
+
let processingTimer = null;
|
|
16664
|
+
let successTimer = null;
|
|
16665
|
+
await emojiManager.add("EYES");
|
|
16666
|
+
processingTimer = setTimeout(() => {
|
|
16667
|
+
emojiManager.add("PROCESSING").catch(() => {});
|
|
16668
|
+
}, 1500);
|
|
16669
|
+
try {
|
|
16670
|
+
const targetData = {
|
|
16671
|
+
type: "one_work",
|
|
16672
|
+
aweme_id: displayVideos[num - 1].aweme_id
|
|
16673
|
+
};
|
|
16674
|
+
await new DouYin(context, targetData).DouyinHandler(targetData);
|
|
16675
|
+
successTimer = setTimeout(() => {
|
|
16676
|
+
emojiManager.replace("PROCESSING", "SUCCESS").catch(() => {});
|
|
16677
|
+
}, 1500);
|
|
16678
|
+
} catch (error) {
|
|
16679
|
+
if (processingTimer) clearTimeout(processingTimer);
|
|
16680
|
+
if (successTimer) clearTimeout(successTimer);
|
|
16681
|
+
const processingEmojiId = getEmojiId(context, "PROCESSING");
|
|
16682
|
+
if (emojiManager.has(processingEmojiId)) await emojiManager.remove("PROCESSING");
|
|
16683
|
+
await emojiManager.add("ERROR");
|
|
16684
|
+
throw error;
|
|
16685
|
+
}
|
|
16616
16686
|
}
|
|
16617
16687
|
}
|
|
16618
16688
|
return true;
|
|
@@ -16681,7 +16751,7 @@ var DouYin = class DouYin extends Base {
|
|
|
16681
16751
|
text: live_data.data.data[0].title,
|
|
16682
16752
|
liveinf: `${live_data.data.partition_road_map.partition.title} | 房间号: ${room_data.owner.web_rid}`,
|
|
16683
16753
|
"在线观众": Count(Number(live_data.data.data[0].room_view_stats?.display_value)),
|
|
16684
|
-
"总观看次数": Count(Number(live_data.data.data[0].stats?.total_user_str)),
|
|
16754
|
+
"总观看次数": live_data.data.data[0].stats?.total_user_str ? Count(Number(live_data.data.data[0].stats?.total_user_str)) : "刚开播无法获取",
|
|
16685
16755
|
username: UserInfoData.data.user.nickname,
|
|
16686
16756
|
avater_url: UserInfoData.data.user.avatar_larger.url_list[0],
|
|
16687
16757
|
fans: Count(UserInfoData.data.user.follower_count),
|
|
@@ -16938,7 +17008,7 @@ var getDouyinID = async (event, url, log = true) => {
|
|
|
16938
17008
|
};
|
|
16939
17009
|
break;
|
|
16940
17010
|
}
|
|
16941
|
-
case /https:\/\/(?:www\.douyin\.com|www\.iesdouyin\.com)\/share\/user\/(\S+)/.test(longLink): {
|
|
17011
|
+
case /https:\/\/(?:www\.douyin\.com|www\.iesdouyin\.com)\/(?:share\/)?user\/(\S+)/.test(longLink): {
|
|
16942
17012
|
const userMatch = /user\/([a-zA-Z0-9_-]+)/.exec(longLink);
|
|
16943
17013
|
result = {
|
|
16944
17014
|
type: "user_dynamic",
|
|
@@ -17245,19 +17315,21 @@ var DouYinpush = class extends Base {
|
|
|
17245
17315
|
let iddata = { type: "one_work" };
|
|
17246
17316
|
this.injectBotToEventForRender(pushItem.targets);
|
|
17247
17317
|
if (!skip) iddata = await getDouyinID(this.e, Detail_Data.share_url ?? "https://live.douyin.com/" + Detail_Data.room_data?.owner.web_rid, false);
|
|
17248
|
-
if (!skip) if (pushItem.pushType === "live" && "room_data" in pushItem.Detail_Data && Detail_Data.live_data)
|
|
17249
|
-
|
|
17250
|
-
|
|
17251
|
-
|
|
17252
|
-
|
|
17253
|
-
|
|
17254
|
-
|
|
17255
|
-
|
|
17256
|
-
|
|
17257
|
-
|
|
17258
|
-
|
|
17259
|
-
|
|
17260
|
-
|
|
17318
|
+
if (!skip) if (pushItem.pushType === "live" && "room_data" in pushItem.Detail_Data && Detail_Data.live_data) {
|
|
17319
|
+
const hasData = Detail_Data.live_data.data && Detail_Data.live_data.data.data && Detail_Data.live_data.data.data.length > 0;
|
|
17320
|
+
img = await Render(this.e, "douyin/live", {
|
|
17321
|
+
image_url: Detail_Data.live_data.data.data.data[0]?.cover?.url_list[0] ?? Detail_Data.live_data.data.data.qrcode_url,
|
|
17322
|
+
text: Detail_Data.live_data.data.data.data[0]?.title ?? "",
|
|
17323
|
+
liveinf: `${Detail_Data.live_data.data.data.partition_road_map?.partition?.title ?? Detail_Data.live_data.data.data.data[0]?.title ?? "获取失败"} | 房间号: ${Detail_Data.room_data.owner.web_rid}`,
|
|
17324
|
+
"在线观众": hasData && Detail_Data.live_data.data.data.data[0].room_view_stats?.display_value ? this.count(Detail_Data.live_data.data.data.data[0].room_view_stats.display_value) : ":语音直播或刚开播获取失败。",
|
|
17325
|
+
"总观看次数": hasData ? Detail_Data.live_data.data.data.data[0].stats?.total_user_str ? this.count(Number(Detail_Data.live_data.data.data.data[0].stats.total_user_str)) : "刚开播无法获取" : ":语音直播不支持",
|
|
17326
|
+
username: Detail_Data.user_info.data.user.nickname,
|
|
17327
|
+
avater_url: "https://p3-pc.douyinpic.com/aweme/1080x1080/" + Detail_Data.user_info.data.user.avatar_larger.uri,
|
|
17328
|
+
fans: this.count(Detail_Data.user_info.data.user.follower_count),
|
|
17329
|
+
share_url: "https://live.douyin.com/" + Detail_Data.room_data.owner.web_rid,
|
|
17330
|
+
dynamicTYPE: "直播动态推送"
|
|
17331
|
+
});
|
|
17332
|
+
} else {
|
|
17261
17333
|
const realUrl = Config.douyin.push.shareType === "web" && await new Network({
|
|
17262
17334
|
url: Detail_Data.share_url,
|
|
17263
17335
|
headers: {
|
|
@@ -18462,7 +18534,7 @@ var handleCacheCleanup = wrapWithErrorHandler(async () => {
|
|
|
18462
18534
|
logger.mark(`${Common.tempDri.images} 目录下已删除 ${imageDeleted} 个文件`);
|
|
18463
18535
|
}
|
|
18464
18536
|
}, { businessName: "缓存自动删除" });
|
|
18465
|
-
var task = Config.app.removeCache && karin$1.task("[kkk-缓存自动删除]", "
|
|
18537
|
+
var task = Config.app.removeCache && karin$1.task("[kkk-缓存自动删除]", "*/30 * * * *", handleCacheCleanup);
|
|
18466
18538
|
var handleBilibiliLogin = wrapWithErrorHandler(async (e) => {
|
|
18467
18539
|
await bilibiliLogin(e);
|
|
18468
18540
|
return true;
|
|
@@ -18488,7 +18560,7 @@ var removeOldFiles = (dir, beforeTimestamp) => {
|
|
|
18488
18560
|
if (stats.isDirectory()) {
|
|
18489
18561
|
deletedCount += removeOldFiles(filePath, beforeTimestamp);
|
|
18490
18562
|
if (fs.readdirSync(filePath).length === 0) fs.rmdirSync(filePath);
|
|
18491
|
-
} else if (stats.
|
|
18563
|
+
} else if (stats.birthtimeMs < beforeTimestamp) {
|
|
18492
18564
|
fs.unlinkSync(filePath);
|
|
18493
18565
|
deletedCount++;
|
|
18494
18566
|
}
|
|
@@ -23067,7 +23139,7 @@ app$1.get("/video/:filename", getVideoRouter);
|
|
|
23067
23139
|
app$1.get("/video/:filename/events", videoPreviewEventsRouter);
|
|
23068
23140
|
app$1.use("/v1", apiRouter);
|
|
23069
23141
|
app.use("/api/kkk", app$1);
|
|
23070
|
-
var requireVersion = "1.15.
|
|
23142
|
+
var requireVersion = "1.15.2";
|
|
23071
23143
|
if (process.env.NODE_ENV !== "development" && isSemverGreater(requireVersion, Root.karinVersion)) {
|
|
23072
23144
|
const msg = `[karin-plugin-kkk] 插件构建时的 karin 版本 (${requireVersion}) 高于当前运行版本 (${Root.karinVersion}),可能会出现兼容性问题!`;
|
|
23073
23145
|
logger.warn(msg);
|
|
@@ -24407,7 +24479,7 @@ var CommentItemComponent$2 = ({ isLast = false, ...props }) => (0, import_jsx_ru
|
|
|
24407
24479
|
children: [
|
|
24408
24480
|
(0, import_jsx_runtime.jsx)("div", {
|
|
24409
24481
|
className: "[&>span]:inline-block [&>span]:leading-[1.2] [&>svg]:inline-block [&>svg]:w-25 [&>svg]:h-25 [&>svg]:align-middle [&>svg]:shrink-0",
|
|
24410
|
-
dangerouslySetInnerHTML: { __html: props.uname }
|
|
24482
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.uname) }
|
|
24411
24483
|
}),
|
|
24412
24484
|
props.level !== void 0 && props.level >= 0 && props.level <= 7 && (0, import_jsx_runtime.jsx)("img", {
|
|
24413
24485
|
src: `/image/bilibili/level/lv${props.level}.svg`,
|
|
@@ -24471,7 +24543,7 @@ var CommentItemComponent$2 = ({ isLast = false, ...props }) => (0, import_jsx_ru
|
|
|
24471
24543
|
wordBreak: "break-word",
|
|
24472
24544
|
overflowWrap: "break-word"
|
|
24473
24545
|
},
|
|
24474
|
-
children: [props.isTop && (0, import_jsx_runtime.jsx)(TopBadge, {}), (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: processCommentHTML$1(props.message) } })]
|
|
24546
|
+
children: [props.isTop && (0, import_jsx_runtime.jsx)(TopBadge, {}), (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(processCommentHTML$1(props.message)) } })]
|
|
24475
24547
|
}),
|
|
24476
24548
|
props.pictures && props.pictures.length > 0 && (0, import_jsx_runtime.jsx)("div", {
|
|
24477
24549
|
className: "flex gap-5 my-5 w-[95%]",
|
|
@@ -24571,7 +24643,7 @@ var CommentItemComponent$2 = ({ isLast = false, ...props }) => (0, import_jsx_ru
|
|
|
24571
24643
|
children: [
|
|
24572
24644
|
(0, import_jsx_runtime.jsx)("div", {
|
|
24573
24645
|
className: "[&>span]:inline-block [&>span]:leading-[1.2]",
|
|
24574
|
-
dangerouslySetInnerHTML: { __html: subReply.uname }
|
|
24646
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(subReply.uname) }
|
|
24575
24647
|
}),
|
|
24576
24648
|
subReply.level !== void 0 && subReply.level >= 0 && subReply.level <= 7 && (0, import_jsx_runtime.jsx)("img", {
|
|
24577
24649
|
src: `/image/bilibili/level/lv${subReply.level}.svg`,
|
|
@@ -24625,7 +24697,7 @@ var CommentItemComponent$2 = ({ isLast = false, ...props }) => (0, import_jsx_ru
|
|
|
24625
24697
|
wordBreak: "break-word",
|
|
24626
24698
|
overflowWrap: "break-word"
|
|
24627
24699
|
},
|
|
24628
|
-
dangerouslySetInnerHTML: { __html: processCommentHTML$1(subReply.message) }
|
|
24700
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(processCommentHTML$1(subReply.message)) }
|
|
24629
24701
|
}),
|
|
24630
24702
|
subReply.pictures && subReply.pictures.length > 0 && (0, import_jsx_runtime.jsx)("div", {
|
|
24631
24703
|
className: "flex gap-5 my-5 w-[95%]",
|
|
@@ -24751,11 +24823,14 @@ var processCommentHTML = (htmlContent) => {
|
|
|
24751
24823
|
processed = processed.replace(/¨/g, "•");
|
|
24752
24824
|
return processed;
|
|
24753
24825
|
};
|
|
24754
|
-
var CommentText = ({ content, className, style }) =>
|
|
24755
|
-
|
|
24756
|
-
|
|
24757
|
-
|
|
24758
|
-
|
|
24826
|
+
var CommentText = ({ content, className, style }) => {
|
|
24827
|
+
const processedContent = processCommentHTML(content);
|
|
24828
|
+
return (0, import_jsx_runtime.jsx)("div", {
|
|
24829
|
+
className,
|
|
24830
|
+
style,
|
|
24831
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(processedContent) }
|
|
24832
|
+
});
|
|
24833
|
+
};
|
|
24759
24834
|
var EnhancedImage = ({ src, alt, className = "", placeholder, isCircular = false }) => {
|
|
24760
24835
|
const [hasError, setHasError] = (0, import_react.useState)(false);
|
|
24761
24836
|
const handleError = () => {
|
|
@@ -24787,10 +24862,13 @@ var processHtmlImages = (html) => {
|
|
|
24787
24862
|
processed = processed.replace(/<img([^>]*?)src=['"]?(https?:\/\/[^'">\s]+)['"]?([^>]*?)>/gi, (match, before, url, after) => `<img${before}src="${proxyImageUrl(url)}"${after} referrerpolicy="no-referrer" crossorigin="anonymous">`);
|
|
24788
24863
|
return processed;
|
|
24789
24864
|
};
|
|
24790
|
-
var DecorationCard = ({ html }) =>
|
|
24791
|
-
|
|
24792
|
-
|
|
24793
|
-
|
|
24865
|
+
var DecorationCard = ({ html }) => {
|
|
24866
|
+
const processedHtml = processHtmlImages(html);
|
|
24867
|
+
return (0, import_jsx_runtime.jsx)("div", {
|
|
24868
|
+
className: "font-bilifont",
|
|
24869
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(processedHtml) }
|
|
24870
|
+
});
|
|
24871
|
+
};
|
|
24794
24872
|
var BilibiliUserItem = (props) => (0, import_jsx_runtime.jsxs)("li", {
|
|
24795
24873
|
className: "relative group overflow-hidden rounded-4xl bg-content1/60 border border-default-200/50 backdrop-blur-xl shadow-xl",
|
|
24796
24874
|
children: [
|
|
@@ -25731,7 +25809,7 @@ var BilibiliArticleUserInfo = import_react.memo((props) => (0, import_jsx_runtim
|
|
|
25731
25809
|
className: "flex flex-col gap-8 text-7xl",
|
|
25732
25810
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
25733
25811
|
className: "text-6xl font-bold select-text text-foreground",
|
|
25734
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.data.username } })
|
|
25812
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.username) } })
|
|
25735
25813
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
25736
25814
|
className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-foreground-500",
|
|
25737
25815
|
children: [(0, import_jsx_runtime.jsx)(Clock, {
|
|
@@ -25793,7 +25871,7 @@ var BilibiliArticleContent = import_react.memo((props) => {
|
|
|
25793
25871
|
}),
|
|
25794
25872
|
sanitizedHtmlContent && (0, import_jsx_runtime.jsx)("div", {
|
|
25795
25873
|
className: "flex-col items-center mb-8 select-text",
|
|
25796
|
-
dangerouslySetInnerHTML: { __html: sanitizedHtmlContent }
|
|
25874
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(sanitizedHtmlContent) }
|
|
25797
25875
|
})
|
|
25798
25876
|
]
|
|
25799
25877
|
});
|
|
@@ -25925,7 +26003,7 @@ var BilibiliArticleFooter = import_react.memo((props) => (0, import_jsx_runtime.
|
|
|
25925
26003
|
className: "flex flex-col gap-5",
|
|
25926
26004
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
25927
26005
|
className: "text-7xl font-bold select-text text-foreground",
|
|
25928
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.data.username } })
|
|
26006
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.username) } })
|
|
25929
26007
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
25930
26008
|
className: "flex gap-2 items-center text-4xl text-default-500",
|
|
25931
26009
|
children: [(0, import_jsx_runtime.jsx)(Hash, {
|
|
@@ -26296,7 +26374,7 @@ var BilibiliVideoDynamicFooter = (props) => {
|
|
|
26296
26374
|
className: "flex flex-col gap-5",
|
|
26297
26375
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
26298
26376
|
className: "text-7xl font-bold select-text text-foreground",
|
|
26299
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.data.username } })
|
|
26377
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.username) } })
|
|
26300
26378
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
26301
26379
|
className: "flex gap-2 items-center text-4xl text-default-500",
|
|
26302
26380
|
children: [
|
|
@@ -26607,7 +26685,7 @@ var BilibiliDynamicUserInfo$1 = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
26607
26685
|
className: "flex flex-col gap-8 text-7xl",
|
|
26608
26686
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
26609
26687
|
className: "text-6xl font-bold select-text text-foreground",
|
|
26610
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.username } })
|
|
26688
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.username) } })
|
|
26611
26689
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
26612
26690
|
className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-foreground-500",
|
|
26613
26691
|
children: [(0, import_jsx_runtime.jsx)(Clock, {
|
|
@@ -26801,7 +26879,7 @@ var BilibiliDynamicFooter$1 = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
26801
26879
|
className: "flex flex-col gap-5",
|
|
26802
26880
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
26803
26881
|
className: "text-7xl font-bold select-text text-foreground",
|
|
26804
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.username } })
|
|
26882
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.username) } })
|
|
26805
26883
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
26806
26884
|
className: "flex gap-2 items-center text-4xl text-default-500",
|
|
26807
26885
|
children: [(0, import_jsx_runtime.jsx)(Hash, {
|
|
@@ -26957,7 +27035,7 @@ var BilibiliForwardUserInfo = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
26957
27035
|
className: "flex flex-col gap-8 text-7xl",
|
|
26958
27036
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
26959
27037
|
className: "text-6xl font-bold select-text text-foreground",
|
|
26960
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.username } })
|
|
27038
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.username) } })
|
|
26961
27039
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
26962
27040
|
className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-foreground-500",
|
|
26963
27041
|
children: [(0, import_jsx_runtime.jsx)(Clock, {
|
|
@@ -26991,7 +27069,7 @@ var OriginalUserInfo = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
26991
27069
|
className: "flex flex-col gap-4 text-7xl",
|
|
26992
27070
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
26993
27071
|
className: "text-5xl font-normal select-text text-foreground",
|
|
26994
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.username } })
|
|
27072
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.username) } })
|
|
26995
27073
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
26996
27074
|
className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-foreground-500",
|
|
26997
27075
|
children: [(0, import_jsx_runtime.jsx)(Clock, {
|
|
@@ -27044,7 +27122,7 @@ var OriginalAVContent = ({ content }) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
27044
27122
|
}),
|
|
27045
27123
|
(0, import_jsx_runtime.jsx)("div", {
|
|
27046
27124
|
className: "pb-10 pl-8 text-6xl font-bold select-text leading-20 text-foreground",
|
|
27047
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: content.title } })
|
|
27125
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(content.title) } })
|
|
27048
27126
|
})
|
|
27049
27127
|
]
|
|
27050
27128
|
});
|
|
@@ -27156,7 +27234,7 @@ var OriginalLiveRcmdContent = ({ content }) => (0, import_jsx_runtime.jsxs)("div
|
|
|
27156
27234
|
}),
|
|
27157
27235
|
(0, import_jsx_runtime.jsx)("div", {
|
|
27158
27236
|
className: "pl-8 text-6xl font-bold select-text text-foreground",
|
|
27159
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: content.title } })
|
|
27237
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(content.title) } })
|
|
27160
27238
|
})
|
|
27161
27239
|
]
|
|
27162
27240
|
});
|
|
@@ -27275,7 +27353,7 @@ var BilibiliForwardFooter = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
27275
27353
|
className: "flex flex-col gap-5",
|
|
27276
27354
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
27277
27355
|
className: "text-7xl font-bold select-text text-foreground",
|
|
27278
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.username } })
|
|
27356
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.username) } })
|
|
27279
27357
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
27280
27358
|
className: "flex gap-2 items-center text-4xl text-default-500",
|
|
27281
27359
|
children: [(0, import_jsx_runtime.jsx)(Hash, {
|
|
@@ -27591,7 +27669,7 @@ var BilibiliDynamicUserInfo = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
27591
27669
|
className: "flex flex-col gap-8 text-7xl",
|
|
27592
27670
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
27593
27671
|
className: "text-6xl font-bold select-text text-foreground",
|
|
27594
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.username } })
|
|
27672
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.username) } })
|
|
27595
27673
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
27596
27674
|
className: "flex gap-2 items-center text-4xl font-normal whitespace-nowrap text-foreground-500",
|
|
27597
27675
|
children: [(0, import_jsx_runtime.jsx)(Clock, {
|
|
@@ -27699,7 +27777,7 @@ var BilibiliDynamicFooter = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
27699
27777
|
className: "flex flex-col gap-5",
|
|
27700
27778
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
27701
27779
|
className: "text-7xl font-bold select-text text-foreground",
|
|
27702
|
-
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: props.username } })
|
|
27780
|
+
children: (0, import_jsx_runtime.jsx)("span", { dangerouslySetInnerHTML: { __html: purify.sanitize(props.username) } })
|
|
27703
27781
|
}), (0, import_jsx_runtime.jsxs)("div", {
|
|
27704
27782
|
className: "flex gap-2 items-center text-4xl text-default-500",
|
|
27705
27783
|
children: [(0, import_jsx_runtime.jsx)(Hash, {
|
|
@@ -28737,7 +28815,7 @@ var ReplyItemComponent = ({ reply, depth = 0, isLast, maxDepth = 6 }) => {
|
|
|
28737
28815
|
className: "py-2",
|
|
28738
28816
|
children: [(0, import_jsx_runtime.jsx)("div", {
|
|
28739
28817
|
className: "text-5xl text-foreground leading-normal whitespace-pre-wrap select-text [&_img]:mb-2 [&_img]:inline [&_img]:h-[1.3em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.7em]",
|
|
28740
|
-
dangerouslySetInnerHTML: { __html: reply.text },
|
|
28818
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(reply.text) },
|
|
28741
28819
|
style: {
|
|
28742
28820
|
wordBreak: "break-word",
|
|
28743
28821
|
overflowWrap: "break-word"
|
|
@@ -28837,7 +28915,7 @@ var CommentItemComponent$1 = (props) => (0, import_jsx_runtime.jsx)("div", {
|
|
|
28837
28915
|
}),
|
|
28838
28916
|
(0, import_jsx_runtime.jsx)("div", {
|
|
28839
28917
|
className: "text-5xl text-foreground leading-normal mb-4 whitespace-pre-wrap select-text [&_img]:mb-2 [&_img]:inline [&_img]:h-[1.3em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.7em]",
|
|
28840
|
-
dangerouslySetInnerHTML: { __html: props.text },
|
|
28918
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.text) },
|
|
28841
28919
|
style: {
|
|
28842
28920
|
wordBreak: "break-word",
|
|
28843
28921
|
overflowWrap: "break-word"
|
|
@@ -28979,7 +29057,7 @@ var InfoSection$2 = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
28979
29057
|
letterSpacing: "1.5px",
|
|
28980
29058
|
wordWrap: "break-word"
|
|
28981
29059
|
},
|
|
28982
|
-
dangerouslySetInnerHTML: { __html: props.data.desc }
|
|
29060
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.desc) }
|
|
28983
29061
|
}),
|
|
28984
29062
|
(0, import_jsx_runtime.jsxs)("div", {
|
|
28985
29063
|
className: "flex items-center gap-6 text-[45px] text-foreground-500 font-light mb-2.5 select-text",
|
|
@@ -29441,7 +29519,7 @@ var DouyinFavoriteList = (props) => {
|
|
|
29441
29519
|
className: "text-rose-500/90 shrink-0 rotate-180 mt-2"
|
|
29442
29520
|
}), (0, import_jsx_runtime.jsx)("div", {
|
|
29443
29521
|
className: "text-white text-4xl font-medium leading-relaxed line-clamp-3 drop-shadow-lg tracking-wide",
|
|
29444
|
-
dangerouslySetInnerHTML: { __html: props.data.desc || "分享视频" }
|
|
29522
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.desc) || "分享视频" }
|
|
29445
29523
|
})]
|
|
29446
29524
|
})
|
|
29447
29525
|
})]
|
|
@@ -29520,7 +29598,7 @@ var InfoSection$1 = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
29520
29598
|
letterSpacing: "1.5px",
|
|
29521
29599
|
wordWrap: "break-word"
|
|
29522
29600
|
},
|
|
29523
|
-
dangerouslySetInnerHTML: { __html: props.data.desc }
|
|
29601
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.desc) }
|
|
29524
29602
|
}),
|
|
29525
29603
|
(0, import_jsx_runtime.jsxs)("div", {
|
|
29526
29604
|
className: "flex items-center gap-6 text-[45px] text-foreground-500 font-light mb-2.5 select-text",
|
|
@@ -29937,7 +30015,7 @@ var MusicInfoSection = ({ desc, musicId, userCount, createTime }) => (0, import_
|
|
|
29937
30015
|
letterSpacing: "1.5px",
|
|
29938
30016
|
wordWrap: "break-word"
|
|
29939
30017
|
},
|
|
29940
|
-
dangerouslySetInnerHTML: { __html: desc }
|
|
30018
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(desc) }
|
|
29941
30019
|
}),
|
|
29942
30020
|
(0, import_jsx_runtime.jsxs)("div", {
|
|
29943
30021
|
className: "flex flex-col gap-2 text-[45px] text-default-500 font-light mb-2.5",
|
|
@@ -30258,7 +30336,7 @@ var DouyinRecommendList = (props) => {
|
|
|
30258
30336
|
className: "text-emerald-500/90 shrink-0 rotate-180 mt-2"
|
|
30259
30337
|
}), (0, import_jsx_runtime.jsx)("div", {
|
|
30260
30338
|
className: "text-white text-4xl font-medium leading-relaxed line-clamp-3 drop-shadow-lg tracking-wide",
|
|
30261
|
-
dangerouslySetInnerHTML: { __html: props.data.desc || "分享视频" }
|
|
30339
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.desc) || "分享视频" }
|
|
30262
30340
|
})]
|
|
30263
30341
|
})
|
|
30264
30342
|
})]
|
|
@@ -30885,7 +30963,7 @@ var InfoSection = (props) => (0, import_jsx_runtime.jsxs)("div", {
|
|
|
30885
30963
|
letterSpacing: "1.5px",
|
|
30886
30964
|
wordWrap: "break-word"
|
|
30887
30965
|
},
|
|
30888
|
-
dangerouslySetInnerHTML: { __html: props.data.desc }
|
|
30966
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.desc) }
|
|
30889
30967
|
}),
|
|
30890
30968
|
(0, import_jsx_runtime.jsxs)("div", {
|
|
30891
30969
|
className: "flex items-center gap-6 text-[45px] text-foreground-500 font-light mb-2.5 select-text",
|
|
@@ -31670,7 +31748,7 @@ var KuaishouCommentItemComponent = ({ comment, isLast = false }) => (0, import_j
|
|
|
31670
31748
|
}),
|
|
31671
31749
|
(0, import_jsx_runtime.jsx)("div", {
|
|
31672
31750
|
className: "text-[60px] text-foreground leading-relaxed mb-2 whitespace-pre-wrap [&_img]:mb-3 [&_img]:inline [&_img]:h-[1.4em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.7em] select-text",
|
|
31673
|
-
dangerouslySetInnerHTML: { __html: comment.text },
|
|
31751
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(comment.text) },
|
|
31674
31752
|
style: {
|
|
31675
31753
|
wordBreak: "break-word",
|
|
31676
31754
|
overflowWrap: "break-word"
|
|
@@ -34629,7 +34707,7 @@ var handlerError = (props) => {
|
|
|
34629
34707
|
children: (0, import_jsx_runtime.jsx)("pre", {
|
|
34630
34708
|
className: "text-3xl leading-relaxed whitespace-pre-wrap break-all font-mono",
|
|
34631
34709
|
style: { color: accentColor },
|
|
34632
|
-
dangerouslySetInnerHTML: { __html: convertAnsiToHtml(data.triggerCommand) }
|
|
34710
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(convertAnsiToHtml(data.triggerCommand)) }
|
|
34633
34711
|
})
|
|
34634
34712
|
})]
|
|
34635
34713
|
}),
|
|
@@ -34654,7 +34732,7 @@ var handlerError = (props) => {
|
|
|
34654
34732
|
children: (0, import_jsx_runtime.jsx)("pre", {
|
|
34655
34733
|
className: "text-2xl leading-relaxed whitespace-pre-wrap break-all font-mono",
|
|
34656
34734
|
style: { color: isDark ? "rgba(255,255,255,0.85)" : "rgba(127,29,29,0.9)" },
|
|
34657
|
-
dangerouslySetInnerHTML: { __html: convertAnsiToHtml(String(businessError?.stack || data.error?.stack || "")) }
|
|
34735
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(convertAnsiToHtml(String(businessError?.stack || data.error?.stack || ""))) }
|
|
34658
34736
|
})
|
|
34659
34737
|
})]
|
|
34660
34738
|
}),
|
|
@@ -34714,7 +34792,7 @@ var handlerError = (props) => {
|
|
|
34714
34792
|
(0, import_jsx_runtime.jsx)("div", {
|
|
34715
34793
|
className: "relative z-1 text-2xl font-mono whitespace-pre-wrap break-all leading-relaxed",
|
|
34716
34794
|
style: { color: isDark ? "rgba(255,255,255,0.88)" : "rgba(0,0,0,0.82)" },
|
|
34717
|
-
dangerouslySetInnerHTML: { __html: convertAnsiToHtml(log.message) }
|
|
34795
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(convertAnsiToHtml(log.message)) }
|
|
34718
34796
|
})
|
|
34719
34797
|
]
|
|
34720
34798
|
}, index);
|
|
@@ -35366,7 +35444,7 @@ var CommentItemComponent = ({ comment, isLast = false }) => (0, import_jsx_runti
|
|
|
35366
35444
|
}),
|
|
35367
35445
|
(0, import_jsx_runtime.jsx)("div", {
|
|
35368
35446
|
className: "text-[60px] text-foreground leading-relaxed mb-2 whitespace-pre-wrap select-text [&_img]:mb-3 [&_img]:inline [&_img]:h-[1.4em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.7em] [&_span]:inline",
|
|
35369
|
-
dangerouslySetInnerHTML: { __html: comment.content },
|
|
35447
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(comment.content) },
|
|
35370
35448
|
style: {
|
|
35371
35449
|
wordBreak: "break-word",
|
|
35372
35450
|
overflowWrap: "break-word"
|
|
@@ -35450,7 +35528,7 @@ var CommentItemComponent = ({ comment, isLast = false }) => (0, import_jsx_runti
|
|
|
35450
35528
|
}),
|
|
35451
35529
|
(0, import_jsx_runtime.jsx)("div", {
|
|
35452
35530
|
className: "text-[45px] text-foreground leading-relaxed mb-2 select-text [&_img]:mb-2 [&_img]:inline [&_img]:h-[1.2em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.5em] [&_span]:inline",
|
|
35453
|
-
dangerouslySetInnerHTML: { __html: subComment.content },
|
|
35531
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(subComment.content) },
|
|
35454
35532
|
style: {
|
|
35455
35533
|
wordBreak: "break-word",
|
|
35456
35534
|
overflowWrap: "break-word"
|
|
@@ -35592,7 +35670,7 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
|
|
|
35592
35670
|
}),
|
|
35593
35671
|
(0, import_jsx_runtime.jsx)("div", {
|
|
35594
35672
|
className: "text-5xl text-foreground-700 leading-relaxed mb-8 whitespace-pre-wrap select-text [&_img]:mb-3 [&_img]:inline [&_img]:h-[1.4em] [&_img]:w-auto [&_img]:align-middle [&_img]:mx-1 [&_img]:max-w-[1.7em]",
|
|
35595
|
-
dangerouslySetInnerHTML: { __html: props.data.desc }
|
|
35673
|
+
dangerouslySetInnerHTML: { __html: purify.sanitize(props.data.desc) }
|
|
35596
35674
|
}),
|
|
35597
35675
|
(0, import_jsx_runtime.jsxs)("div", {
|
|
35598
35676
|
className: "flex gap-8 items-center text-5xl text-foreground-500",
|
|
@@ -35675,4 +35753,4 @@ var XiaohongshuNoteInfo = import_react.memo((props) => {
|
|
|
35675
35753
|
});
|
|
35676
35754
|
});
|
|
35677
35755
|
XiaohongshuNoteInfo.displayName = "XiaohongshuNoteInfo";
|
|
35678
|
-
export { setdyPush as $, BilibiliVideoDynamic as A, kuaishouAPP as B, DouyinArticleWork as C,
|
|
35756
|
+
export { setdyPush as $, BilibiliVideoDynamic as A, kuaishouAPP as B, DouyinArticleWork as C, amagiClient as Ct, BilibiliLiveDynamic as D, reloadAmagiConfig as Dt, BilibiliWordDynamic as E, kuaishouFetcher as Et, kkkUpdate as F, qrLogin as G, xiaohongshuAPP as H, kkkUpdateCommand as I, changeBotID as J, bilibiliPush as K, update as L, BangumiBilibili as M, BilibiliUserList as N, BilibiliForwardDynamic as O, Root as Ot, BilibiliComment as P, setbiliPush as Q, bilibiliAPP as R, DouyinComment as S, AmagiError as St, BilibiliQrcodeImg as T, douyinFetcher as Tt, globalStatistics as U, prefix as V, groupStatistics as W, douyinPushList as X, douyinPush as Y, forcePush as Z, DouyinMusicInfo as _, DouyinDBBase as _t, Changelog as a, removeOldFiles as at, DouyinFavoriteList as b, renderVideoPreviewPage as bt, GroupStatistics as c, webConfig as ct, DouyinVideoInfo as d, douyinDBInstance as dt, testDouyinPush as et, DouyinQrcodeImg as f, getBilibiliDB as ft, DouyinRecommendList as g, StatisticsDBBase as gt, DouyinUserList as h, initAllDatabases as ht, handlerError as i, dylogin as it, BilibiliArticleDynamic as j, BilibiliDrawDynamic as k, GlobalStatistics as l, bilibiliDBInstance as lt, DouyinUserVideoList as m, getStatisticsDB as mt, XiaohongshuComment as n, version as nt, VersionWarning as o, task as ot, DouyinVideoWork as p, getDouyinDB as pt, bilibiliPushList as q, QrLogin as r, biLogin as rt, Help as s, template_default as st, XiaohongshuNoteInfo as t, help as tt, KuaishouComment as u, cleanOldDynamicCache as ut, DouyinLive as v, BilibiliDBBase as vt, BilibiliVideoInfo as w, bilibiliFetcher as wt, DouyinDynamic as x, AmagiBase as xt, DouyinImageWork as y, reactServerRender as yt, douyinAPP as z };
|