@dan-uni/dan-any 1.0.1 → 1.2.2

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.
Files changed (126) hide show
  1. package/dist/browser/157.min.js +30 -0
  2. package/dist/{index.min.js → browser/17.min.js} +14 -8
  3. package/dist/browser/898.min.js +10 -0
  4. package/dist/browser/index.min.js +1 -0
  5. package/dist/browser/plugins/bili-dedupe.min.js +1 -0
  6. package/dist/browser/plugins/index.min.js +2 -0
  7. package/dist/browser/plugins/stats.min.js +1 -0
  8. package/dist/{src → browser/src}/index.d.ts +4 -4
  9. package/dist/browser/src/plugins/bili-dedupe/index.d.ts +3 -0
  10. package/dist/browser/src/plugins/index.d.ts +2 -0
  11. package/dist/browser/src/plugins/stats/getLatestDan.d.ts +6 -0
  12. package/dist/browser/src/plugins/stats/index.d.ts +1 -0
  13. package/dist/browser/src/plugins/stats/index.test.d.ts +1 -0
  14. package/dist/browser/src/utils/dm-gen.test.d.ts +1 -0
  15. package/dist/node/157.js +30 -0
  16. package/dist/{index.js → node/17.js} +2 -2
  17. package/dist/node/898.js +10 -0
  18. package/dist/node/index.js +1 -0
  19. package/dist/node/plugins/bili-dedupe.js +1 -0
  20. package/dist/node/plugins/index.js +2 -0
  21. package/dist/node/plugins/stats.js +1 -0
  22. package/dist/node/src/ass-gen/__tests__/canvas.test.d.ts +1 -0
  23. package/dist/node/src/ass-gen/__tests__/generate.test.d.ts +1 -0
  24. package/dist/node/src/ass-gen/ass/create.d.ts +4 -0
  25. package/dist/node/src/ass-gen/ass/dialogue.d.ts +16 -0
  26. package/dist/node/src/ass-gen/ass/event.d.ts +2 -0
  27. package/dist/node/src/ass-gen/ass/info.d.ts +8 -0
  28. package/dist/node/src/ass-gen/ass/raw.d.ts +14 -0
  29. package/dist/node/src/ass-gen/ass/style.d.ts +2 -0
  30. package/dist/node/src/ass-gen/config.d.ts +2 -0
  31. package/dist/node/src/ass-gen/index.d.ts +30 -0
  32. package/dist/node/src/ass-gen/types.d.ts +71 -0
  33. package/dist/node/src/ass-gen/util/color.d.ts +18 -0
  34. package/dist/node/src/ass-gen/util/danconvert.d.ts +5 -0
  35. package/dist/node/src/ass-gen/util/index.d.ts +4 -0
  36. package/dist/node/src/ass-gen/util/lang.d.ts +3 -0
  37. package/dist/node/src/ass-gen/util/layout.d.ts +4 -0
  38. package/dist/node/src/index.d.ts +255 -0
  39. package/dist/node/src/index.test.d.ts +1 -0
  40. package/dist/node/src/plugins/bili-dedupe/index.d.ts +3 -0
  41. package/dist/node/src/plugins/bili-dedupe/index.test.d.ts +1 -0
  42. package/dist/node/src/plugins/index.d.ts +2 -0
  43. package/dist/node/src/plugins/stats/getLatestDan.d.ts +6 -0
  44. package/dist/node/src/plugins/stats/index.d.ts +1 -0
  45. package/dist/node/src/plugins/stats/index.test.d.ts +1 -0
  46. package/dist/node/src/proto/gen/bili/dm_pb.d.ts +3426 -0
  47. package/dist/node/src/proto/gen/danuni_pb.d.ts +172 -0
  48. package/dist/node/src/utils/dm-gen.d.ts +309 -0
  49. package/dist/node/src/utils/dm-gen.test.d.ts +1 -0
  50. package/dist/node/src/utils/id-gen.d.ts +50 -0
  51. package/dist/node/src/utils/platform.d.ts +24 -0
  52. package/dist/{index.umd.min.js → umd/index.umd.min.js} +76 -67
  53. package/dist/umd/plugins/bili-dedupe.umd.min.js +25028 -0
  54. package/dist/umd/plugins/bili-dedupe.umd.min.js.LICENSE.txt +34 -0
  55. package/dist/umd/plugins/index.umd.min.js +25048 -0
  56. package/dist/umd/plugins/index.umd.min.js.LICENSE.txt +34 -0
  57. package/dist/umd/plugins/stats.umd.min.js +39 -0
  58. package/dist/umd/src/ass-gen/__tests__/canvas.test.d.ts +1 -0
  59. package/dist/umd/src/ass-gen/__tests__/generate.test.d.ts +1 -0
  60. package/dist/umd/src/ass-gen/ass/create.d.ts +4 -0
  61. package/dist/umd/src/ass-gen/ass/dialogue.d.ts +16 -0
  62. package/dist/umd/src/ass-gen/ass/event.d.ts +2 -0
  63. package/dist/umd/src/ass-gen/ass/info.d.ts +8 -0
  64. package/dist/umd/src/ass-gen/ass/raw.d.ts +14 -0
  65. package/dist/umd/src/ass-gen/ass/style.d.ts +2 -0
  66. package/dist/umd/src/ass-gen/config.d.ts +2 -0
  67. package/dist/umd/src/ass-gen/index.d.ts +30 -0
  68. package/dist/umd/src/ass-gen/types.d.ts +71 -0
  69. package/dist/umd/src/ass-gen/util/color.d.ts +18 -0
  70. package/dist/umd/src/ass-gen/util/danconvert.d.ts +5 -0
  71. package/dist/umd/src/ass-gen/util/index.d.ts +4 -0
  72. package/dist/umd/src/ass-gen/util/lang.d.ts +3 -0
  73. package/dist/umd/src/ass-gen/util/layout.d.ts +4 -0
  74. package/dist/umd/src/index.d.ts +255 -0
  75. package/dist/umd/src/index.test.d.ts +1 -0
  76. package/dist/umd/src/plugins/bili-dedupe/index.d.ts +3 -0
  77. package/dist/umd/src/plugins/bili-dedupe/index.test.d.ts +1 -0
  78. package/dist/umd/src/plugins/index.d.ts +2 -0
  79. package/dist/umd/src/plugins/stats/getLatestDan.d.ts +6 -0
  80. package/dist/umd/src/plugins/stats/index.d.ts +1 -0
  81. package/dist/umd/src/plugins/stats/index.test.d.ts +1 -0
  82. package/dist/umd/src/proto/gen/bili/dm_pb.d.ts +3426 -0
  83. package/dist/umd/src/proto/gen/danuni_pb.d.ts +172 -0
  84. package/dist/umd/src/utils/dm-gen.d.ts +309 -0
  85. package/dist/umd/src/utils/dm-gen.test.d.ts +1 -0
  86. package/dist/umd/src/utils/id-gen.d.ts +50 -0
  87. package/dist/umd/src/utils/platform.d.ts +24 -0
  88. package/package.json +8 -8
  89. package/plugins/package.json +6 -0
  90. package/rslib.config.ts +11 -0
  91. package/src/index.ts +8 -4
  92. package/src/plugins/bili-dedupe/index.test.ts +43 -0
  93. package/src/plugins/bili-dedupe/index.ts +29 -0
  94. package/src/plugins/index.ts +2 -0
  95. package/src/plugins/stats/getLatestDan.ts +13 -0
  96. package/src/plugins/stats/index.test.ts +39 -0
  97. package/src/plugins/stats/index.ts +1 -0
  98. package/src/proto/gen/bili/dm_pb.ts +1 -1
  99. package/src/proto/gen/danuni_pb.ts +1 -1
  100. /package/dist/{index.min.js.LICENSE.txt → browser/17.min.js.LICENSE.txt} +0 -0
  101. /package/dist/{rslib-runtime.min.js → browser/rslib-runtime.min.js} +0 -0
  102. /package/dist/{src → browser/src}/ass-gen/__tests__/canvas.test.d.ts +0 -0
  103. /package/dist/{src → browser/src}/ass-gen/__tests__/generate.test.d.ts +0 -0
  104. /package/dist/{src → browser/src}/ass-gen/ass/create.d.ts +0 -0
  105. /package/dist/{src → browser/src}/ass-gen/ass/dialogue.d.ts +0 -0
  106. /package/dist/{src → browser/src}/ass-gen/ass/event.d.ts +0 -0
  107. /package/dist/{src → browser/src}/ass-gen/ass/info.d.ts +0 -0
  108. /package/dist/{src → browser/src}/ass-gen/ass/raw.d.ts +0 -0
  109. /package/dist/{src → browser/src}/ass-gen/ass/style.d.ts +0 -0
  110. /package/dist/{src → browser/src}/ass-gen/config.d.ts +0 -0
  111. /package/dist/{src → browser/src}/ass-gen/index.d.ts +0 -0
  112. /package/dist/{src → browser/src}/ass-gen/types.d.ts +0 -0
  113. /package/dist/{src → browser/src}/ass-gen/util/color.d.ts +0 -0
  114. /package/dist/{src → browser/src}/ass-gen/util/danconvert.d.ts +0 -0
  115. /package/dist/{src → browser/src}/ass-gen/util/index.d.ts +0 -0
  116. /package/dist/{src → browser/src}/ass-gen/util/lang.d.ts +0 -0
  117. /package/dist/{src → browser/src}/ass-gen/util/layout.d.ts +0 -0
  118. /package/dist/{src → browser/src}/index.test.d.ts +0 -0
  119. /package/dist/{src/utils/dm-gen.test.d.ts → browser/src/plugins/bili-dedupe/index.test.d.ts} +0 -0
  120. /package/dist/{src → browser/src}/proto/gen/bili/dm_pb.d.ts +0 -0
  121. /package/dist/{src → browser/src}/proto/gen/danuni_pb.d.ts +0 -0
  122. /package/dist/{src → browser/src}/utils/dm-gen.d.ts +0 -0
  123. /package/dist/{src → browser/src}/utils/id-gen.d.ts +0 -0
  124. /package/dist/{src → browser/src}/utils/platform.d.ts +0 -0
  125. /package/dist/{rslib-runtime.js → node/rslib-runtime.js} +0 -0
  126. /package/dist/{index.umd.min.js.LICENSE.txt → umd/index.umd.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1,172 @@
1
+ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
2
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
3
+ import type { Message } from "@bufbuild/protobuf";
4
+ /**
5
+ * Describes the file danuni.proto.
6
+ */
7
+ export declare const file_danuni: GenFile;
8
+ /**
9
+ * @generated from message danuni.danmaku.v1.listDanReq
10
+ */
11
+ export type listDanReq = Message<"danuni.danmaku.v1.listDanReq"> & {
12
+ /**
13
+ * @generated from field: string ID = 1;
14
+ */
15
+ ID: string;
16
+ /**
17
+ * @generated from field: optional int32 seg = 2;
18
+ */
19
+ seg?: number;
20
+ };
21
+ /**
22
+ * Describes the message danuni.danmaku.v1.listDanReq.
23
+ * Use `create(listDanReqSchema)` to create a new message.
24
+ */
25
+ export declare const listDanReqSchema: GenMessage<listDanReq>;
26
+ /**
27
+ * @generated from message danuni.danmaku.v1.Danmaku
28
+ */
29
+ export type Danmaku = Message<"danuni.danmaku.v1.Danmaku"> & {
30
+ /**
31
+ * @generated from field: string SOID = 1;
32
+ */
33
+ SOID: string;
34
+ /**
35
+ * @generated from field: string DMID = 2;
36
+ */
37
+ DMID: string;
38
+ /**
39
+ * @generated from field: int32 progress = 3;
40
+ */
41
+ progress: number;
42
+ /**
43
+ * @generated from field: danuni.danmaku.v1.Mode mode = 4;
44
+ */
45
+ mode: Mode;
46
+ /**
47
+ * @generated from field: int32 fontsize = 5;
48
+ */
49
+ fontsize: number;
50
+ /**
51
+ * @generated from field: int32 color = 6;
52
+ */
53
+ color: number;
54
+ /**
55
+ * @generated from field: string senderID = 7;
56
+ */
57
+ senderID: string;
58
+ /**
59
+ * @generated from field: string content = 8;
60
+ */
61
+ content: string;
62
+ /**
63
+ * @generated from field: google.protobuf.Timestamp ctime = 9;
64
+ */
65
+ ctime?: Timestamp;
66
+ /**
67
+ * @generated from field: int32 weight = 10;
68
+ */
69
+ weight: number;
70
+ /**
71
+ * @generated from field: danuni.danmaku.v1.Pool pool = 11;
72
+ */
73
+ pool: Pool;
74
+ /**
75
+ * @generated from field: repeated string attr = 12;
76
+ */
77
+ attr: string[];
78
+ /**
79
+ * @generated from field: optional string platform = 13;
80
+ */
81
+ platform?: string;
82
+ /**
83
+ * @generated from field: optional string extra = 14;
84
+ */
85
+ extra?: string;
86
+ };
87
+ /**
88
+ * Describes the message danuni.danmaku.v1.Danmaku.
89
+ * Use `create(DanmakuSchema)` to create a new message.
90
+ */
91
+ export declare const DanmakuSchema: GenMessage<Danmaku>;
92
+ /**
93
+ * @generated from message danuni.danmaku.v1.DanmakuReply
94
+ */
95
+ export type DanmakuReply = Message<"danuni.danmaku.v1.DanmakuReply"> & {
96
+ /**
97
+ * @generated from field: repeated danuni.danmaku.v1.Danmaku danmakus = 1;
98
+ */
99
+ danmakus: Danmaku[];
100
+ };
101
+ /**
102
+ * Describes the message danuni.danmaku.v1.DanmakuReply.
103
+ * Use `create(DanmakuReplySchema)` to create a new message.
104
+ */
105
+ export declare const DanmakuReplySchema: GenMessage<DanmakuReply>;
106
+ /**
107
+ * @generated from enum danuni.danmaku.v1.Mode
108
+ */
109
+ export declare enum Mode {
110
+ /**
111
+ * @generated from enum value: Normal = 0;
112
+ */
113
+ Normal = 0,
114
+ /**
115
+ * @generated from enum value: Bottom = 1;
116
+ */
117
+ Bottom = 1,
118
+ /**
119
+ * @generated from enum value: Top = 2;
120
+ */
121
+ Top = 2,
122
+ /**
123
+ * @generated from enum value: Reverse = 3;
124
+ */
125
+ Reverse = 3,
126
+ /**
127
+ * @generated from enum value: Ext = 4;
128
+ */
129
+ Ext = 4
130
+ }
131
+ /**
132
+ * Describes the enum danuni.danmaku.v1.Mode.
133
+ */
134
+ export declare const ModeSchema: GenEnum<Mode>;
135
+ /**
136
+ * @generated from enum danuni.danmaku.v1.Pool
137
+ */
138
+ export declare enum Pool {
139
+ /**
140
+ * @generated from enum value: Def = 0;
141
+ */
142
+ Def = 0,
143
+ /**
144
+ * @generated from enum value: Sub = 1;
145
+ */
146
+ Sub = 1,
147
+ /**
148
+ * @generated from enum value: Adv = 2;
149
+ */
150
+ Adv = 2,
151
+ /**
152
+ * @generated from enum value: Ix = 3;
153
+ */
154
+ Ix = 3
155
+ }
156
+ /**
157
+ * Describes the enum danuni.danmaku.v1.Pool.
158
+ */
159
+ export declare const PoolSchema: GenEnum<Pool>;
160
+ /**
161
+ * @generated from service danuni.danmaku.v1.DanmakuService
162
+ */
163
+ export declare const DanmakuService: GenService<{
164
+ /**
165
+ * @generated from rpc danuni.danmaku.v1.DanmakuService.listDan
166
+ */
167
+ listDan: {
168
+ methodKind: "unary";
169
+ input: typeof listDanReqSchema;
170
+ output: typeof DanmakuReplySchema;
171
+ };
172
+ }>;
@@ -0,0 +1,309 @@
1
+ import type { DM_JSON_BiliCommandGrpc } from '..';
2
+ import type { PlatformDanmakuSource } from './platform';
3
+ import { DMIDGenerator } from './id-gen';
4
+ import { PlatformDanmakuOnlySource } from './platform';
5
+ export declare enum DMAttr {
6
+ Protect = "Protect",
7
+ FromLive = "FromLive",
8
+ HighLike = "HighLike",
9
+ Compatible = "Compatible",// 由dan-any进行过兼容处理的弹幕,可能丢失部分信息
10
+ Reported = "Reported",// 在DanUni上被多人举报过的弹幕
11
+ Unchecked = "Unchecked",// 在DanUni上未被审核过的弹幕
12
+ HasEvent = "HasEvent",// 该弹幕当前在DanUni上存在事件(如点赞/举报等)
13
+ Hide = "Hide"
14
+ }
15
+ interface DMBili {
16
+ id: bigint;
17
+ progress: number;
18
+ mode: number;
19
+ fontsize: number;
20
+ color: number;
21
+ mid?: bigint;
22
+ midHash: string;
23
+ /**
24
+ * 特殊类型解析:
25
+ * - [ohh] : /oh{2,}/gi
26
+ * - [前方高能]
27
+ * - [...] (JS数组) : 高级弹幕
28
+ */
29
+ content: string;
30
+ ctime: bigint;
31
+ pool: number;
32
+ weight?: number;
33
+ action?: string;
34
+ idStr?: string;
35
+ attr?: number;
36
+ animation?: string;
37
+ extra?: string;
38
+ colorful?: number;
39
+ type?: number;
40
+ oid?: bigint;
41
+ }
42
+ interface DMBiliCommand extends DM_JSON_BiliCommandGrpc {
43
+ }
44
+ interface DMDplayer {
45
+ /**
46
+ * 进度(秒)
47
+ */
48
+ progress: number;
49
+ mode: number;
50
+ color: number;
51
+ midHash: string;
52
+ content: string;
53
+ }
54
+ interface DMArtplayer {
55
+ /**
56
+ * 进度(秒)
57
+ */
58
+ progress: number;
59
+ mode: number;
60
+ color: number;
61
+ content: string;
62
+ border?: boolean;
63
+ style?: object;
64
+ }
65
+ interface DMDDplay {
66
+ cid: bigint;
67
+ /**
68
+ * content
69
+ */
70
+ m: string;
71
+ /**
72
+ * p[0]
73
+ */
74
+ progress: number;
75
+ /**
76
+ * p[1]
77
+ */
78
+ mode: number;
79
+ /**
80
+ * p[2]
81
+ */
82
+ color: number;
83
+ /**
84
+ * p[3]
85
+ */
86
+ uid: string;
87
+ }
88
+ export interface Extra {
89
+ artplayer?: ExtraArtplayer;
90
+ bili?: ExtraBili;
91
+ danuni?: ExtraDanUni;
92
+ }
93
+ interface ExtraArtplayer {
94
+ style?: object;
95
+ border?: boolean;
96
+ }
97
+ interface ExtraBili {
98
+ mode?: number;
99
+ pool?: number;
100
+ dmid?: bigint;
101
+ attr?: number;
102
+ mid?: bigint;
103
+ adv?: string;
104
+ code?: string;
105
+ bas?: string;
106
+ command?: DMBiliCommand;
107
+ }
108
+ export interface ExtraDanUni {
109
+ chapter?: ExtraDanUniChapter;
110
+ merge?: ExtraDanUniMerge;
111
+ }
112
+ export interface ExtraDanUniChapter {
113
+ duration: number;
114
+ type: ExtraDanUniChapterType;
115
+ }
116
+ export interface ExtraDanUniMerge {
117
+ duration: number;
118
+ count: number;
119
+ senders: string[];
120
+ taolu_count: number;
121
+ taolu_senders: string[];
122
+ }
123
+ export declare enum ExtraDanUniChapterType {
124
+ Chapter = "ch",//其它片段(用于标记章节)
125
+ Review = "rev",//回顾
126
+ OP = "op",//片头
127
+ Intermission = "int",//中场
128
+ ED = "ed",//片尾
129
+ Preview = "prvw",//预告
130
+ Cut = "cut",//删减(删减版中提供删减说明,提供开始位置、长度)
131
+ Duplicate = "dup",//补档(完整版中指明其它平台中删减位置)
132
+ AdBiz = "biz",//商业广告
133
+ AdUnpaid = "promo"
134
+ }
135
+ export declare enum ExtraDanUniChapterAction {
136
+ Disabled = -1,
137
+ ShowOverlay = 0,
138
+ ManualSkip = 1,
139
+ AutoSkip = 2
140
+ }
141
+ export declare enum Modes {
142
+ Normal = 0,
143
+ Bottom = 1,
144
+ Top = 2,
145
+ Reverse = 3,//逆向弹幕
146
+ Ext = 4
147
+ }
148
+ export declare enum Pools {
149
+ Def = 0,//默认池
150
+ Sub = 1,//重要池,建议强制加载,含字幕、科普、空降等
151
+ Adv = 2,//高级弹幕专用池,均需读取extra
152
+ Ix = 3
153
+ }
154
+ export type ctime = string | number | bigint | Date;
155
+ export interface UniDMObj {
156
+ SOID: string;
157
+ progress: number;
158
+ mode: Modes;
159
+ fontsize: number;
160
+ color: number;
161
+ senderID: string;
162
+ content: string;
163
+ ctime: Date;
164
+ weight: number;
165
+ pool: Pools;
166
+ attr: DMAttr[];
167
+ platform: PlatformDanmakuSource | string;
168
+ extra: string | Extra;
169
+ extraStr: string;
170
+ DMID: string;
171
+ }
172
+ interface Options {
173
+ dmid?: boolean | number | DMIDGenerator;
174
+ }
175
+ export declare class UniDM {
176
+ /**
177
+ * 资源ID
178
+ * @description 由某一danuni服务确定的某一剧集下不同资源(不同视频站/字幕组具有细节差异)的ID
179
+ */
180
+ SOID: string;
181
+ /**
182
+ * 弹幕出现位置(单位s;精度为ms,即保留三位小数)
183
+ */
184
+ progress: number;
185
+ /**
186
+ * 弹幕类型
187
+ */
188
+ mode: Modes;
189
+ /**
190
+ * 字号
191
+ * @default 25
192
+ * - 12
193
+ * - 16
194
+ * - 18:小
195
+ * - 25:标准
196
+ * - 36:大
197
+ * - 45
198
+ * - 64
199
+ */
200
+ fontsize: number;
201
+ /**
202
+ * 颜色
203
+ * @description 为DEC值(十进制RGB888值),默认白色
204
+ * @default 16777215
205
+ */
206
+ color: number;
207
+ /**
208
+ * 发送者 senderID
209
+ */
210
+ senderID: string;
211
+ /**
212
+ * 正文
213
+ */
214
+ content: string;
215
+ /**
216
+ * 发送时间
217
+ */
218
+ ctime: Date;
219
+ /**
220
+ * 权重 用于屏蔽等级 区间:[0,11]
221
+ * @description 参考B站,源弹幕有该参数则直接利用,
222
+ * 本实现默认取5,再经过ruleset匹配加减分数
223
+ * @description 为0时表示暂时未计算权重
224
+ */
225
+ weight: number;
226
+ /**
227
+ * 弹幕池 0:普通池 1:字幕池 2:特殊池(代码/BAS弹幕) 3:互动池(互动弹幕中选择投票快速发送的弹幕)
228
+ */
229
+ pool: Pools;
230
+ /**
231
+ * 弹幕属性位(bin求AND)
232
+ * bit0:保护 bit1:直播 bit2:高赞
233
+ */
234
+ attr: DMAttr[];
235
+ /**
236
+ * 初始来源平台
237
+ * `danuni`与任意空值(可隐式转换为false的值)等价
238
+ */
239
+ platform?: PlatformDanmakuSource | string;
240
+ /**
241
+ * 弹幕原始数据(不推荐使用)
242
+ * @description 适用于无法解析的B站代码弹幕、Artplayer弹幕样式等
243
+ * @description 初步约定:
244
+ * - Artplayer: style不为空时,将其JSON.stringify()存入
245
+ */
246
+ extraStr?: string;
247
+ DMID?: string;
248
+ private options;
249
+ init(options?: Options): this;
250
+ validate(): Promise<void>;
251
+ static create(pjson?: Partial<UniDMObj>, options?: Options): UniDM;
252
+ get extra(): Extra;
253
+ get isFrom3rdPlatform(): boolean;
254
+ /**
255
+ * 弹幕id
256
+ * @description sha3-256(content+senderID+ctime)截取前8位
257
+ * @description 同一SOID下唯一
258
+ */
259
+ toDMID(): string | undefined;
260
+ isSameAs(dan: UniDM, options?: {
261
+ skipDanuniMerge?: boolean;
262
+ }): boolean;
263
+ minify(): Partial<UniDMObj> & Pick<UniDMObj, "SOID">;
264
+ downgradeAdvcancedDan({ include, exclude, cleanExtra, }?: {
265
+ include?: (keyof Extra)[];
266
+ exclude?: (keyof Extra)[];
267
+ cleanExtra?: boolean;
268
+ }): UniDM;
269
+ /**
270
+ * 将各种类型的时间进行格式化
271
+ * @param oriCtime
272
+ * @param tsUnit 当`oriCtime`为数字类型表时间戳时的单位;
273
+ * 为 毫秒(ms)/秒(s)
274
+ * @returns {Date} Date格式时间
275
+ */
276
+ static transCtime(oriCtime: ctime, tsUnit?: 'ms' | 's'): Date;
277
+ static transMode(oriMode: number, fmt: 'bili' | 'dplayer' | 'artplayer' | 'ddplay'): Modes;
278
+ static parseBiliSingle(p: string, c: string): {
279
+ content: string;
280
+ progress: number;
281
+ mode: number;
282
+ fontsize: number;
283
+ color: number;
284
+ ctime: bigint;
285
+ pool: number;
286
+ midHash: string;
287
+ id: bigint;
288
+ weight: number;
289
+ };
290
+ static fromBili(args: DMBili, cid?: bigint, options?: Options, recSOID?: string): UniDM;
291
+ toBiliXML(options?: {
292
+ skipBiliCommand?: boolean;
293
+ /**
294
+ * 见 ../index.ts UniPool.toBiliXML() 的 options,该option不宜手动调用,判断逻辑未封装
295
+ */
296
+ avoidSenderIDWithAt?: boolean;
297
+ }): {
298
+ '#text': string;
299
+ '@_p': string;
300
+ } | null;
301
+ static fromBiliCommand(args: DMBiliCommand, cid?: bigint, options?: Options): UniDM;
302
+ static fromDplayer(args: DMDplayer, playerID: string, domain: string, options?: Options): UniDM;
303
+ toDplayer(): DMDplayer;
304
+ static fromArtplayer(args: DMArtplayer, playerID: string, domain: string, options?: Options): UniDM;
305
+ toArtplayer(): DMArtplayer;
306
+ static fromDDplay(args: DMDDplay, episodeId: string, domain?: PlatformDanmakuOnlySource, options?: Options): UniDM;
307
+ toDDplay(): DMDDplay;
308
+ }
309
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ import type { PlatformSource } from './platform';
2
+ import { UniDM } from './dm-gen';
3
+ export declare class UniID {
4
+ /**
5
+ * @description 每个domain下应为唯一值
6
+ * @example danuni: 推荐为UUID/ULID/NanoID
7
+ * bili: midHash hash算法为CRC32
8
+ */
9
+ id: string;
10
+ /**
11
+ * @description 弹幕首次出现的平台域名(注意可以为如localhost等根域名)
12
+ * ### 预设
13
+ * - `{any}.danuni` (若使用IP或无域名,请使用该domain,防止隐私泄露/无法解析)
14
+ * #### 注意
15
+ * - `any`值建议为UUID/ULID/NanoID以防同步错误
16
+ * ### 非DanUni弹幕服务建议使用预设,或自行填写域名
17
+ */
18
+ domain: PlatformSource | string;
19
+ constructor(
20
+ /**
21
+ * @description 每个domain下应为唯一值
22
+ * @example danuni: 推荐为UUID/ULID/NanoID
23
+ * bili: midHash hash算法为CRC32
24
+ */
25
+ id: string,
26
+ /**
27
+ * @description 弹幕首次出现的平台域名(注意可以为如localhost等根域名)
28
+ * ### 预设
29
+ * - `{any}.danuni` (若使用IP或无域名,请使用该domain,防止隐私泄露/无法解析)
30
+ * #### 注意
31
+ * - `any`值建议为UUID/ULID/NanoID以防同步错误
32
+ * ### 非DanUni弹幕服务建议使用预设,或自行填写域名
33
+ */
34
+ domain: PlatformSource | string);
35
+ static fromString(str: string): UniID;
36
+ toString(): string;
37
+ static fromNull(domain?: PlatformSource | 'runtime' | string): UniID;
38
+ static fromBili({ cid, mid, midHash, }: {
39
+ cid?: number | bigint | string;
40
+ mid?: number | bigint;
41
+ midHash?: string;
42
+ }): UniID;
43
+ static fromUnknown(id: string,
44
+ /**
45
+ * 可使用预设
46
+ */
47
+ domain: PlatformSource | string): UniID;
48
+ }
49
+ export type DMIDGenerator = (dan: UniDM, slice?: number) => string;
50
+ export declare function createDMID(dan: UniDM, slice?: number): string;
@@ -0,0 +1,24 @@
1
+ export declare enum PlatformInfoSource {
2
+ Bangumi = "bgm",
3
+ TMDB = "tmdb"
4
+ }
5
+ export declare const PlatformInfoSources: PlatformInfoSource[];
6
+ export declare enum PlatformVideoSource {
7
+ Acfun = "acfun",
8
+ Baha = "baha",
9
+ Bilibili = "bili",
10
+ BilibiliGlobal = "bglobal",
11
+ Iqiyi = "iqiyi",
12
+ Tencent = "tencent",
13
+ Youku = "youku"
14
+ }
15
+ export declare const PlatformVideoSources: PlatformVideoSource[];
16
+ export declare enum PlatformDanmakuOnlySource {
17
+ DanDanPlay = "ddplay",
18
+ TuCao = "tucao"
19
+ }
20
+ export declare const PlatformDanmakuOnlySources: PlatformDanmakuOnlySource[];
21
+ export type PlatformDanmakuSource = PlatformVideoSource | PlatformDanmakuOnlySource;
22
+ export declare const PlatformDanmakuSources: (PlatformVideoSource | PlatformDanmakuOnlySource)[];
23
+ export type PlatformSource = PlatformInfoSource | PlatformDanmakuSource;
24
+ export declare const PlatformSources: (PlatformInfoSource | PlatformVideoSource | PlatformDanmakuOnlySource)[];