@dan-uni/dan-any 1.4.8 → 2.0.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/README.md +87 -43
- package/dist/adapters.d.mts +2 -0
- package/dist/adapters.mjs +1 -0
- package/dist/chunk-0Lt9GpW0.mjs +1 -0
- package/dist/core/db/schema.d.mts +2 -0
- package/dist/core/db/schema.mjs +2 -0
- package/dist/core/db/schema.mjs.map +1 -0
- package/dist/core/db/utils.d.mts +1707 -0
- package/dist/core/db/utils.d.mts.map +1 -0
- package/dist/core/db/utils.mjs +1 -0
- package/dist/core-BSNwOgso.mjs +2 -0
- package/dist/core-BSNwOgso.mjs.map +1 -0
- package/dist/core.d.mts +2 -0
- package/dist/core.mjs +1 -0
- package/dist/db-DWWzkRBb.mjs +41 -0
- package/dist/db-DWWzkRBb.mjs.map +1 -0
- package/dist/dm-CBYaViIb.mjs +2 -0
- package/dist/dm-CBYaViIb.mjs.map +1 -0
- package/dist/dm-extra-DrAQCrFv.d.mts +135 -0
- package/dist/dm-extra-DrAQCrFv.d.mts.map +1 -0
- package/dist/index-5rcmHUF1.d.mts +6195 -0
- package/dist/index-5rcmHUF1.d.mts.map +1 -0
- package/dist/index.d.mts +4 -0
- package/dist/index.mjs +1 -0
- package/dist/isSame-Cdw0xkUV.mjs +2 -0
- package/dist/isSame-Cdw0xkUV.mjs.map +1 -0
- package/dist/plugins.d.mts +105 -0
- package/dist/plugins.d.mts.map +1 -0
- package/dist/plugins.mjs +2 -0
- package/dist/plugins.mjs.map +1 -0
- package/dist/schema-BuenbDx9.d.mts +1619 -0
- package/dist/schema-BuenbDx9.d.mts.map +1 -0
- package/dist/utils.d.mts +25 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.mjs +2 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +64 -36
- package/.babelrc.json +0 -12
- package/buf.gen.yaml +0 -10
- package/buf.yaml +0 -12
- package/dist/browser/1~rslib-runtime.min.js +0 -49
- package/dist/browser/index.min.js +0 -13523
- package/dist/browser/index.min.js.LICENSE.txt +0 -17
- package/dist/browser/plugins/bili.min.js +0 -1
- package/dist/browser/plugins/index.min.js +0 -2
- package/dist/browser/plugins/stats.min.js +0 -10
- package/dist/browser/src/ass-gen/__tests__/canvas.test.d.ts +0 -1
- package/dist/browser/src/ass-gen/__tests__/generate.test.d.ts +0 -1
- package/dist/browser/src/ass-gen/ass/create.d.ts +0 -4
- package/dist/browser/src/ass-gen/ass/dialogue.d.ts +0 -16
- package/dist/browser/src/ass-gen/ass/event.d.ts +0 -2
- package/dist/browser/src/ass-gen/ass/info.d.ts +0 -8
- package/dist/browser/src/ass-gen/ass/raw.d.ts +0 -14
- package/dist/browser/src/ass-gen/ass/style.d.ts +0 -2
- package/dist/browser/src/ass-gen/config.d.ts +0 -2
- package/dist/browser/src/ass-gen/index.d.ts +0 -30
- package/dist/browser/src/ass-gen/types.d.ts +0 -71
- package/dist/browser/src/ass-gen/util/color.d.ts +0 -18
- package/dist/browser/src/ass-gen/util/danconvert.d.ts +0 -5
- package/dist/browser/src/ass-gen/util/index.d.ts +0 -4
- package/dist/browser/src/ass-gen/util/lang.d.ts +0 -3
- package/dist/browser/src/ass-gen/util/layout.d.ts +0 -4
- package/dist/browser/src/index.d.ts +0 -283
- package/dist/browser/src/index.test.d.ts +0 -1
- package/dist/browser/src/plugins/bili/dedupe.d.ts +0 -3
- package/dist/browser/src/plugins/bili/history-danmaku-fast-forward.d.ts +0 -18
- package/dist/browser/src/plugins/bili/index.d.ts +0 -2
- package/dist/browser/src/plugins/bili/index.test.d.ts +0 -1
- package/dist/browser/src/plugins/index.d.ts +0 -2
- package/dist/browser/src/plugins/stats/getLatestDan.d.ts +0 -6
- package/dist/browser/src/plugins/stats/index.d.ts +0 -1
- package/dist/browser/src/plugins/stats/index.test.d.ts +0 -1
- package/dist/browser/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.d.ts +0 -3426
- package/dist/browser/src/proto/gen/danuni/danmaku/v1/danmaku_pb.d.ts +0 -176
- package/dist/browser/src/utils/dm-gen.d.ts +0 -309
- package/dist/browser/src/utils/dm-gen.test.d.ts +0 -1
- package/dist/browser/src/utils/fileParser.d.ts +0 -3
- package/dist/browser/src/utils/id-gen.d.ts +0 -50
- package/dist/browser/src/utils/platform.d.ts +0 -24
- package/dist/node/0~rslib-runtime.js +0 -23
- package/dist/node/index.js +0 -2099
- package/dist/node/plugins/bili.js +0 -1
- package/dist/node/plugins/index.js +0 -2
- package/dist/node/plugins/stats.js +0 -10
- package/dist/node/src/ass-gen/__tests__/canvas.test.d.ts +0 -1
- package/dist/node/src/ass-gen/__tests__/generate.test.d.ts +0 -1
- package/dist/node/src/ass-gen/ass/create.d.ts +0 -4
- package/dist/node/src/ass-gen/ass/dialogue.d.ts +0 -16
- package/dist/node/src/ass-gen/ass/event.d.ts +0 -2
- package/dist/node/src/ass-gen/ass/info.d.ts +0 -8
- package/dist/node/src/ass-gen/ass/raw.d.ts +0 -14
- package/dist/node/src/ass-gen/ass/style.d.ts +0 -2
- package/dist/node/src/ass-gen/config.d.ts +0 -2
- package/dist/node/src/ass-gen/index.d.ts +0 -30
- package/dist/node/src/ass-gen/types.d.ts +0 -71
- package/dist/node/src/ass-gen/util/color.d.ts +0 -18
- package/dist/node/src/ass-gen/util/danconvert.d.ts +0 -5
- package/dist/node/src/ass-gen/util/index.d.ts +0 -4
- package/dist/node/src/ass-gen/util/lang.d.ts +0 -3
- package/dist/node/src/ass-gen/util/layout.d.ts +0 -4
- package/dist/node/src/index.d.ts +0 -283
- package/dist/node/src/index.test.d.ts +0 -1
- package/dist/node/src/plugins/bili/dedupe.d.ts +0 -3
- package/dist/node/src/plugins/bili/history-danmaku-fast-forward.d.ts +0 -18
- package/dist/node/src/plugins/bili/index.d.ts +0 -2
- package/dist/node/src/plugins/bili/index.test.d.ts +0 -1
- package/dist/node/src/plugins/index.d.ts +0 -2
- package/dist/node/src/plugins/stats/getLatestDan.d.ts +0 -6
- package/dist/node/src/plugins/stats/index.d.ts +0 -1
- package/dist/node/src/plugins/stats/index.test.d.ts +0 -1
- package/dist/node/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.d.ts +0 -3426
- package/dist/node/src/proto/gen/danuni/danmaku/v1/danmaku_pb.d.ts +0 -176
- package/dist/node/src/utils/dm-gen.d.ts +0 -309
- package/dist/node/src/utils/dm-gen.test.d.ts +0 -1
- package/dist/node/src/utils/fileParser.d.ts +0 -3
- package/dist/node/src/utils/id-gen.d.ts +0 -50
- package/dist/node/src/utils/platform.d.ts +0 -24
- package/dist/umd/index.umd.min.js +0 -32093
- package/dist/umd/index.umd.min.js.LICENSE.txt +0 -34
- package/dist/umd/plugins/bili.umd.min.js +0 -32004
- package/dist/umd/plugins/bili.umd.min.js.LICENSE.txt +0 -34
- package/dist/umd/plugins/index.umd.min.js +0 -32020
- package/dist/umd/plugins/index.umd.min.js.LICENSE.txt +0 -34
- package/dist/umd/plugins/stats.umd.min.js +0 -39
- package/dist/umd/src/ass-gen/__tests__/canvas.test.d.ts +0 -1
- package/dist/umd/src/ass-gen/__tests__/generate.test.d.ts +0 -1
- package/dist/umd/src/ass-gen/ass/create.d.ts +0 -4
- package/dist/umd/src/ass-gen/ass/dialogue.d.ts +0 -16
- package/dist/umd/src/ass-gen/ass/event.d.ts +0 -2
- package/dist/umd/src/ass-gen/ass/info.d.ts +0 -8
- package/dist/umd/src/ass-gen/ass/raw.d.ts +0 -14
- package/dist/umd/src/ass-gen/ass/style.d.ts +0 -2
- package/dist/umd/src/ass-gen/config.d.ts +0 -2
- package/dist/umd/src/ass-gen/index.d.ts +0 -30
- package/dist/umd/src/ass-gen/types.d.ts +0 -71
- package/dist/umd/src/ass-gen/util/color.d.ts +0 -18
- package/dist/umd/src/ass-gen/util/danconvert.d.ts +0 -5
- package/dist/umd/src/ass-gen/util/index.d.ts +0 -4
- package/dist/umd/src/ass-gen/util/lang.d.ts +0 -3
- package/dist/umd/src/ass-gen/util/layout.d.ts +0 -4
- package/dist/umd/src/index.d.ts +0 -283
- package/dist/umd/src/index.test.d.ts +0 -1
- package/dist/umd/src/plugins/bili/dedupe.d.ts +0 -3
- package/dist/umd/src/plugins/bili/history-danmaku-fast-forward.d.ts +0 -18
- package/dist/umd/src/plugins/bili/index.d.ts +0 -2
- package/dist/umd/src/plugins/bili/index.test.d.ts +0 -1
- package/dist/umd/src/plugins/index.d.ts +0 -2
- package/dist/umd/src/plugins/stats/getLatestDan.d.ts +0 -6
- package/dist/umd/src/plugins/stats/index.d.ts +0 -1
- package/dist/umd/src/plugins/stats/index.test.d.ts +0 -1
- package/dist/umd/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.d.ts +0 -3426
- package/dist/umd/src/proto/gen/danuni/danmaku/v1/danmaku_pb.d.ts +0 -176
- package/dist/umd/src/utils/dm-gen.d.ts +0 -309
- package/dist/umd/src/utils/dm-gen.test.d.ts +0 -1
- package/dist/umd/src/utils/fileParser.d.ts +0 -3
- package/dist/umd/src/utils/id-gen.d.ts +0 -50
- package/dist/umd/src/utils/platform.d.ts +0 -24
- package/plugins/package.json +0 -6
- package/rslib.config.ts +0 -101
- package/src/ass-gen/__tests__/898651903.xml +0 -1619
- package/src/ass-gen/__tests__/898651903.xml.ass +0 -1516
- package/src/ass-gen/__tests__/canvas.test.ts +0 -15
- package/src/ass-gen/__tests__/generate.test.ts +0 -26
- package/src/ass-gen/ass/create.ts +0 -37
- package/src/ass-gen/ass/dialogue.ts +0 -90
- package/src/ass-gen/ass/event.ts +0 -57
- package/src/ass-gen/ass/info.ts +0 -27
- package/src/ass-gen/ass/raw.ts +0 -78
- package/src/ass-gen/ass/style.ts +0 -66
- package/src/ass-gen/config.ts +0 -45
- package/src/ass-gen/index.ts +0 -73
- package/src/ass-gen/types.ts +0 -76
- package/src/ass-gen/util/color.ts +0 -55
- package/src/ass-gen/util/danconvert.ts +0 -43
- package/src/ass-gen/util/index.ts +0 -10
- package/src/ass-gen/util/lang.ts +0 -35
- package/src/ass-gen/util/layout.ts +0 -242
- package/src/index.test.ts +0 -157
- package/src/index.ts +0 -1144
- package/src/plugins/bili/README.md +0 -87
- package/src/plugins/bili/dedupe.ts +0 -29
- package/src/plugins/bili/history-danmaku-fast-forward.ts +0 -86
- package/src/plugins/bili/index.test.ts +0 -129
- package/src/plugins/bili/index.ts +0 -2
- package/src/plugins/index.ts +0 -2
- package/src/plugins/stats/README.md +0 -44
- package/src/plugins/stats/getLatestDan.ts +0 -13
- package/src/plugins/stats/index.test.ts +0 -39
- package/src/plugins/stats/index.ts +0 -1
- package/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.ts +0 -4072
- package/src/proto/gen/danuni/danmaku/v1/danmaku_pb.ts +0 -223
- package/src/proto/src/bilibili/community/service/dm/v1/dm.proto +0 -1095
- package/src/proto/src/danuni/danmaku/v1/danmaku.proto +0 -52
- package/src/utils/dm-gen.test.ts +0 -129
- package/src/utils/dm-gen.ts +0 -1082
- package/src/utils/fileParser.ts +0 -37
- package/src/utils/id-gen.ts +0 -73
- package/src/utils/platform.ts +0 -38
- package/tsconfig.json +0 -108
- package/types/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -1,67 +1,111 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @dan-uni/dan-any
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`@dan-uni/dan-any` (V2) 是一个弹幕转换与处理库,用于在不同平台格式之间导入、导出与统一处理弹幕数据。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
它的核心思路是:
|
|
6
|
+
- 用 `Adapter` 把外部格式导入为统一数据
|
|
7
|
+
- 用 `Transformer` 把统一数据导出为目标格式
|
|
8
|
+
- 用 `Plugin` 在处理中间态(`UniChunk`)上做增强/清洗/统计
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
- 对多平台弹幕进行统一格式化
|
|
9
|
-
- 获取一组弹幕中的共通值
|
|
10
|
-
- 对弹幕按一定key值进行分组
|
|
11
|
-
- 合并较短时间内出现的重复弹幕
|
|
12
|
-
- 管道式插件系统
|
|
10
|
+
## 功能概览
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
### Formats 支持转换的格式
|
|
15
13
|
|
|
16
14
|
`pb`指`protobuf`格式(grpc协议下的默认传输格式)
|
|
17
15
|
|
|
18
|
-
- [x] DanUni(json,pb)
|
|
19
|
-
- [x] bili(普通+高级弹幕,xml)
|
|
20
|
-
- [x] bili(普通+高级弹幕,pb)
|
|
21
|
-
- [x] bili(指令弹幕,pb)
|
|
22
|
-
- [x] dplayer
|
|
23
|
-
- [x] artplayer
|
|
24
|
-
- [x] 弹弹Play
|
|
25
|
-
- [x] ASS `双向(
|
|
16
|
+
- [x] DanUni(json,pb): `DanuniJsonAdapter` `DanuniJsonTransformerConfigurator` `DanuniPbAdapter` `DanuniPbTransformer`
|
|
17
|
+
- [x] bili(普通+高级弹幕,xml) `双向`: `BiliXmlAdapter` `BiliXmlTransformerConfigurator`
|
|
18
|
+
- [x] bili(普通+高级弹幕,pb) `正向`: `BiliGrpcAdapter`
|
|
19
|
+
- [x] bili(指令弹幕,pb) `正向`: `BiliCommandGrpcAdapter`
|
|
20
|
+
- [x] dplayer: `DplayerAdapter` `DplayerTransformer`
|
|
21
|
+
- [x] artplayer: `ArtplayerAdapter` `ArtplayerTransformer`
|
|
22
|
+
- [x] 弹弹Play: `DdplayAdapter` `DdplayTransformer`
|
|
23
|
+
- [x] [ASS(`@dan-uni/dan-any-ext-ass`)](https://github.com/ani-uni/dan-any-ext-ass) `双向(部分支持,仅该库生成的ass文件支持还原)`
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
### Plugins 常用插件
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
- `MergePluginConfigurator`(合并重复弹幕)
|
|
28
|
+
- `DetaoluPluginConfigurator` (基于pakku.js的弹幕过滤器): 由 [@dan-uni/dan-any-plugin-detaolu](https://github.com/ani-uni/dan-any-plugin-detaolu) 提供
|
|
29
|
+
- `DowngradeAdvancedPluginConfigurator`(高级弹幕降级)
|
|
30
|
+
- `GetStatsTransformerConfigurator`(统计输出)
|
|
31
|
+
- `CountTransformer`(数量统计)
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
- `src/plugins`下的插件 `bili`(B站弹幕相关) `stats`(统计相关),内部附有使用文档
|
|
33
|
+
## 安装
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
```bash
|
|
36
|
+
vp add @dan-uni/dan-any
|
|
37
|
+
bun add @dan-uni/dan-any
|
|
38
|
+
pnpm add @dan-uni/dan-any
|
|
39
|
+
```
|
|
35
40
|
|
|
36
|
-
|
|
37
|
-
如果需要以最为可靠的方式传送弹幕,请尽量使用 `danuni.json` / `danuni.binpb` 进行导出分发。
|
|
41
|
+
## 快速开始
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
详细使用方法可以参考库中的测试文件。
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
### 1) 从 Bilibili XML 导入,再导出为 Danuni JSON
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
```ts
|
|
48
|
+
import { UniDB } from '@dan-uni/dan-any/core'
|
|
49
|
+
import {
|
|
50
|
+
BiliXmlAdapter,
|
|
51
|
+
DanuniJsonTransformerConfigurator,
|
|
52
|
+
} from '@dan-uni/dan-any/adapters'
|
|
44
53
|
|
|
45
|
-
|
|
54
|
+
const xml = `...bili xml弹幕文本...`
|
|
46
55
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
const udb = await new UniDB().init()
|
|
57
|
+
const chunk = await udb.import(BiliXmlAdapter(xml))
|
|
58
|
+
const json = await chunk.export(DanuniJsonTransformerConfigurator({ minify: true }))
|
|
50
59
|
|
|
51
|
-
|
|
60
|
+
console.log(json)
|
|
61
|
+
await udb.close()
|
|
62
|
+
```
|
|
52
63
|
|
|
53
|
-
|
|
54
|
-
- [ ] 完善使用文档
|
|
55
|
-
- [ ] 支持chpt弹幕转换为Artplayer章节(artplayer-plugin-chapter)
|
|
56
|
-
- [ ] 使用zod重写类型系统
|
|
64
|
+
### 2) 在处理链中使用插件
|
|
57
65
|
|
|
58
|
-
|
|
66
|
+
```ts
|
|
67
|
+
import { mergePluginConfigurator } from '@dan-uni/dan-any/plugins'
|
|
68
|
+
import { DanuniJsonTransformerConfigurator } from '@dan-uni/dan-any/adapters'
|
|
59
69
|
|
|
60
|
-
|
|
70
|
+
const merged = await chunk.plugin(mergePluginConfigurator(10))
|
|
71
|
+
const result = await merged.export(DanuniJsonTransformerConfigurator({ minify: true }))
|
|
61
72
|
|
|
62
|
-
|
|
73
|
+
console.log(result)
|
|
74
|
+
```
|
|
63
75
|
|
|
64
|
-
|
|
65
|
-
本库采用 LGPL 3.0 or later 许可证发布。
|
|
76
|
+
### 3) PB 双向示例(导出再导入)
|
|
66
77
|
|
|
67
|
-
|
|
78
|
+
```ts
|
|
79
|
+
import { DanuniPbTransformer, DanuniPbAdapter } from '@dan-uni/dan-any/adapters'
|
|
80
|
+
|
|
81
|
+
const pb = await chunk.export(DanuniPbTransformer)
|
|
82
|
+
const reimported = await udb.import(DanuniPbAdapter(pb))
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 高级: 提供兼容的drizzle+pglite实例接入自己的数据库
|
|
86
|
+
|
|
87
|
+
详见 测试文件 `tests/db.test.ts`.
|
|
88
|
+
|
|
89
|
+
## 模块入口
|
|
90
|
+
|
|
91
|
+
包已提供以下子路径导出:
|
|
92
|
+
- `@dan-uni/dan-any`(聚合导出)
|
|
93
|
+
- `@dan-uni/dan-any/adapters`
|
|
94
|
+
- `@dan-uni/dan-any/core`
|
|
95
|
+
- `@dan-uni/dan-any/plugins`
|
|
96
|
+
- `@dan-uni/dan-any/utils`
|
|
97
|
+
- `@dan-uni/dan-any/core/db/schema`
|
|
98
|
+
- `@dan-uni/dan-any/core/db/utils`
|
|
99
|
+
|
|
100
|
+
## 开发
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
vp install
|
|
104
|
+
vp check
|
|
105
|
+
vp test
|
|
106
|
+
vp pack
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 许可
|
|
110
|
+
|
|
111
|
+
`LGPL-3.0-or-later`
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { A as enumModeCodec, C as BiliGrpcAdapter, D as DanuniJsonAdapter, E as DanuniPbTransformer, O as DanuniJsonTransformerConfigurator, S as BiliCommonParser, T as DanuniPbAdapter, _ as BiliXmlAdapter, a as UDanmaku, b as BiliCommonBuilder, c as defineTransformer, d as DplayerAdapter, f as DplayerTransformer, g as ArtplayerTransformer, h as ArtplayerAdapter, i as TransformerInput, j as enumPoolCodec, k as enumAttrsCodec, m as DdplayTransformer, n as Plugin, o as defineAdapter, p as DdplayAdapter, r as Transformer, s as definePlugin, t as Adapter, u as transformerInput2Danmakus, v as BiliXmlTransformerConfigurator, w as BiliCommandGrpcAdapter, x as BiliCommonModeRec, y as BiliUpAdapter } from "./index-5rcmHUF1.mjs";
|
|
2
|
+
export { Adapter, ArtplayerAdapter, ArtplayerTransformer, BiliCommandGrpcAdapter, BiliCommonBuilder, BiliCommonModeRec, BiliCommonParser, BiliGrpcAdapter, BiliUpAdapter, BiliXmlAdapter, BiliXmlTransformerConfigurator, DanuniJsonAdapter, DanuniJsonTransformerConfigurator, DanuniPbAdapter, DanuniPbTransformer, DdplayAdapter, DdplayTransformer, DplayerAdapter, DplayerTransformer, Plugin, Transformer, TransformerInput, UDanmaku, defineAdapter, definePlugin, defineTransformer, enumAttrsCodec, enumModeCodec, enumPoolCodec, transformerInput2Danmakus };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,b as c,c as l,d as u,f as d,g as f,h as p,j as m,k as h,l as g,m as _,p as v,s as y,u as b,v as x,w as S,x as C,y as w}from"./core-BSNwOgso.mjs";export{p as ArtplayerAdapter,f as ArtplayerTransformer,S as BiliCommandGrpcAdapter,c as BiliCommonBuilder,C as BiliCommonModeRec,a as BiliCommonParser,t as BiliGrpcAdapter,w as BiliUpAdapter,s as BiliXmlAdapter,x as BiliXmlTransformerConfigurator,n as DanuniJsonAdapter,i as DanuniJsonTransformerConfigurator,o as DanuniPbAdapter,r as DanuniPbTransformer,v as DdplayAdapter,_ as DdplayTransformer,u as DplayerAdapter,d as DplayerTransformer,y as defineAdapter,l as definePlugin,g as defineTransformer,h as enumAttrsCodec,e as enumModeCodec,m as enumPoolCodec,b as transformerInput2Danmakus};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};export{t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { _ as onConflictDoUpdateSet, a as PoolSchema, c as chunk2danmakusZod, d as danmakus, f as danmakusInsertZod, g as onConflictDoUpdate, h as modeEnum, i as ModeSchema, l as chunks, m as dmAttrEnum, n as DanmakusInsert, o as baseRelations, p as danmakusSelectZod, r as DanmakusSelect, s as chunk2danmakus, t as DMAttrSchema, u as chunksZod, v as poolEnum, y as relations } from "../../schema-BuenbDx9.mjs";
|
|
2
|
+
export { DMAttrSchema, DanmakusInsert, DanmakusSelect, ModeSchema, PoolSchema, baseRelations, chunk2danmakus, chunk2danmakusZod, chunks, chunksZod, danmakus, danmakusInsertZod, danmakusSelectZod, dmAttrEnum, modeEnum, onConflictDoUpdate, onConflictDoUpdateSet, poolEnum, relations };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineRelations as e,defineRelationsPart as t,sql as n}from"drizzle-orm";import*as r from"drizzle-orm/pg-core";import{z as i}from"zod";import{createInsertSchema as a}from"drizzle-orm/zod";const o=r.pgEnum(`mode`,[`Normal`,`Bottom`,`Top`,`Reverse`,`Ext`]),s=r.pgEnum(`pool`,[`Def`,`Sub`,`Adv`,`Ix`]),c=r.pgEnum(`dm_attr`,[`Protect`,`FromLive`,`HighLike`,`Compatible`,`Reported`,`Unchecked`,`HasEvent`,`Hide`]),l=r.pgTable(`danmakus`,{SOID:r.text().notNull(),DMID:r.text().primaryKey(),progress:r.integer().notNull(),mode:o().notNull(),fontsize:r.smallint().notNull(),color:r.integer().notNull(),senderID:r.text().notNull(),content:r.text().notNull(),ctime:r.timestamp().notNull(),weight:r.smallint().notNull(),pool:s().notNull(),attr:c().array().notNull(),platform:r.text(),extra:r.jsonb().$type()}),u=a(l),d=a(l),f=r.pgTable(`chunks`,{id:r.serial().primaryKey(),fromConverted:r.boolean().notNull().default(!1),tmp:r.boolean().notNull().default(!1)}),p=a(f),m=r.pgTable(`chunk_danmakus`,{id:r.bigserial({mode:`bigint`}).primaryKey(),chunkID:r.integer().references(()=>f.id).notNull(),DMID:r.text().references(()=>l.DMID).notNull()}),h=a(m),g=e({danmakus:l,chunks:f,chunk2danmakus:m}),_=t({danmakus:l,chunks:f,chunk2danmakus:m},e=>({chunks:{danmakus:e.many.danmakus({from:e.chunks.id.through(e.chunk2danmakus.chunkID),to:e.danmakus.DMID.through(e.chunk2danmakus.DMID)})}})),v={danmakus:Object.fromEntries(Object.keys(l).map(e=>[e,n.raw(`excluded."${e}"`)]))},y={danmakus:{target:[l.DMID],set:v.danmakus}},b=i.enum(l.mode.enumValues),x=i.enum(l.pool.enumValues),S=i.enum(l.attr.enumValues);export{S as DMAttrSchema,b as ModeSchema,x as PoolSchema,g as baseRelations,m as chunk2danmakus,h as chunk2danmakusZod,f as chunks,p as chunksZod,l as danmakus,u as danmakusInsertZod,d as danmakusSelectZod,c as dmAttrEnum,o as modeEnum,y as onConflictDoUpdate,v as onConflictDoUpdateSet,s as poolEnum,_ as relations};
|
|
2
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","names":[],"sources":["../../../src/core/db/schema.ts"],"sourcesContent":["import { defineRelations, defineRelationsPart, sql } from \"drizzle-orm\";\nimport * as t from \"drizzle-orm/pg-core\";\nimport type { Extra as UniDanExtra } from \"@/core/dm-extra.ts\";\nimport { z } from \"zod\";\nimport { createInsertSchema } from \"drizzle-orm/zod\";\nimport type { Simplify } from \"type-fest\";\n\nexport const modeEnum = t.pgEnum(\"mode\", [\"Normal\", \"Bottom\", \"Top\", \"Reverse\", \"Ext\"]);\nexport const poolEnum = t.pgEnum(\"pool\", [\"Def\", \"Sub\", \"Adv\", \"Ix\"]);\nexport const dmAttrEnum = t.pgEnum(\"dm_attr\", [\n \"Protect\",\n \"FromLive\",\n \"HighLike\",\n \"Compatible\",\n \"Reported\",\n \"Unchecked\",\n \"HasEvent\",\n \"Hide\",\n]);\n\n// bsnapshot的弹幕不设置默认值,尽量遵循上传组的原始数据(保证所有重要值均有确定)\nexport const danmakus = t.pgTable(\"danmakus\", {\n SOID: t.text().notNull(),\n // .references(() => pools.SOID),\n DMID: t.text().primaryKey(), // 该值在此直接map到dan-any的DMID,为唯一值\n progress: t.integer().notNull(), // 毫秒\n mode: modeEnum().notNull(),\n fontsize: t.smallint().notNull(),\n color: t.integer().notNull(),\n senderID: t.text().notNull(),\n content: t.text().notNull(),\n ctime: t.timestamp().notNull(),\n weight: t.smallint().notNull(),\n pool: poolEnum().notNull(),\n attr: dmAttrEnum().array().notNull(),\n platform: t.text(),\n extra: t.jsonb().$type<UniDanExtra>(),\n});\nexport const danmakusInsertZod = createInsertSchema(danmakus);\nexport const danmakusSelectZod = createInsertSchema(danmakus);\nexport type DanmakusInsert = Simplify<\n Omit<z.infer<typeof danmakusInsertZod>, \"extra\"> & { extra: UniDanExtra | null }\n>;\nexport type DanmakusSelect = Simplify<\n Omit<z.infer<typeof danmakusSelectZod>, \"extra\"> & { extra: UniDanExtra | null }\n>;\n// export const pools = t.pgTable(\"pools\", {\n// SOID: t.text().primaryKey(),\n// });\n\nexport const chunks = t.pgTable(\"chunks\", {\n id: t.serial().primaryKey(),\n // 信息区\n fromConverted: t.boolean().notNull().default(false), // 是否包含有损转换过的弹幕,导入后不建议再次导出(应用层决定:导出按钮检测到后提示/禁用)\n tmp: t.boolean().notNull().default(false), // 是否为临时chunk,临时chunk会在完成导出行为后自动删除/shrink时自动批量删除\n});\nexport const chunksZod = createInsertSchema(chunks);\n\n// many-to-many 映射表:chunk <-> danmakus\nexport const chunk2danmakus = t.pgTable(\"chunk_danmakus\", {\n id: t.bigserial({ mode: \"bigint\" }).primaryKey(),\n chunkID: t\n .integer()\n .references(() => chunks.id)\n .notNull(),\n DMID: t\n .text()\n .references(() => danmakus.DMID)\n .notNull(),\n});\nexport const chunk2danmakusZod = createInsertSchema(chunk2danmakus);\n\nexport const baseRelations = defineRelations({ danmakus, chunks, chunk2danmakus });\nexport const relations = defineRelationsPart({ danmakus, chunks, chunk2danmakus }, (r) => ({\n // pools: {\n // danmakus: r.many.danmakus({\n // from: r.pools.SOID,\n // to: r.danmakus.SOID,\n // }),\n // },\n chunks: {\n danmakus: r.many.danmakus({\n from: r.chunks.id.through(r.chunk2danmakus.chunkID),\n to: r.danmakus.DMID.through(r.chunk2danmakus.DMID),\n }),\n },\n}));\n\nexport const onConflictDoUpdateSet = {\n danmakus: Object.fromEntries(\n Object.keys(danmakus).map((key) => [key, sql.raw(`excluded.\"${key}\"`)]),\n ),\n} as const;\nexport const onConflictDoUpdate = {\n danmakus: {\n target: [danmakus.DMID],\n set: onConflictDoUpdateSet.danmakus,\n },\n};\n\nexport const ModeSchema = z.enum(danmakus.mode.enumValues);\nexport const PoolSchema = z.enum(danmakus.pool.enumValues);\nexport const DMAttrSchema = z.enum(danmakus.attr.enumValues);\n"],"mappings":"mMAOA,MAAa,EAAW,EAAE,OAAO,OAAQ,CAAC,SAAU,SAAU,MAAO,UAAW,MAAM,CAAC,CAC1E,EAAW,EAAE,OAAO,OAAQ,CAAC,MAAO,MAAO,MAAO,KAAK,CAAC,CACxD,EAAa,EAAE,OAAO,UAAW,CAC5C,UACA,WACA,WACA,aACA,WACA,YACA,WACA,OACD,CAAC,CAGW,EAAW,EAAE,QAAQ,WAAY,CAC5C,KAAM,EAAE,MAAM,CAAC,SAAS,CAExB,KAAM,EAAE,MAAM,CAAC,YAAY,CAC3B,SAAU,EAAE,SAAS,CAAC,SAAS,CAC/B,KAAM,GAAU,CAAC,SAAS,CAC1B,SAAU,EAAE,UAAU,CAAC,SAAS,CAChC,MAAO,EAAE,SAAS,CAAC,SAAS,CAC5B,SAAU,EAAE,MAAM,CAAC,SAAS,CAC5B,QAAS,EAAE,MAAM,CAAC,SAAS,CAC3B,MAAO,EAAE,WAAW,CAAC,SAAS,CAC9B,OAAQ,EAAE,UAAU,CAAC,SAAS,CAC9B,KAAM,GAAU,CAAC,SAAS,CAC1B,KAAM,GAAY,CAAC,OAAO,CAAC,SAAS,CACpC,SAAU,EAAE,MAAM,CAClB,MAAO,EAAE,OAAO,CAAC,OAAoB,CACtC,CAAC,CACW,EAAoB,EAAmB,EAAS,CAChD,EAAoB,EAAmB,EAAS,CAWhD,EAAS,EAAE,QAAQ,SAAU,CACxC,GAAI,EAAE,QAAQ,CAAC,YAAY,CAE3B,cAAe,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAM,CACnD,IAAK,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAM,CAC1C,CAAC,CACW,EAAY,EAAmB,EAAO,CAGtC,EAAiB,EAAE,QAAQ,iBAAkB,CACxD,GAAI,EAAE,UAAU,CAAE,KAAM,SAAU,CAAC,CAAC,YAAY,CAChD,QAAS,EACN,SAAS,CACT,eAAiB,EAAO,GAAG,CAC3B,SAAS,CACZ,KAAM,EACH,MAAM,CACN,eAAiB,EAAS,KAAK,CAC/B,SAAS,CACb,CAAC,CACW,EAAoB,EAAmB,EAAe,CAEtD,EAAgB,EAAgB,CAAE,WAAU,SAAQ,iBAAgB,CAAC,CACrE,EAAY,EAAoB,CAAE,WAAU,SAAQ,iBAAgB,CAAG,IAAO,CAOzF,OAAQ,CACN,SAAU,EAAE,KAAK,SAAS,CACxB,KAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,eAAe,QAAQ,CACnD,GAAI,EAAE,SAAS,KAAK,QAAQ,EAAE,eAAe,KAAK,CACnD,CAAC,CACH,CACF,EAAE,CAEU,EAAwB,CACnC,SAAU,OAAO,YACf,OAAO,KAAK,EAAS,CAAC,IAAK,GAAQ,CAAC,EAAK,EAAI,IAAI,aAAa,EAAI,GAAG,CAAC,CAAC,CACxE,CACF,CACY,EAAqB,CAChC,SAAU,CACR,OAAQ,CAAC,EAAS,KAAK,CACvB,IAAK,EAAsB,SAC5B,CACF,CAEY,EAAa,EAAE,KAAK,EAAS,KAAK,WAAW,CAC7C,EAAa,EAAE,KAAK,EAAS,KAAK,WAAW,CAC7C,EAAe,EAAE,KAAK,EAAS,KAAK,WAAW"}
|