karin-plugin-kkk 2.45.0-beta.1 → 2.45.0-beta.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 +23 -0
- package/lib/build-metadata.json +5 -5
- package/lib/core_chunk/main.js +52 -16
- package/package.json +10 -54
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
## [2.45.0-beta.3](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.45.0-beta.2...v2.45.0-beta.3) (2026-10-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### 🐛 错误修复
|
|
9
|
+
|
|
10
|
+
* 更新发布脚本以正确引用 package.json 文件 ([499ef1d](https://github.com/ikenxuan/karin-plugin-kkk/commit/499ef1d824a4b34b09101accd6988929569d0354))
|
|
11
|
+
|
|
12
|
+
## [2.45.0-beta.2](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.45.0-beta.1...v2.45.0-beta.2) (2026-10-06)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### 🐛 错误修复
|
|
16
|
+
|
|
17
|
+
* 添加 @clack/prompts 依赖并更新发版脚本以使用交互式版本选择 ([dd18fc2](https://github.com/ikenxuan/karin-plugin-kkk/commit/dd18fc23993d6b9ca6185cb4a75190a16f9c3dab))
|
|
18
|
+
* 移除不必要的 bumpp 依赖,并优化本地发版脚本 ([4123512](https://github.com/ikenxuan/karin-plugin-kkk/commit/4123512b404009daa34512cc57a375c3de0c8462))
|
|
19
|
+
* ci ([5767211](https://github.com/ikenxuan/karin-plugin-kkk/commit/57672119b6502ba9717eaf3a45dcf0b65ec9d36f))
|
|
20
|
+
* 规范化短哈希长度为 7 位,以避免构建指纹误判 ([de02dcc](https://github.com/ikenxuan/karin-plugin-kkk/commit/de02dcc39bf4d75178e21f2c947d827f43b11e14))
|
|
21
|
+
* ci ([d38ef28](https://github.com/ikenxuan/karin-plugin-kkk/commit/d38ef28a1c17717ea42341b10a6bcbf2b60849ae))
|
|
22
|
+
* ci ([c7ddce5](https://github.com/ikenxuan/karin-plugin-kkk/commit/c7ddce59ae8b60fc4c120b79cd3d191f96a69e1b))
|
|
23
|
+
* 回退版本号至 2.44.1,并修复 dry 模式下版本号验证逻辑 ([eabd9aa](https://github.com/ikenxuan/karin-plugin-kkk/commit/eabd9aa457d5ad098d7967304990ad8648073956))
|
|
24
|
+
* 优化版本比较逻辑,支持金丝雀用户的构建时间线判定 ([d811024](https://github.com/ikenxuan/karin-plugin-kkk/commit/d811024eeff8dfa28b70be7ecb0443011b2176e0))
|
|
25
|
+
* release 发布前剥离 devDeps,修复 GPR 报告步骤路径 ([2f02b22](https://github.com/ikenxuan/karin-plugin-kkk/commit/2f02b2294ade62b7b336363462e3cc8785d75217))
|
|
26
|
+
* 金丝雀用户的面板比较改为构建时间线判定 ([7aa712d](https://github.com/ikenxuan/karin-plugin-kkk/commit/7aa712dcf22113c58602629cec13115c62eefb9d))
|
|
27
|
+
|
|
5
28
|
## [2.45.0-beta.1](https://github.com/ikenxuan/karin-plugin-kkk/compare/v2.44.0...v2.45.0-beta.1) (2026-10-06)
|
|
6
29
|
|
|
7
30
|
|
package/lib/build-metadata.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.45.0-beta.
|
|
3
|
-
"buildTime": "2026-10-
|
|
4
|
-
"buildTimestamp":
|
|
2
|
+
"version": "2.45.0-beta.3",
|
|
3
|
+
"buildTime": "2026-10-06T06:00:56.704Z",
|
|
4
|
+
"buildTimestamp": 1791266456705,
|
|
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": "030579c9a3c0615a5bb50526953874b9109ba9ad",
|
|
9
|
+
"shortCommitHash": "030579c9"
|
|
10
10
|
}
|
package/lib/core_chunk/main.js
CHANGED
|
@@ -24551,7 +24551,11 @@ var updateHelp_default = defineTemplate({
|
|
|
24551
24551
|
text: "获取失败",
|
|
24552
24552
|
active: false
|
|
24553
24553
|
};
|
|
24554
|
-
if (channel.status === "canary") return {
|
|
24554
|
+
if (channel.status === "canary") return channel.hasUpdate ? {
|
|
24555
|
+
dot: palette.success,
|
|
24556
|
+
text: "有新构建可升级",
|
|
24557
|
+
active: true
|
|
24558
|
+
} : {
|
|
24555
24559
|
dot: palette.accentText,
|
|
24556
24560
|
text: "main 分支构建",
|
|
24557
24561
|
active: true
|
|
@@ -40435,6 +40439,8 @@ var UPDATE_MSGID_KEY = "kkk:update:msgid";
|
|
|
40435
40439
|
*/
|
|
40436
40440
|
var Handler = async () => {
|
|
40437
40441
|
const tags = ["latest", ...(Config.app.UpdateNotifyChannels?.length ? Config.app.UpdateNotifyChannels : ["stable"]).filter((c) => c !== "stable")];
|
|
40442
|
+
const installedIsCanary = parseReleaseChannel(Root.pluginVersion) === "Canary";
|
|
40443
|
+
const installedBuildTime = getBuildMetadata()?.buildTimestamp;
|
|
40438
40444
|
const remotes = await Promise.all(tags.map(async (tag) => {
|
|
40439
40445
|
try {
|
|
40440
40446
|
return await getRemotePkgVersion(Root.pluginName, tag) || null;
|
|
@@ -40442,7 +40448,14 @@ var Handler = async () => {
|
|
|
40442
40448
|
return null;
|
|
40443
40449
|
}
|
|
40444
40450
|
}));
|
|
40445
|
-
const
|
|
40451
|
+
const canaryInfo = installedIsCanary ? await fetchCanaryInfo() : null;
|
|
40452
|
+
const remote = [...new Set(remotes.filter((v) => !!v))].filter((version) => {
|
|
40453
|
+
if (installedIsCanary && installedBuildTime !== void 0) {
|
|
40454
|
+
const releaseNode = canaryInfo?.nodes.find((n) => n.message.includes(version));
|
|
40455
|
+
if (releaseNode) return releaseNode.time > installedBuildTime;
|
|
40456
|
+
}
|
|
40457
|
+
return isSemverGreater(version, Root.pluginVersion);
|
|
40458
|
+
}).sort((a, b) => isSemverGreater(b, a) ? 1 : -1)[0];
|
|
40446
40459
|
if (!remote) return true;
|
|
40447
40460
|
try {
|
|
40448
40461
|
const lockedVersion = await db.get(UPDATE_LOCK_KEY);
|
|
@@ -40579,23 +40592,30 @@ var installAndRestart = async (e, version) => {
|
|
|
40579
40592
|
};
|
|
40580
40593
|
/** pkg.pr.new 仓库(金丝雀数据源,只跟踪 main 分支构建) */
|
|
40581
40594
|
var PKG_PR_NEW_REPO = "ikenxuan/karin-plugin-kkk";
|
|
40582
|
-
/** 拉取 pkg.pr.new
|
|
40583
|
-
var
|
|
40595
|
+
/** 拉取 pkg.pr.new 的发布历史与 main 分支最新构建(失败返回 null,由调用方降级展示) */
|
|
40596
|
+
var fetchCanaryInfo = async () => {
|
|
40584
40597
|
try {
|
|
40585
40598
|
const [owner, repo] = PKG_PR_NEW_REPO.split("/");
|
|
40586
40599
|
const nodes = (await axios.get(`https://pkg.pr.new/api/repo/commits?owner=${owner}&repo=${repo}`, { timeout: 1e4 })).data?.target?.history?.nodes;
|
|
40587
40600
|
if (!Array.isArray(nodes)) return null;
|
|
40588
|
-
const
|
|
40589
|
-
|
|
40590
|
-
|
|
40601
|
+
const history = nodes.map((n) => ({
|
|
40602
|
+
sha: (n.abbreviatedOid ?? "").slice(0, 7),
|
|
40603
|
+
time: n.authoredDate ? new Date(n.authoredDate).getTime() : 0,
|
|
40604
|
+
message: n.message ?? ""
|
|
40605
|
+
}));
|
|
40606
|
+
const mainNode = nodes.find((n) => n.branch === "main" && n.statusCheckRollup?.contexts?.nodes?.some((c) => c.packages?.some((pkg) => pkg.installUrl)));
|
|
40607
|
+
const pkg = mainNode?.statusCheckRollup?.contexts?.nodes?.flatMap((c) => c.packages ?? []).find((p) => p.installUrl);
|
|
40608
|
+
if (!mainNode?.abbreviatedOid || !pkg?.installUrl) return null;
|
|
40591
40609
|
return {
|
|
40592
|
-
|
|
40593
|
-
|
|
40594
|
-
|
|
40595
|
-
|
|
40596
|
-
|
|
40597
|
-
|
|
40598
|
-
|
|
40610
|
+
channel: {
|
|
40611
|
+
label: "金丝雀",
|
|
40612
|
+
tag: "pkg.pr.new · main",
|
|
40613
|
+
status: "canary",
|
|
40614
|
+
version: mainNode.abbreviatedOid.slice(0, 7),
|
|
40615
|
+
installCommand: `pnpm add ${pkg.installUrl} -w`,
|
|
40616
|
+
publishedAt: mainNode.authoredDate
|
|
40617
|
+
},
|
|
40618
|
+
nodes: history
|
|
40599
40619
|
};
|
|
40600
40620
|
} catch {
|
|
40601
40621
|
return null;
|
|
@@ -40608,6 +40628,10 @@ var getUpdateHelpImage = async (e) => {
|
|
|
40608
40628
|
if (status) try {
|
|
40609
40629
|
distTags = JSON.parse(stdout.toString());
|
|
40610
40630
|
} catch {}
|
|
40631
|
+
const canaryInfo = await fetchCanaryInfo();
|
|
40632
|
+
const installedIsCanary = parseReleaseChannel(Root.pluginVersion) === "Canary";
|
|
40633
|
+
const build = getBuildMetadata();
|
|
40634
|
+
const installedBuildTime = build?.buildTimestamp;
|
|
40611
40635
|
const channels = [
|
|
40612
40636
|
{
|
|
40613
40637
|
label: "正式版",
|
|
@@ -40634,6 +40658,15 @@ var getUpdateHelpImage = async (e) => {
|
|
|
40634
40658
|
...def,
|
|
40635
40659
|
status: "missing"
|
|
40636
40660
|
};
|
|
40661
|
+
if (installedIsCanary && installedBuildTime !== void 0) {
|
|
40662
|
+
const releaseNode = canaryInfo?.nodes.find((n) => n.message.includes(version));
|
|
40663
|
+
if (releaseNode) return {
|
|
40664
|
+
...def,
|
|
40665
|
+
status: "ok",
|
|
40666
|
+
version,
|
|
40667
|
+
hasUpdate: releaseNode.time > installedBuildTime
|
|
40668
|
+
};
|
|
40669
|
+
}
|
|
40637
40670
|
return {
|
|
40638
40671
|
...def,
|
|
40639
40672
|
status: "ok",
|
|
@@ -40641,11 +40674,14 @@ var getUpdateHelpImage = async (e) => {
|
|
|
40641
40674
|
hasUpdate: isSemverGreater(version, Root.pluginVersion)
|
|
40642
40675
|
};
|
|
40643
40676
|
});
|
|
40644
|
-
|
|
40677
|
+
const canaryChannel = canaryInfo?.channel ?? {
|
|
40645
40678
|
label: "金丝雀",
|
|
40646
40679
|
tag: "pkg.pr.new · main",
|
|
40647
40680
|
status: "error"
|
|
40648
|
-
}
|
|
40681
|
+
};
|
|
40682
|
+
const installedSha = (build?.shortCommitHash ?? "").slice(0, 7);
|
|
40683
|
+
if (installedIsCanary && canaryChannel.status === "canary" && installedSha) canaryChannel.hasUpdate = installedSha !== canaryChannel.version;
|
|
40684
|
+
channels.push(canaryChannel);
|
|
40649
40685
|
return await Render(e, "other/updateHelp", {
|
|
40650
40686
|
currentVersion: Root.pluginVersion,
|
|
40651
40687
|
currentChannel: RELEASE_CHANNEL_LABEL[parseReleaseChannel(Root.pluginVersion)],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "karin-plugin-kkk",
|
|
3
|
-
"version": "2.45.0-beta.
|
|
3
|
+
"version": "2.45.0-beta.3",
|
|
4
4
|
"description": "Karin 的「抖音」「B 站」视频解析/动态推送插件",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"karin",
|
|
@@ -57,47 +57,6 @@
|
|
|
57
57
|
"access": "public",
|
|
58
58
|
"registry": "https://registry.npmjs.org"
|
|
59
59
|
},
|
|
60
|
-
"dependencies": {
|
|
61
|
-
"@ikenxuan/qrcode": "1.5.0",
|
|
62
|
-
"@lobehub/webfont-geist-mono": "^1.0.0",
|
|
63
|
-
"@lobehub/webfont-harmony-sans-sc": "^1.0.0",
|
|
64
|
-
"emoji-datasource-apple": "16.0.0"
|
|
65
|
-
},
|
|
66
|
-
"devDependencies": {
|
|
67
|
-
"@heroui/react": "3.2.5",
|
|
68
|
-
"@icons-pack/react-simple-icons": "^13.15.1",
|
|
69
|
-
"@ikenxuan/amagi": "7.0.0-beta.7",
|
|
70
|
-
"@karinjs/adapter-qqbot": "3.3.0",
|
|
71
|
-
"@karinjs/plugin-adapter-milky": "^1.3.3",
|
|
72
|
-
"@karinjs/plugin-basic": "1.4.13",
|
|
73
|
-
"@karinjs/plugin-ffmpeg": "^0.1.3",
|
|
74
|
-
"@karinjs/plugin-shotium": "^0.3.2",
|
|
75
|
-
"@karinjs/template-react": "^0.2.0",
|
|
76
|
-
"@kkk/richtext": "0.1.0",
|
|
77
|
-
"@outpacelabs/avatars": "^0.6.0",
|
|
78
|
-
"@phosphor-icons/react": "^2.1.10",
|
|
79
|
-
"@thesvg/icons": "^3.3.7",
|
|
80
|
-
"@types/heic-decode": "^2.0.0",
|
|
81
|
-
"@types/react": "19.3.0",
|
|
82
|
-
"@types/react-dom": "19.3.0",
|
|
83
|
-
"clsx": "^2.1.1",
|
|
84
|
-
"date-fns": "^4.4.0",
|
|
85
|
-
"echarts": "^6.1.0",
|
|
86
|
-
"heic-decode": "^2.1.0",
|
|
87
|
-
"highlight.js": "^11.12.0",
|
|
88
|
-
"jpeg-js": "^0.4.4",
|
|
89
|
-
"lucide-react": "^1.46.0",
|
|
90
|
-
"react": "^19.3.0",
|
|
91
|
-
"react-dom": "^19.3.0",
|
|
92
|
-
"react-icons": "^5.7.0",
|
|
93
|
-
"react-markdown": "^10.1.0",
|
|
94
|
-
"rehype-highlight": "^7.0.2",
|
|
95
|
-
"tailwind-merge": "3.7.0",
|
|
96
|
-
"vitest": "^5.0.1"
|
|
97
|
-
},
|
|
98
|
-
"engines": {
|
|
99
|
-
"node": ">=18.0.0"
|
|
100
|
-
},
|
|
101
60
|
"karin": {
|
|
102
61
|
"engines": ">=1.14.0",
|
|
103
62
|
"main": "src/index.ts",
|
|
@@ -118,17 +77,14 @@
|
|
|
118
77
|
"web": "./lib/web.config.js",
|
|
119
78
|
"ts-web": "./src/web.config.ts"
|
|
120
79
|
},
|
|
121
|
-
"
|
|
122
|
-
|
|
123
|
-
"
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"
|
|
130
|
-
"sort": "sort-package-json",
|
|
131
|
-
"sync": "curl -X PUT \"https://registry-direct.npmmirror.com/-/package/karin-plugin-kkk/syncs\"",
|
|
132
|
-
"watch": "ktr sync && cross-env EBV_FILE=\"development.env\" tsx watch --include \"src/**/*.ts\" --include \"ktr/**/*.ts\" --include \"ktr/**/*.tsx\" src/app.ts --trace-deprecation"
|
|
80
|
+
"dependencies": {
|
|
81
|
+
"@ikenxuan/qrcode": "1.5.0",
|
|
82
|
+
"@lobehub/webfont-geist-mono": "^1.0.0",
|
|
83
|
+
"@lobehub/webfont-harmony-sans-sc": "^1.0.0",
|
|
84
|
+
"emoji-datasource-apple": "16.0.0"
|
|
85
|
+
},
|
|
86
|
+
"timestamp": "2026-10-06T05:59:30.186Z",
|
|
87
|
+
"engines": {
|
|
88
|
+
"node": ">=18.0.0"
|
|
133
89
|
}
|
|
134
90
|
}
|