Skip to content

Commit d45874d

Browse files
committed
update: 调整转义字符替换顺序
1 parent 842997d commit d45874d

File tree

2 files changed

+135
-2
lines changed

2 files changed

+135
-2
lines changed

src/stt.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ const util = require('./util')
22

33
class STT {
44
escape(v) {
5-
return util.isUndefined(v) ? '' : v.toString().replace(/\//g, '@S').replace(/@/g, '@A')
5+
return util.isUndefined(v) ? '' : v.toString().replace(/@/g, '@A').replace(/\//g, '@S')
66
}
77

88
unescape(v) {
9-
return util.isUndefined(v) ? '' : v.toString().replace(/@S/g, '/').replace(/@A/g, '@')
9+
return util.isUndefined(v) ? '' : v.toString().replace(/@A/g, '@').replace(/@S/g, '/')
1010
}
1111

1212
serialize(raw) {

test/stt.test.js

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
const assert = require('assert')
2+
const danmaku = require('../src/index')
3+
const stt = danmaku.stt
4+
5+
describe('stt.js 斗鱼序列化反序列化', function () {
6+
const test = {
7+
configscreenObj: {
8+
gbtemp: '192',
9+
nrt: '0',
10+
now: '1593273574796',
11+
btype: 'qzs202006',
12+
vsrc: 'https://rpic.douyucdn.cn/asrpic/200627/3374504_2350.png/dy1',
13+
otherContent: '狂欢火箭x2、狂欢卡x1、狂欢趴x3',
14+
avatar: 'https://apic.douyucdn.cn/upload/avatar_v3/202005/a5df465fd49b4826b853ad212556dafb_big.jpg',
15+
type: 'configscreen',
16+
rid: '3374504',
17+
userName: '',
18+
anchorName: '三岁伊丶'
19+
},
20+
configscreenStr: 'gbtemp@=192/nrt@=0/now@=1593273574796/btype@=qzs202006/vsrc@=https:@[email protected]@Sasrpic@S200627@S3374504_2350.png@Sdy1/otherContent@=狂欢火箭x2、狂欢卡x1、狂欢趴x3/avatar@=https:@[email protected]@Supload@Savatar_v3@S202005@Sa5df465fd49b4826b853ad212556dafb_big.jpg/type@=configscreen/rid@=3374504/userName@=/anchorName@=三岁伊丶/',
21+
nlkstatusObj: {},
22+
nlkstatusStr: 'idb@=nn@A=解说拒绝R@Sresult@A=3@Ssc@A=100@Snrt@A=0@Stopnn@A=烨烨夜月@Swinnum@A=0@Stopuid@A=29969620@Stopavt@A=https:@[email protected]@ASupload@ASavatar_v3@AS202006@ASe39c178fe523404e8d903308195996c7_big.jpg@Svsrc@A=https:@[email protected]@ASasrpic@AS200628@AS102965_0045.png@ASdy1@Srid@A=102965@Savt@A=https:@[email protected]@ASupload@ASavatar_v3@AS202001@ASc9755268a9fe4283b552513a37f376c4_big.jpg@Stop1sc@A=100@S/rida@=nn@A=糖小九吖@Sresult@A=1@Ssc@A=200@Snrt@A=0@Stopnn@A=恭喜我中奖发财@Swinnum@A=2@Stopuid@A=275508679@Stopavt@A=https:@[email protected]@ASupload@ASavatar@ASdefault@AS12_big.jpg@Svsrc@A=https:@[email protected]@ASasrpic@AS200628@AS6585782_0045.png@ASdy1@Srid@A=6585782@Savt@A=https:@[email protected]@ASupload@ASavatar_v3@AS201909@AS295e0d5b1f0d4adcaf59a5ce89bed5bb_big.jpg@Stop1sc@A=200@S/pkId@=696079/is_exc@=0/show_mvp@=1/time@=1593276404/type@=nlkstatus/ts@=1593276405792/status@=3/',
23+
chatMsgObj: {
24+
type: 'chatmsg',
25+
rid: '605964',
26+
ct: '1',
27+
uid: '355384536',
28+
nn: '用户16301824',
29+
txt: '加油',
30+
cid: 'fcb83b44585a4ee00adc320100000000',
31+
ic: 'avatar/default/01',
32+
level: '2',
33+
sahf: '0',
34+
cst: '1593273451933',
35+
bnn: '',
36+
bl: '0',
37+
brid: '0',
38+
hc: '',
39+
mgt: '6',
40+
mid: '50010',
41+
mtn: '白 鲨',
42+
ml: '3',
43+
gl: '11',
44+
ms: '0',
45+
el: '',
46+
lk: '',
47+
hb: '140/',
48+
urlev: '1',
49+
dms: '6',
50+
pdg: '68',
51+
pdk: '8'
52+
},
53+
chatmsgStr: 'type@=chatmsg/rid@=605964/ct@=1/uid@=355384536/nn@=用户16301824/txt@=加油/cid@=fcb83b44585a4ee00adc320100000000/ic@=avatar@Sdefault@S01/level@=2/sahf@=0/cst@=1593273451933/bnn@=/bl@=0/brid@=0/hc@=/mgt@=6/mid@=50010/mtn@=白 鲨/ml@=3/gl@=11/ms@=0/el@=/lk@=/hb@=140@S/urlev@=1/dms@=6/pdg@=68/pdk@=8/',
54+
nobleNumInfoObj: {
55+
type: 'noble_num_info',
56+
sum: '26',
57+
vn: '557',
58+
rid: '102965',
59+
list: [{
60+
lev: '4',
61+
num: '1'
62+
}, {
63+
lev: '1',
64+
num: '2'
65+
}, {
66+
lev: '7',
67+
num: '23'
68+
}]
69+
},
70+
nobleNumInfoStr: 'type@=noble_num_info/sum@=26/vn@=557/rid@=102965/list@=lev@AA=4@ASnum@AA=1@AS@Slev@AA=1@ASnum@AA=2@AS@Slev@AA=7@ASnum@AA=23@AS@S/',
71+
dgbObj: {
72+
type: 'dgb',
73+
rid: '102965',
74+
gfid: '824',
75+
gs: '0',
76+
uid: '63912680',
77+
nn: '昂一文',
78+
ic: 'avatar_v3/202001/01dd1da4833f4a398f96231dda2deb5a',
79+
eid: '0',
80+
eic: '20052',
81+
level: '16',
82+
dw: '0',
83+
gfcnt: '1',
84+
hits: '2',
85+
bcnt: '2',
86+
bst: '2',
87+
nl: '7',
88+
ct: '2',
89+
el: '',
90+
cm: '0',
91+
bnn: '拒绝R',
92+
bl: '9',
93+
brid: '102965',
94+
hc: 'd48b0bb9c375e34fb20074a424b9f0ef',
95+
sahf: '0',
96+
fc: '0',
97+
gpf: '1',
98+
pid: '268',
99+
bnid: '1',
100+
bnl: '1',
101+
receive_uid: '3195592',
102+
receive_nn: '解说拒绝R',
103+
from: '2'
104+
},
105+
dgbStr: 'type@=dgb/rid@=102965/gfid@=824/gs@=0/uid@=63912680/nn@=昂一文/ic@=avatar_v3@S202001@S01dd1da4833f4a398f96231dda2deb5a/eid@=0/eic@=20052/level@=16/dw@=0/gfcnt@=1/hits@=2/bcnt@=2/bst@=2/nl@=7/ct@=2/el@=/cm@=0/bnn@=拒绝R/bl@=9/brid@=102965/hc@=d48b0bb9c375e34fb20074a424b9f0ef/sahf@=0/fc@=0/gpf@=1/pid@=268/bnid@=1/bnl@=1/receive_uid@=3195592/receive_nn@=解说拒绝R/from@=2/',
106+
uenterObj: {
107+
type: 'uenter',
108+
rid: '102965',
109+
uid: '208936492',
110+
nn: '水边一鸣',
111+
level: '33',
112+
rg: '4',
113+
ic: 'avatar_v3/201812/8e95f0bfa54e4feda0716c3593816131',
114+
nl: '7',
115+
rni: '0',
116+
el: '',
117+
sahf: '0',
118+
wgei: '0',
119+
fl: '19'
120+
},
121+
uenterStr: 'type@=uenter/rid@=102965/uid@=208936492/nn@=水边一鸣/level@=33/rg@=4/ic@=avatar_v3@S201812@S8e95f0bfa54e4feda0716c3593816131/nl@=7/rni@=0/el@=/sahf@=0/wgei@=0/fl@=19/',
122+
}
123+
124+
it('序列化', function () {
125+
console.log('[stt.serialize]', stt.serialize(test.uenterObj))
126+
assert.equal(stt.serialize(test.uenterObj), test.uenterStr)
127+
})
128+
129+
it('反序列化', function () {
130+
console.log('[stt.deserialize]', stt.deserialize(test.uenterStr))
131+
assert.deepEqual(stt.deserialize(test.uenterStr), test.uenterObj)
132+
})
133+
})

0 commit comments

Comments
 (0)