karin-plugin-kkk 2.45.0-beta.5 → 2.45.0-rc.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 +20 -0
- package/lib/build-metadata.json +5 -5
- package/lib/core_chunk/main.js +84 -53
- package/lib/style.css +8 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
## [2.45.0-rc.1](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.45.0-beta.6...v2.45.0-rc.1) (2026-10-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### 🐛 错误修复
|
|
9
|
+
|
|
10
|
+
* 更新面板金丝雀行按构建指纹判定,与当前构建同源提交时置灰 ([dd54ddb](https://github.com/ikenxuan/karin-plugin-kkk/commit/dd54ddb527189bbf8bd290b2009c9e24e0b6c654))
|
|
11
|
+
|
|
12
|
+
## [2.45.0-beta.6](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.45.0-beta.5...v2.45.0-beta.6) (2026-10-06)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### ✨ 新功能
|
|
16
|
+
|
|
17
|
+
* 发版脚本变更日志改为增量小节,转正发布空增量时写入占位小节 ([f4f67a7](https://github.com/ikenxuan/karin-plugin-kkk/commit/f4f67a780434b73f5ddc3227bfe6a3611aa4463e))
|
|
18
|
+
* 金丝雀用户多渠道待推送收敛为单图,避免同一批变更重复推送 ([40d4ff9](https://github.com/ikenxuan/karin-plugin-kkk/commit/40d4ff9a527d7715ebc3531d0b59439afb8335ef))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### 🐛 错误修复
|
|
22
|
+
|
|
23
|
+
* 更新日志模板版式适配长版本号,更新频道标签改由渠道数据传入 ([fc27e29](https://github.com/ikenxuan/karin-plugin-kkk/commit/fc27e29c1be1d0e623b76f4a108baecee402e5a1))
|
|
24
|
+
|
|
5
25
|
## [2.45.0-beta.5](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.45.0-beta.4...v2.45.0-beta.5) (2026-10-06)
|
|
6
26
|
|
|
7
27
|
|
package/lib/build-metadata.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.45.0-
|
|
3
|
-
"buildTime": "2026-10-
|
|
4
|
-
"buildTimestamp":
|
|
2
|
+
"version": "2.45.0-rc.1",
|
|
3
|
+
"buildTime": "2026-10-06T12:03:48.998Z",
|
|
4
|
+
"buildTimestamp": 1791288228998,
|
|
5
5
|
"name": "karin-plugin-kkk",
|
|
6
6
|
"description": "Karin 的「抖音」「B 站」视频解析/动态推送插件",
|
|
7
7
|
"homepage": "https://github.com/ikenxuan/karin-plugin-kkk",
|
|
8
|
-
"commitHash": "
|
|
9
|
-
"shortCommitHash": "
|
|
8
|
+
"commitHash": "1132cadb858d61c5162b56104602b5d2d8879300",
|
|
9
|
+
"shortCommitHash": "1132cadb"
|
|
10
10
|
}
|
package/lib/core_chunk/main.js
CHANGED
|
@@ -20735,17 +20735,31 @@ var Changelog = import_react.memo((props) => {
|
|
|
20735
20735
|
children: "以下任意方式均可更新"
|
|
20736
20736
|
}),
|
|
20737
20737
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
20738
|
-
className: "mb-10 px-8 py-5 rounded-2xl border border-border/70 bg-surface/50 text-foreground/80 text-[2.2em] flex
|
|
20739
|
-
children: [
|
|
20740
|
-
|
|
20741
|
-
|
|
20742
|
-
|
|
20743
|
-
|
|
20744
|
-
|
|
20738
|
+
className: "mb-10 px-8 py-5 rounded-2xl border border-border/70 bg-surface/50 text-foreground/80 text-[2.2em] flex flex-col items-center gap-3",
|
|
20739
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
20740
|
+
className: "flex items-center justify-center gap-6 flex-wrap",
|
|
20741
|
+
children: [
|
|
20742
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
20743
|
+
className: "whitespace-nowrap",
|
|
20744
|
+
children: ["当前版本: v", props.data.localVersion]
|
|
20745
|
+
}),
|
|
20746
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
20747
|
+
className: "text-muted",
|
|
20748
|
+
children: "→"
|
|
20749
|
+
}),
|
|
20750
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
20751
|
+
className: "whitespace-nowrap font-semibold text-foreground",
|
|
20752
|
+
children: ["最新版本: v", props.data.remoteVersion]
|
|
20753
|
+
})
|
|
20754
|
+
]
|
|
20755
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
20756
|
+
className: "whitespace-nowrap text-[0.8em] leading-none text-foreground/60",
|
|
20757
|
+
children: [
|
|
20758
|
+
"共落后 ",
|
|
20745
20759
|
props.data.lagVersionCount ?? 0,
|
|
20746
20760
|
" 个版本"
|
|
20747
|
-
]
|
|
20748
|
-
]
|
|
20761
|
+
]
|
|
20762
|
+
})]
|
|
20749
20763
|
}),
|
|
20750
20764
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
20751
20765
|
className: "flex flex-col gap-6 text-[2.8em] leading-relaxed text-foreground/80",
|
|
@@ -20766,13 +20780,16 @@ var Changelog = import_react.memo((props) => {
|
|
|
20766
20780
|
]
|
|
20767
20781
|
}),
|
|
20768
20782
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
20769
|
-
className: "flex items-center gap-5",
|
|
20783
|
+
className: "flex flex-wrap items-center gap-x-5 gap-y-4",
|
|
20770
20784
|
children: [
|
|
20771
20785
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
20772
20786
|
className: "text-muted text-[1.2em]",
|
|
20773
20787
|
children: "•"
|
|
20774
20788
|
}),
|
|
20775
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
20789
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
20790
|
+
className: "whitespace-nowrap",
|
|
20791
|
+
children: "进入"
|
|
20792
|
+
}),
|
|
20776
20793
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(InlineCalloutCode, {
|
|
20777
20794
|
className: "text-[0.9em] font-mono",
|
|
20778
20795
|
children: "Karin WebUI"
|
|
@@ -20792,13 +20809,16 @@ var Changelog = import_react.memo((props) => {
|
|
|
20792
20809
|
]
|
|
20793
20810
|
}),
|
|
20794
20811
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
20795
|
-
className: "flex items-center gap-5",
|
|
20812
|
+
className: "flex flex-wrap items-center gap-x-5 gap-y-4",
|
|
20796
20813
|
children: [
|
|
20797
20814
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
20798
20815
|
className: "text-muted text-[1.2em]",
|
|
20799
20816
|
children: "•"
|
|
20800
20817
|
}),
|
|
20801
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
20818
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
20819
|
+
className: "whitespace-nowrap",
|
|
20820
|
+
children: "Karin 根目录运行"
|
|
20821
|
+
}),
|
|
20802
20822
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(InlineCalloutCode, {
|
|
20803
20823
|
className: "text-[0.85em] whitespace-nowrap font-mono",
|
|
20804
20824
|
children: [
|
|
@@ -20978,19 +20998,20 @@ var Changelog = import_react.memo((props) => {
|
|
|
20978
20998
|
}),
|
|
20979
20999
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
20980
21000
|
className: "text-4xl leading-relaxed text-foreground/60",
|
|
20981
|
-
children: [
|
|
20982
|
-
|
|
20983
|
-
|
|
20984
|
-
|
|
20985
|
-
|
|
20986
|
-
|
|
20987
|
-
|
|
20988
|
-
|
|
20989
|
-
|
|
20990
|
-
|
|
20991
|
-
|
|
20992
|
-
|
|
20993
|
-
|
|
21001
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: "扫码查看实际运行代码差异" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
21002
|
+
className: "flex flex-wrap items-center gap-x-3 whitespace-nowrap text-foreground/80",
|
|
21003
|
+
children: [
|
|
21004
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
21005
|
+
className: "font-bold",
|
|
21006
|
+
children: ["v", props.data.localVersion]
|
|
21007
|
+
}),
|
|
21008
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "→" }),
|
|
21009
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
21010
|
+
className: "font-bold",
|
|
21011
|
+
children: ["v", props.data.remoteVersion]
|
|
21012
|
+
})
|
|
21013
|
+
]
|
|
21014
|
+
})]
|
|
20994
21015
|
})
|
|
20995
21016
|
]
|
|
20996
21017
|
})
|
|
@@ -21004,29 +21025,30 @@ var Changelog = import_react.memo((props) => {
|
|
|
21004
21025
|
className: "w-full h-full object-contain"
|
|
21005
21026
|
})
|
|
21006
21027
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
21007
|
-
className: "text-4xl text-foreground/60",
|
|
21008
|
-
children: [
|
|
21009
|
-
|
|
21010
|
-
|
|
21011
|
-
|
|
21012
|
-
|
|
21013
|
-
|
|
21014
|
-
|
|
21015
|
-
|
|
21016
|
-
|
|
21017
|
-
|
|
21018
|
-
|
|
21019
|
-
|
|
21020
|
-
|
|
21028
|
+
className: "text-4xl leading-relaxed text-foreground/60",
|
|
21029
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: "扫码查看实际运行代码差异" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
21030
|
+
className: "flex flex-wrap items-center gap-x-3 whitespace-nowrap text-foreground/80",
|
|
21031
|
+
children: [
|
|
21032
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
21033
|
+
className: "font-bold",
|
|
21034
|
+
children: ["v", props.data.localVersion]
|
|
21035
|
+
}),
|
|
21036
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "→" }),
|
|
21037
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
21038
|
+
className: "font-bold",
|
|
21039
|
+
children: ["v", props.data.remoteVersion]
|
|
21040
|
+
})
|
|
21041
|
+
]
|
|
21042
|
+
})]
|
|
21021
21043
|
})]
|
|
21022
21044
|
}) }),
|
|
21023
21045
|
isUpdateTip && props.data.buildTime && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
21024
21046
|
className: "flex gap-8 justify-center text-foreground/60",
|
|
21025
21047
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
21026
21048
|
className: "text-4xl",
|
|
21027
|
-
children: ["更新频道:", /* @__PURE__ */ (0, import_jsx_runtime.
|
|
21049
|
+
children: ["更新频道:", /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
21028
21050
|
className: "font-bold text-foreground/80",
|
|
21029
|
-
children: " 正式版"
|
|
21051
|
+
children: [" ", props.data.channelLabel ?? "正式版"]
|
|
21030
21052
|
})]
|
|
21031
21053
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
21032
21054
|
className: "text-4xl",
|
|
@@ -24560,15 +24582,22 @@ var updateHelp_default = defineTemplate({
|
|
|
24560
24582
|
text: "获取失败",
|
|
24561
24583
|
active: false
|
|
24562
24584
|
};
|
|
24563
|
-
if (channel.status === "canary")
|
|
24564
|
-
|
|
24565
|
-
|
|
24566
|
-
|
|
24567
|
-
|
|
24568
|
-
|
|
24569
|
-
|
|
24570
|
-
|
|
24571
|
-
|
|
24585
|
+
if (channel.status === "canary") {
|
|
24586
|
+
if (channel.hasUpdate) return {
|
|
24587
|
+
dot: palette.success,
|
|
24588
|
+
text: "有新构建可升级",
|
|
24589
|
+
active: true
|
|
24590
|
+
};
|
|
24591
|
+
return channel.hasUpdate === false ? {
|
|
24592
|
+
dot: palette.faint,
|
|
24593
|
+
text: "与当前构建一致",
|
|
24594
|
+
active: false
|
|
24595
|
+
} : {
|
|
24596
|
+
dot: palette.faint,
|
|
24597
|
+
text: "main 分支构建",
|
|
24598
|
+
active: false
|
|
24599
|
+
};
|
|
24600
|
+
}
|
|
24572
24601
|
const order = semverCompare(channel.version ?? "0.0.0", data.currentVersion);
|
|
24573
24602
|
if (channel.hasUpdate !== void 0) return channel.hasUpdate ? {
|
|
24574
24603
|
dot: palette.success,
|
|
@@ -40458,6 +40487,7 @@ var getChangelogImage = async (ctx, props) => {
|
|
|
40458
40487
|
Tip: props.Tip,
|
|
40459
40488
|
localVersion: props.localVersion,
|
|
40460
40489
|
remoteVersion: props.remoteVersion,
|
|
40490
|
+
channelLabel: RELEASE_CHANNEL_LABEL[parseReleaseChannel(props.remoteVersion)],
|
|
40461
40491
|
lagVersionCount,
|
|
40462
40492
|
buildTime,
|
|
40463
40493
|
share_url: `https://karin-plugin-kkk-docs.vercel.app/diff?old=${props.localVersion}&new=latest`
|
|
@@ -40523,6 +40553,7 @@ var Handler = async () => {
|
|
|
40523
40553
|
}
|
|
40524
40554
|
if (pending.size === 0) return true;
|
|
40525
40555
|
const installTarget = [...pending].sort((a, b) => isSemverGreater(b, a) ? 1 : -1)[0];
|
|
40556
|
+
const rendered = installedIsCanary && pending.size > 1 ? /* @__PURE__ */ new Set([installTarget]) : pending;
|
|
40526
40557
|
const masters = config.master().filter((id) => id !== "console");
|
|
40527
40558
|
if (masters.length === 0) return true;
|
|
40528
40559
|
const botItems = karin.getAllBotList().filter((b) => b.bot.account.name !== "console");
|
|
@@ -40543,7 +40574,7 @@ var Handler = async () => {
|
|
|
40543
40574
|
for (const item of botItems) {
|
|
40544
40575
|
if (!Array.from(masterToBot.entries()).some(([, b]) => b.account.selfId === item.bot.account.selfId)) continue;
|
|
40545
40576
|
const elements = [segment.text("karin-plugin-kkk 有新的更新!")];
|
|
40546
|
-
for (const version of
|
|
40577
|
+
for (const version of rendered) {
|
|
40547
40578
|
const img = await getChangelogImage({ bot: item.bot }, {
|
|
40548
40579
|
localVersion: Root.pluginVersion,
|
|
40549
40580
|
remoteVersion: version,
|
|
@@ -40748,7 +40779,7 @@ var getUpdateHelpImage = async (e) => {
|
|
|
40748
40779
|
status: "error"
|
|
40749
40780
|
};
|
|
40750
40781
|
const installedSha = (build?.shortCommitHash ?? "").slice(0, 7);
|
|
40751
|
-
if (
|
|
40782
|
+
if (canaryChannel.status === "canary" && installedSha) canaryChannel.hasUpdate = installedSha !== canaryChannel.version;
|
|
40752
40783
|
channels.push(canaryChannel);
|
|
40753
40784
|
return await Render(e, "other/updateHelp", {
|
|
40754
40785
|
currentVersion: Root.pluginVersion,
|
package/lib/style.css
CHANGED
|
@@ -15495,6 +15495,10 @@
|
|
|
15495
15495
|
margin-block-end: calc(calc(var(--spacing) * 32) * calc(1 - var(--tw-space-y-reverse)));
|
|
15496
15496
|
}
|
|
15497
15497
|
|
|
15498
|
+
.gap-x-3 {
|
|
15499
|
+
column-gap: calc(var(--spacing) * 3);
|
|
15500
|
+
}
|
|
15501
|
+
|
|
15498
15502
|
.gap-x-5 {
|
|
15499
15503
|
column-gap: calc(var(--spacing) * 5);
|
|
15500
15504
|
}
|
|
@@ -15583,6 +15587,10 @@
|
|
|
15583
15587
|
row-gap: calc(var(--spacing) * 2);
|
|
15584
15588
|
}
|
|
15585
15589
|
|
|
15590
|
+
.gap-y-4 {
|
|
15591
|
+
row-gap: calc(var(--spacing) * 4);
|
|
15592
|
+
}
|
|
15593
|
+
|
|
15586
15594
|
.gap-y-6 {
|
|
15587
15595
|
row-gap: calc(var(--spacing) * 6);
|
|
15588
15596
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "karin-plugin-kkk",
|
|
3
|
-
"version": "2.45.0-
|
|
3
|
+
"version": "2.45.0-rc.1",
|
|
4
4
|
"description": "Karin 的「抖音」「B 站」视频解析/动态推送插件",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"karin",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@lobehub/webfont-harmony-sans-sc": "^1.0.0",
|
|
84
84
|
"emoji-datasource-apple": "16.0.0"
|
|
85
85
|
},
|
|
86
|
-
"timestamp": "2026-10-
|
|
86
|
+
"timestamp": "2026-10-06T12:02:24.634Z",
|
|
87
87
|
"engines": {
|
|
88
88
|
"node": ">=18.0.0"
|
|
89
89
|
}
|