koishi-plugin-kkk 1.0.9 → 1.2.0-beta.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 +132 -1
- package/assets/web/assets/ThemeSwitch-DFohhwd9.js +1 -1
- package/assets/web/assets/index-BRROK0vh.js +1 -1
- package/assets/web/index.html +46 -0
- package/client/index.ts +112 -112
- package/config/default_config/app.yaml +1 -1
- package/config/default_config/config.json +3 -3
- package/lib/compat/node-karin.js +13 -1
- package/lib/index.js +199 -43
- package/lib/karin/apps/tools.js +65 -22
- package/lib/karin/module/utils/Base.js +106 -14
- package/lib/karin/module/utils/DanmakuPolicy.js +55 -0
- package/lib/karin/module/utils/ErrorHandler/handler.js +1 -0
- package/lib/karin/module/utils/ErrorHandler/sender.js +28 -1
- package/lib/karin/module/utils/FFmpeg.js +29 -11
- package/lib/karin/module/utils/ImageSlice.js +7 -7
- package/lib/karin/module/utils/Network/Downloader.js +75 -1
- package/lib/karin/module/utils/ParseOverride.js +7 -0
- package/lib/karin/module/utils/ParseSteps.js +78 -0
- package/lib/karin/module/utils/QqPanel.js +222 -42
- package/lib/karin/module/utils/parseTip.js +19 -14
- package/lib/karin/platform/bilibili/bilibili.js +289 -64
- package/lib/karin/platform/bilibili/getID.js +62 -4
- package/lib/karin/platform/douyin/douyin.js +275 -193
- package/lib/karin/platform/kuaishou/kuaishou.js +32 -16
- package/lib/karin/platform/xiaohongshu/xiaohongshu.js +83 -64
- package/lib/player/index.js +576 -0
- package/lib/player/page.js +1108 -0
- package/lib/player/server.js +334 -0
- package/lib/player/store.js +430 -0
- package/lib/qqFields.json +105 -2
- package/lib/webui.js +143 -12
- package/package.json +88 -88
- package/scripts/patch-webui.mjs +371 -2
- package/scripts/smoke-bili-avid.cjs +41 -0
- package/scripts/smoke-danmaku-burn.cjs +104 -0
- package/scripts/smoke-douyin.cjs +9 -1
- package/scripts/smoke-download-stage.cjs +397 -0
- package/scripts/smoke-groupfile.cjs +133 -0
- package/scripts/smoke-parse-order.cjs +273 -0
- package/scripts/smoke-player.cjs +1242 -0
- package/scripts/smoke-qq.cjs +9 -1
- package/scripts/smoke-qqpanel.cjs +237 -23
- package/src/compat/node-karin.ts +12 -1
- package/src/compat/runtime.ts +20 -0
- package/src/index.ts +194 -47
- package/src/karin/apps/tools.ts +549 -510
- package/src/karin/module/utils/Base.ts +115 -17
- package/src/karin/module/utils/DanmakuPolicy.ts +57 -0
- package/src/karin/module/utils/ErrorHandler/handler.ts +2 -1
- package/src/karin/module/utils/ErrorHandler/sender.ts +29 -0
- package/src/karin/module/utils/FFmpeg.ts +30 -10
- package/src/karin/module/utils/ImageSlice.ts +7 -6
- package/src/karin/module/utils/Network/Downloader.ts +81 -0
- package/src/karin/module/utils/ParseOverride.ts +23 -0
- package/src/karin/module/utils/ParseSteps.ts +84 -0
- package/src/karin/module/utils/QqPanel.ts +1057 -880
- package/src/karin/module/utils/parseTip.ts +17 -12
- package/src/karin/platform/bilibili/bilibili.ts +322 -76
- package/src/karin/platform/bilibili/getID.ts +28 -4
- package/src/karin/platform/douyin/douyin.ts +121 -37
- package/src/karin/platform/kuaishou/kuaishou.ts +27 -7
- package/src/karin/platform/xiaohongshu/xiaohongshu.ts +94 -77
- package/src/player/index.ts +533 -0
- package/src/player/page.ts +1139 -0
- package/src/player/server.ts +341 -0
- package/src/player/store.ts +476 -0
- package/src/qqFields.json +105 -2
- package/src/qqOptions.ts +7 -0
- package/src/webui.ts +138 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,136 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
## 1.2.0-beta.1(预览版)
|
|
4
|
+
|
|
5
|
+
> 这是一个**预览版**(npm 上的 `beta` 标签),装着还没正式发布的一批改动。
|
|
6
|
+
> 正式版仍请用 `latest`(当前 1.1.0)。预览版建议先在小范围群里试,遇到问题把日志发我。
|
|
7
|
+
|
|
8
|
+
### 本版重点
|
|
9
|
+
- **在线播放器**(通用 →「在线播放器设置」):选「弹幕」时不再把弹幕烧进视频,而是把视频放到一个播放页,
|
|
10
|
+
给用户一条链接;播放页照着 B站播放页做(夜间风格、标题/UP/统计、弹幕设置面板),
|
|
11
|
+
支持弹幕开关/字号/透明度/显示区域/滚动·顶部·底部三类开关/彩色弹幕,链接到期自动删文件。
|
|
12
|
+
- **「弹幕」与「在线看」按钮合并**(播放器开着时两者是同一个动作),表格后的说明不再被当成表格行。
|
|
13
|
+
- **解析流程统一成「先下载视频、再渲染卡片」,单步失败不再中断**(抖音 / B站 / 小红书 / 快手),
|
|
14
|
+
失败的步骤会在最后合成**一张**错误卡片。
|
|
15
|
+
- **进度阶段补齐**:正在获取下载链接 → (正在合并音轨)→ 正在烧录 / 正在准备在线播放 → 正在发送。
|
|
16
|
+
- 面板新增「打开原站」链接;播放页与过期页新增「直接跳转 / 手动复制」;播放页可下载视频。
|
|
17
|
+
- 修复:**av 号链接解析失败**(av→BV 转换返回结构多包一层导致 bvid 取不到、静默失败);
|
|
18
|
+
QQ 面板链接用 `mqqapi://` 被服务端拒绝导致整条面板发不出去;错误卡片切片 `e is not defined`;
|
|
19
|
+
`getFriendList` 刷屏;浏览器禁访端口(ERR_UNSAFE_PORT)自动退回。
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### 新增
|
|
23
|
+
- **在线播放器(弹幕在线看)**(通用 →「在线播放器设置」,总开关**默认开启**):
|
|
24
|
+
解析面板里那一列按钮写「**弹幕**」,点它不再把弹幕烧进视频,而是把视频下下来放进播放器目录、
|
|
25
|
+
回一条链接 —— 点开就是带弹幕的播放页(深色界面、手机也能看,弹幕用 canvas 自己画,
|
|
26
|
+
有弹幕开关 / 字号 / 透明度三个控件,进度条可拖动)。页面不依赖任何外网 CDN,服务端支持 HTTP Range。
|
|
27
|
+
- 配置项:**在线播放器**(默认开启)、**播放器公网地址**(默认空,留空会退化成「本机 IP + 端口」
|
|
28
|
+
并在日志里提醒,本机 / 内网照样能看)、**播放器端口**(默认 0 = 复用 Koishi 自己的端口)、
|
|
29
|
+
**链接有效期(分钟)**(默认 60,最小 1、最大 1440,到点自动删视频和弹幕,链接变「链接已过期」)、
|
|
30
|
+
**在线播放最大文件(MB)**(默认 0 = 跟随全局的「文件大小限制」,超过就不走在线播放、改回原来的发送流程)、
|
|
31
|
+
**超限转在线播放**(默认关:打开后,超过全局「文件大小限制」的视频不再回「视频太大了,还是去B站看吧」,
|
|
32
|
+
而是照常下载并改成在线播放 —— 用户拿到播放链接,视频不发群、也不占群文件)。
|
|
33
|
+
- **只有总开关**「弹幕重定向在线播放器」和通用里的「强制不烧录弹幕」联动:
|
|
34
|
+
关掉「强制不烧录弹幕」(= 打开弹幕功能)之后才能改它,其余四项随时可编辑。
|
|
35
|
+
- 关掉总开关就回到原来的 ffmpeg 烧录流程(列头也从「弹幕」变回「烧录弹幕」)。
|
|
36
|
+
- 路由:`/kkk/player/:token`(播放页)、`/kkk/player/:token/video`(支持 Range)、
|
|
37
|
+
`/kkk/player/:token/danmaku`(弹幕 JSON);令牌是随机串且只允许 `[0-9a-z]{8,64}`。
|
|
38
|
+
- 播放器出问题不会连累解析:登记失败会回一句说明并退回「直接发视频文件」。
|
|
39
|
+
- **通用 → 强制不烧录弹幕**(默认开启):弹幕烧录的总开关,优先级最高。
|
|
40
|
+
开着时不管是指令、面板按钮还是平台配置,都不会烧录弹幕,一律按纯视频解析;要用弹幕功能就先把它关掉。
|
|
41
|
+
- **QQ 适配器 → 面板带「打开原站」链接**(默认开启):解析面板(以及番剧选集面板)下方多一个
|
|
42
|
+
「打开原站」按钮,点一下直接跳到抖音 / B站 的原作品页。
|
|
43
|
+
- **QQ 适配器 → 面板显示「烧录弹幕」列**(默认关闭):打开后,QQ 里的解析面板会从
|
|
44
|
+
「清晰度 | 大小」两列变成「清晰度 | 烧录弹幕 | 大小」三列 —— 用户点中间那列就按对应画质
|
|
45
|
+
带弹幕解析,左边的画质按钮仍是纯视频。面板里没有额外的开关按钮,显示与否只看这一项配置。
|
|
46
|
+
|
|
47
|
+
### 修复
|
|
48
|
+
- **在线播放页按B站播放页重做**(用户要求「参考 B站 UI」):
|
|
49
|
+
深灰底 + 白字的夜间风格;顶部封面小卡(带时长角标)+ 大字标题(最多两行)+ 一行小图标统计
|
|
50
|
+
(播放量 / 弹幕数 / 发布时间 / UP 主);视频下方是弹幕控制条(**样式化开关** + 「弹幕设置」按钮),
|
|
51
|
+
设置面板默认收起,点开后有**字号 / 透明度 / 显示区域**三行;最下面是B站那排操作按钮
|
|
52
|
+
(点赞 / 投币 / 收藏 / 评论 / 分享,**只用真实数据,没有就不显示,不编数字**)。
|
|
53
|
+
移动端控件不挤:字号 / 显示区域都是大号分段按钮,统计行自动换行。
|
|
54
|
+
仍然是**零外网依赖**(无 CDN、无第三方库,图标全是内联 SVG),弹幕仍是 canvas 自绘。
|
|
55
|
+
- **播放页会带上作品信息**:解析时顺手把标题 / UP 主 / 封面 / 播放量 / 点赞 / 投币 / 收藏 /
|
|
56
|
+
评论 / 分享 / 发布时间 / 时长存进播放会话(B站取 `infoData.data.data`,抖音取 `aweme_detail`),
|
|
57
|
+
页面上按B站那样展示;封面在登记会话时下到本地、走**同源** `/kkk/player/<token>/cover`,
|
|
58
|
+
所以断网 / 内网也不会裂图;拿不到的字段就不显示。
|
|
59
|
+
- **在线播放优先选 H.264 的流**(用户实测「返回的视频只有声音」):B站同一个清晰度会同时给出
|
|
60
|
+
`avc1` 和 `hev1` 两路,接口常把 HEVC 排在前面,浏览器(没装 HEVC 扩展的 Chrome / Edge)
|
|
61
|
+
只能放声音。现在在线播放模式选流时优先挑 H.264(自动档位是去重之前把 H.264 排到前面),
|
|
62
|
+
正常发视频的行为不变;页面上也补了提示:真遇到解不了的编码会明说「只有声音没有画面」。
|
|
63
|
+
- **播放器链接打不开、浏览器报 `ERR_UNSAFE_PORT`**(用户实测把端口配成了 6666,属于 IRC 段):
|
|
64
|
+
服务端一切正常,是浏览器按黑名单**禁止访问**这类端口。现在:
|
|
65
|
+
- 启动时与生成链接时都会打一条明确警告(换端口,或者配公网地址走反向代理);
|
|
66
|
+
- **端口在黑名单里、又没配「播放器公网地址」时自动退回 Koishi 自己的端口**(链接照常能用,
|
|
67
|
+
不用先去改配置);配了公网地址的反向代理场景照旧用你配的端口;
|
|
68
|
+
- 「播放器端口」的字段说明里写明了别用 6665-6669 这类端口。
|
|
69
|
+
- **打开了在线播放器,面板里却没有「弹幕」按钮**(用户实测):那一列当时还被 QQ 适配器里的
|
|
70
|
+
「面板显示「烧录弹幕」列」(默认关)管着,等于要开两个开关才有入口。
|
|
71
|
+
现在在线播放模式下这一列**只跟「弹幕重定向在线播放器」走**(开着就有),
|
|
72
|
+
烧录模式下才由那个旧开关决定;旧开关的说明也同步写清楚了。
|
|
73
|
+
- **在线播放器设置整组被锁住**(用户实测):上一轮加的「需先开启弹幕功能才能编辑」判断**写反了** ——
|
|
74
|
+
实际效果是「开着『强制不烧录弹幕』(= 弹幕功能关着)时能编辑,关掉之后反而整组变灰」,
|
|
75
|
+
而且把 5 个字段全绑上了。现在改成:**只有总开关**(顺带改名为「弹幕重定向在线播放器」)
|
|
76
|
+
受「强制不烧录弹幕」联动,方向已修正(关掉它之后才能改总开关),
|
|
77
|
+
其余四项(公网地址 / 端口 / 有效期 / 最大文件)随时可编辑。
|
|
78
|
+
- **「打开原站」链接把整条面板拖挂了**(严重):链接原来写成 `mqqapi://forward/url?...`,
|
|
79
|
+
QQ 官方接口直接拒收(`[40034028] 请求参数不允许包含url mqqapi://forward/url`),
|
|
80
|
+
**整条面板消息都发不出去** —— 面板失败 → 解析失败 → 最后只剩一张错误卡片。
|
|
81
|
+
现在改成普通 markdown 链接 `[打开原站](https://…)`(同一条消息里的卡片图用的就是 https 链接,
|
|
82
|
+
说明这种形式是被接受的),并加了兜底:面板带链接发送失败时**自动去掉链接行重发一次**
|
|
83
|
+
(解析面板、番剧面板都走这条兜底),链接发不出去再也不会连累解析。
|
|
84
|
+
- **错误卡片切片失败 `e is not defined`**:`sliceImageToMarkdown` 里混进来一段从
|
|
85
|
+
`sendSlicedImage` 复制过来的「非 QQ 平台」分支,用了这个函数根本不存在的 `e` / `valid` ——
|
|
86
|
+
函数一调用就 ReferenceError,错误卡片永远切不了片,最后那张 8.9MB 的长图直接原样发出去
|
|
87
|
+
(还可能被 QQ 拒收)。该分支已删除,切片恢复正常。
|
|
88
|
+
- **`getFriendList 失败: TypeError` 刷日志**:兼容层直接调了适配器不一定实现的方法
|
|
89
|
+
(qq-crack 就没有)。改成先做能力判断,没有这个方法就安静返回空数组。
|
|
90
|
+
- **「下载进度详情」里看不到解析阶段了**:现在 B站 / 抖音 / 快手 / 小红书 四条链路都能看到
|
|
91
|
+
「正在获取下载链接 → 正在合并音轨(有的话)→ 正在烧录 / 正在准备在线播放 → 正在发送」。
|
|
92
|
+
之前只有抖音 / 快手 / 小红书登记过「正在获取下载链接」(B站一个阶段都没有),
|
|
93
|
+
「正在烧录」「正在发送」这两个状态则从来没实现过;解析流程改成「先下载、再渲染、最后上传」之后,
|
|
94
|
+
中间几段更是完全没有登记点,用户点「下载进度」只会看到「当前没有正在进行的下载」。
|
|
95
|
+
- 阶段挂在**解析共用的一个 key** 上:后一个阶段覆盖前一个,同一次解析永远只有一条,
|
|
96
|
+
不会出现「正在烧录」和「正在发送」并排打架;
|
|
97
|
+
- 登记点集中在共用出口:解析入口(`beginParseStage`)、音视频合成(`mergeVideoAudio`)、
|
|
98
|
+
烧录(`withDownloadStage` 包住 B站 / 抖音的烧录调用)、上传(`uploadFile`)、
|
|
99
|
+
在线播放(`publishOnlinePlayer`);
|
|
100
|
+
- 每个阶段结束都会清理(成功失败都清),解析结束还会在命令入口兜底清一遍,
|
|
101
|
+
不会再卡在「正在获取下载链接」;顺带修掉了实况合成带 BGM 那条分支漏清理的问题。
|
|
102
|
+
- **弹幕烧录一直不生效**:上一轮「移除弹幕功能」时把烧录请求写死成了 false,
|
|
103
|
+
指令 `弹幕解析`、参数 `--dm=1` 和平台配置里的 `burnDanmaku` 都不会真的烧弹幕,现在都恢复,
|
|
104
|
+
并且统一过一遍上面那个总开关(不存在「面板关了、指令还能烧」这种半开状态)。
|
|
105
|
+
- 「弹幕解析」指令重新注册(控制台指令列表里能看到),指令说明同步改成用户能看懂的说法。
|
|
106
|
+
- 面板在「所有画质都超过体积上限」时补回提示:「这里只保留最小的一档,发送可能失败」。
|
|
107
|
+
|
|
108
|
+
### 变更
|
|
109
|
+
- **解析流程改成「先下载视频,再渲染卡片」,并且单步失败不再中断整个解析**(抖音 / B站 / 小红书 / 快手):
|
|
110
|
+
- 选完清晰度后先下载(需要烧录的连合成、烧录一起做完),再去渲染信息卡、评论区;
|
|
111
|
+
- 中间任何一步失败都只跳过这一步、继续跑后面的,能发的视频/卡片照发;
|
|
112
|
+
- 全部跑完后如果确实有失败,才渲染**一张**错误卡片(里面会列出是哪几步失败了),
|
|
113
|
+
错误不再出现在「视频明明能发、却因为一张卡片渲染失败而什么都没有」的场景里。
|
|
114
|
+
|
|
115
|
+
## 1.1.0
|
|
116
|
+
|
|
117
|
+
### 变更
|
|
118
|
+
- **插件配置只在 WebUI 面板里改**:控制台插件配置页里的设置项已全部隐藏,新字段也会自动进面板对应分类,
|
|
119
|
+
用户看一眼就知道去哪儿设置,不会再出现「控制台里改了一半、面板里改了另一半」的情况。
|
|
120
|
+
- **扫码登录权限 / 错误日志接收人支持手填**:可以直接写 `*`(所有人)或账号(多个用逗号分隔),
|
|
121
|
+
错误日志也能私聊发给指定账号;界面上是下拉选模式,只有选「指定账号」时才出现输入框。
|
|
122
|
+
- 权限写法统一成 Koishi 的说法:`all` / `admin`(权限等级 4 及以上)/ 指定账号,不再出现 Karin 的 master / allMasters。
|
|
123
|
+
- 「自动撤回面板」开关挪到面板的「通用」分类(原来在 QQ 适配器里,不容易找)。
|
|
124
|
+
- 插件说明(控制台里的用法提示)重写为面向用户的说明:配置入口、指令表、QQ 用法。
|
|
125
|
+
- **API 服务默认关闭**(`APIServer` / `APIServerMount` 默认 false):不需要的人不用被迫开一个 HTTP 端口。
|
|
126
|
+
|
|
127
|
+
### 修复
|
|
128
|
+
- **QQ 群文件阈值在面板里改了不生效**:判定处读的是上游 config.json 的 Proxy,取不到的键会返回 `{}`,
|
|
129
|
+
`Number({})` 是 `NaN`,阈值判断恒为假(日志表现为 `QQ阈值=NaNMB`)。现在改读 Koishi 侧的运行时配置,
|
|
130
|
+
超阈值视频会正常走群文件发送。
|
|
131
|
+
- QQ 平台判定取不到平台名(只读 `event.platform`,实际在 `event.bot.bot.platform`),导致群文件分支走不到。
|
|
132
|
+
- 面板里的下拉框改用面板自带的 Select 组件(此前用的是浏览器原生下拉,和面板样式不一致)。
|
|
133
|
+
|
|
3
134
|
## 1.0.9
|
|
4
135
|
|
|
5
136
|
### 变更
|
|
@@ -142,4 +273,4 @@
|
|
|
142
273
|
|
|
143
274
|
## 移植说明
|
|
144
275
|
|
|
145
|
-
上游 [karin-plugin-kkk](https://github.com/ikenxuan/karin-plugin-kkk) 的完整功能清单请见其仓库。本仓库保留其业务逻辑,由 `src/compat/` 提供框架等价实现,配置以 `koishi.yml` 为准并在启动时同步进上游的 `config.json`。
|
|
276
|
+
上游 [karin-plugin-kkk](https://github.com/ikenxuan/karin-plugin-kkk) 的完整功能清单请见其仓库。本仓库保留其业务逻辑,由 `src/compat/` 提供框架等价实现,配置以 `koishi.yml` 为准并在启动时同步进上游的 `config.json`。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,m as t,r as n,t as r,u as i,w as a,yt as o}from"./index-BRROK0vh.js";var s=n(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),c=n(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),l=n(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),u=n(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),d=n(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),f=n(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),p=n(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),m=n(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),h=n(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),g=o(),_=()=>{let t=e=>{window.open(e,`_blank`)};return(0,g.jsxs)(e,{className:`mx-auto max-w-3xl`,children:[(0,g.jsxs)(e.Header,{className:`items-center text-center gap-4 pt-8 pb-6`,children:[(0,g.jsx)(p,{size:64,"aria-hidden":`true`}),(0,g.jsx)(e.Title,{children:`koishi-plugin-kkk`}),(0,g.jsx)(e.Description,{children:`版本 __KKK_VERSION__`})]}),(0,g.jsxs)(e.Content,{className:`flex flex-col gap-6 pb-8`,children:[(0,g.jsxs)(`section`,{children:[(0,g.jsx)(`h3`,{className:`mb-3 text-base font-semibold`,children:`插件简介`}),(0,g.jsx)(i,{children:`Koishi 的「抖音」「B站」视频解析/动态推送插件。 支持视频解析、动态推送、扫码登录等功能。`})]}),(0,g.jsxs)(`section`,{children:[(0,g.jsx)(`h3`,{className:`mb-3 text-base font-semibold`,children:`开发者`}),(0,g.jsx)(i,{children:`maimai993(Koishi 移植版;上游 karin-plugin-kkk by ikenxuan, sj817
|
|
1
|
+
import{C as e,m as t,r as n,t as r,u as i,w as a,yt as o}from"./index-BRROK0vh.js";var s=n(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),c=n(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),l=n(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),u=n(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),d=n(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),f=n(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),p=n(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),m=n(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),h=n(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),g=o(),_=()=>{let t=e=>{window.open(e,`_blank`)};return(0,g.jsxs)(e,{className:`mx-auto max-w-3xl`,children:[(0,g.jsxs)(e.Header,{className:`items-center text-center gap-4 pt-8 pb-6`,children:[(0,g.jsx)(p,{size:64,"aria-hidden":`true`}),(0,g.jsx)(e.Title,{children:`koishi-plugin-kkk`}),(0,g.jsx)(e.Description,{children:`版本 __KKK_VERSION__`})]}),(0,g.jsxs)(e.Content,{className:`flex flex-col gap-6 pb-8`,children:[(0,g.jsxs)(`section`,{children:[(0,g.jsx)(`h3`,{className:`mb-3 text-base font-semibold`,children:`插件简介`}),(0,g.jsx)(i,{children:`Koishi 的「抖音」「B站」视频解析/动态推送插件。 支持视频解析、动态推送、扫码登录等功能。`})]}),(0,g.jsxs)(`section`,{children:[(0,g.jsx)(`h3`,{className:`mb-3 text-base font-semibold`,children:`开发者`}),(0,g.jsx)(i,{children:`maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by maimai993(Koishi 移植版;上游 karin-plugin-kkk by ikenxuan, sj817))))))))))`})]}),(0,g.jsxs)(`section`,{children:[(0,g.jsx)(`h3`,{className:`mb-3 text-base font-semibold`,children:`相关链接`}),(0,g.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-3`,children:[(0,g.jsxs)(a,{variant:`outline`,onPress:()=>t(`https://github.com/maimai993/koishi-plugin-kkk`),children:[(0,g.jsx)(c,{size:18,"aria-hidden":`true`}),(0,g.jsx)(`span`,{children:`GitHub 仓库`})]}),(0,g.jsxs)(a,{variant:`outline`,onPress:()=>t(`https://github.com/maimai993/koishi-plugin-kkk/issues`),children:[(0,g.jsx)(c,{size:18,"aria-hidden":`true`}),(0,g.jsx)(`span`,{children:`反馈问题`})]})]})]})]})]})},v=`https://github.com/maimai993.png`,y=({className:e})=>{let{isDark:n,toggleTheme:i}=r();return(0,g.jsxs)(t,{delay:1,closeDelay:1,children:[(0,g.jsx)(a,{isIconOnly:!0,"aria-label":n?`切换到浅色模式`:`切换到深色模式`,className:e,variant:`ghost`,onPress:i,children:n?(0,g.jsx)(h,{size:20,"aria-hidden":`true`}):(0,g.jsx)(f,{size:20,"aria-hidden":`true`})}),(0,g.jsx)(t.Content,{children:n?`浅色模式`:`深色模式`})]})};export{p as a,l as c,m as i,s as l,v as n,d as o,_ as r,u as s,y as t};
|