@dan-uni/dan-any 0.9.4 → 0.9.6
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 +4 -0
- package/dist/index.js +129 -79
- package/dist/index.min.js +138 -93
- package/dist/index.umd.min.js +373 -232
- package/dist/src/ass-gen/ass/create.d.ts +1 -2
- package/dist/src/ass-gen/ass/dialogue.d.ts +1 -2
- package/dist/src/ass-gen/ass/event.d.ts +1 -2
- package/dist/src/ass-gen/ass/info.d.ts +2 -2
- package/dist/src/ass-gen/ass/style.d.ts +1 -2
- package/dist/src/ass-gen/config.d.ts +1 -2
- package/dist/src/index.d.ts +68 -1
- package/dist/src/utils/dm-gen.d.ts +3 -0
- package/package.json +6 -6
- package/src/ass-gen/__tests__/generate.test.ts +2 -2
- package/src/ass-gen/ass/create.ts +7 -6
- package/src/ass-gen/ass/dialogue.ts +1 -2
- package/src/ass-gen/ass/event.ts +2 -3
- package/src/ass-gen/ass/info.ts +1 -2
- package/src/ass-gen/ass/raw.ts +7 -7
- package/src/ass-gen/ass/style.ts +1 -2
- package/src/ass-gen/config.ts +1 -1
- package/src/ass-gen/index.ts +7 -4
- package/src/ass-gen/util/layout.ts +1 -1
- package/src/index.test.ts +0 -1
- package/src/index.ts +120 -12
- package/src/proto/gen/bili/dm_pb.ts +1 -1
- package/src/proto/gen/danuni_pb.ts +1 -1
- package/src/utils/dm-gen.ts +38 -28
- package/types/tsconfig.tsbuildinfo +1 -1
package/src/utils/dm-gen.ts
CHANGED
|
@@ -160,6 +160,7 @@ interface DMBili {
|
|
|
160
160
|
mode: number // xml 1
|
|
161
161
|
fontsize: number // xml 2
|
|
162
162
|
color: number // xml 3
|
|
163
|
+
mid?: number // 仅创作中心源
|
|
163
164
|
midHash: string // xml 6
|
|
164
165
|
/**
|
|
165
166
|
* 特殊类型解析:
|
|
@@ -239,6 +240,8 @@ interface ExtraBili {
|
|
|
239
240
|
mode?: number //原弹幕类型
|
|
240
241
|
pool?: number //原弹幕池
|
|
241
242
|
dmid?: bigint //原弹幕ID
|
|
243
|
+
attr?: number //原弹幕属性
|
|
244
|
+
mid?: number //发送者mid(仅创作中心源)
|
|
242
245
|
adv?: string
|
|
243
246
|
code?: string
|
|
244
247
|
bas?: string
|
|
@@ -585,35 +588,36 @@ export class UniDM {
|
|
|
585
588
|
type UObj = Partial<UniDMObj> & Pick<UniDMObj, 'SOID'>
|
|
586
589
|
const def: UObj = UniDM.create()
|
|
587
590
|
const dan: UObj = UniDM.create(this)
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
591
|
+
const shouldKeep = (key: keyof UObj, value: UObj[keyof UObj]) => {
|
|
592
|
+
if (key === 'SOID') return true
|
|
593
|
+
if (value === undefined || value === null) return false
|
|
594
|
+
if (value === def[key]) return false
|
|
595
|
+
if (key === 'attr' && Array.isArray(value) && value.length === 0)
|
|
596
|
+
return false
|
|
597
|
+
if (key === 'extraStr' && value === '{}') return false
|
|
598
|
+
return true
|
|
599
|
+
}
|
|
600
|
+
const result: UObj = { SOID: dan.SOID }
|
|
601
|
+
for (const key of Object.keys(dan) as (keyof UObj)[]) {
|
|
602
|
+
const value = dan[key]
|
|
603
|
+
if (shouldKeep(key, value)) {
|
|
604
|
+
if (key === 'SOID') continue
|
|
605
|
+
Reflect.set(result, key, value)
|
|
599
606
|
}
|
|
600
607
|
}
|
|
601
|
-
return
|
|
608
|
+
return result
|
|
602
609
|
}
|
|
603
610
|
@Expose()
|
|
604
|
-
downgradeAdvcancedDan(
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
) {
|
|
615
|
-
if (!this.extra) return this
|
|
616
|
-
else {
|
|
611
|
+
downgradeAdvcancedDan({
|
|
612
|
+
include,
|
|
613
|
+
exclude,
|
|
614
|
+
cleanExtra = false,
|
|
615
|
+
}: {
|
|
616
|
+
include?: (keyof Extra)[]
|
|
617
|
+
exclude?: (keyof Extra)[]
|
|
618
|
+
cleanExtra?: boolean
|
|
619
|
+
} = {}) {
|
|
620
|
+
if (this.extra) {
|
|
617
621
|
if (!include) include = []
|
|
618
622
|
if (!exclude) exclude = []
|
|
619
623
|
const check = (k: keyof Extra) =>
|
|
@@ -649,7 +653,7 @@ export class UniDM {
|
|
|
649
653
|
clone.attr.push(DMAttr.Compatible)
|
|
650
654
|
if (cleanExtra) clone.extraStr = undefined
|
|
651
655
|
return clone
|
|
652
|
-
}
|
|
656
|
+
} else return this
|
|
653
657
|
}
|
|
654
658
|
/**
|
|
655
659
|
* 将各种类型的时间进行格式化
|
|
@@ -753,7 +757,13 @@ export class UniDM {
|
|
|
753
757
|
let mode = Modes.Normal
|
|
754
758
|
const pool = args.pool //暂时不做处理,兼容bili的pool格式
|
|
755
759
|
const extra: TExtra = {
|
|
756
|
-
bili: {
|
|
760
|
+
bili: {
|
|
761
|
+
mode: args.mode,
|
|
762
|
+
pool: args.pool,
|
|
763
|
+
dmid: args.id,
|
|
764
|
+
attr: args.attr,
|
|
765
|
+
mid: args.mid,
|
|
766
|
+
},
|
|
757
767
|
}
|
|
758
768
|
//重复 transMode ,但此处有关于extra的额外处理
|
|
759
769
|
switch (args.mode) {
|
|
@@ -794,7 +804,7 @@ export class UniDM {
|
|
|
794
804
|
senderID: senderID.toString(),
|
|
795
805
|
// content: args.content,
|
|
796
806
|
ctime: this.transCtime(args.ctime, 's'),
|
|
797
|
-
weight: args.weight
|
|
807
|
+
weight: args.weight || (pool === Pools.Ix ? 1 : 0),
|
|
798
808
|
pool,
|
|
799
809
|
attr: DMAttrUtils.fromBin(args.attr, PlatformVideoSource.Bilibili),
|
|
800
810
|
platform: PlatformVideoSource.Bilibili,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"5.9.
|
|
1
|
+
{"version":"5.9.3"}
|