Skip to content

Commit bed0713

Browse files
committed
modify: 重构大部分代码逻辑
1 parent 7d96864 commit bed0713

File tree

19 files changed

+426
-656
lines changed

19 files changed

+426
-656
lines changed

README.md

Lines changed: 52 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -124,86 +124,65 @@ room.run()
124124

125125
- - -
126126

127-
| 消息事件 | 描述 |
128-
|:--------------:|:-------------------:|
129-
| loginres | 登入 |
130-
| chatmsg | 弹幕消息 |
131-
| uenter | 进入房间 |
132-
| upgrade | 用户等级提升 |
133-
| rss | 房间开播提醒 |
134-
| bc_buy_deserve | 赠送酬勤通知 |
135-
| ssd | 超级弹幕 |
136-
| spbc | 房间内礼物广播 |
137-
| dgb | 赠送礼物 |
138-
| onlinegift | 领取在线鱼丸 |
139-
| ggbb | 房间用户抢红包 |
140-
| rankup | 房间内top10变化消息 |
141-
| ranklist | 广播排行榜消息 |
142-
| mrkl | 心跳 |
143-
| erquizisn | 鱼丸预言 |
144-
| blab | 粉丝等级升级 |
145-
| rri | 未知的消息事件 |
146-
| synexp | 未知的消息事件 |
147-
| noble_num_info | 未知的消息事件 |
148-
| gbroadcast | 未知的消息事件 |
149-
| qausrespond | 未知的消息事件 |
150-
| wiru | 未知的消息事件 |
151-
| wirt | 未知的消息事件 |
152-
| mcspeacsite | 未知的消息事件 |
153-
| rank_change | 未知的消息事件 |
154-
| srres | 未知的消息事件 |
155-
| anbc | 未知的消息事件 |
156-
| frank | 未知的消息事件 |
127+
| 消息事件 | 描述 |
128+
|:---------------------:|:----------------------:|
129+
| loginres | 登入 |
130+
| pingreq | 跟随 **loginres** 一起 |
131+
| chatmsg | 弹幕消息 |
132+
| uenter | 进入房间 |
133+
| upgrade | 用户等级提升 |
134+
| rss | 房间开播提醒 |
135+
| bc_buy_deserve | 赠送酬勤通知 |
136+
| ssd | 超级弹幕 |
137+
| spbc | 房间内礼物广播 |
138+
| dgb | 赠送礼物 |
139+
| onlinegift | 领取在线鱼丸 |
140+
| ggbb | 房间用户抢红包 |
141+
| rankup | 房间内top10变化消息 |
142+
| ranklist | 广播排行榜消息 |
143+
| mrkl | 心跳 |
144+
| erquizisn | 鱼丸预言 |
145+
| blab | 粉丝等级升级 |
146+
| rri | 未知的消息事件 |
147+
| synexp | 未知的消息事件 |
148+
| noble_num_info | 未知的消息事件 |
149+
| gbroadcast | 未知的消息事件 |
150+
| qausrespond | 未知的消息事件 |
151+
| wiru | 未知的消息事件 |
152+
| wirt | 未知的消息事件 |
153+
| mcspeacsite | 未知的消息事件 |
154+
| rank_change | 未知的消息事件 |
155+
| srres | 未知的消息事件 |
156+
| anbc | 未知的消息事件 |
157+
| frank | 未知的消息事件 |
158+
| rnewbc | 未知的消息事件 |
159+
| nlkstatus | 未知的消息事件 |
160+
| pandoraboxinfo | 未知的消息事件 |
161+
| ro_game_succ | 未知的消息事件 |
162+
| lucky_wheel_star_pool | 未知的消息事件 |
163+
| tsgs | 未知的消息事件 |
164+
| fswrank | 未知的消息事件 |
165+
| tsboxb | 未知的消息事件 |
166+
| cthn | 未知的消息事件 |
167+
| configscreen | 估计是全屏广播显示礼物 |
168+
| rnewbc | 未知的消息事件 |
169+
157170

158171
## 斗鱼STT序列化反序列化库
159172

160173
STT序列化规定如下:
161174

162-
1. 键key和值value直接采用`@=`分割
163-
2. 数组采用`/`分割
164-
3. 如果key或者value中含有字符`/`, 则使用`@S`转义
165-
4. 如果key或者value中含有字符`@`, 则使用`@A`转义
175+
> 1. 键key和值value直接采用`@=`分割
176+
> 2. 数组采用`/`分割
177+
> 3. 如果key或者value中含有字符`/`, 则使用`@S`转义
178+
> 4. 如果key或者value中含有字符`@`, 则使用`@A`转义
166179
167-
```javascript
168-
//引入类库
169-
const stt = require('douyudm').stt
170-
171-
//序列化测试数据
172-
const obj = {
173-
type: 'chatmsg',
174-
nn: '河马( ̄。。 ̄)',
175-
ic: 'avatar_v3/201912/b99d77251eb643b5a88bb81863afea4e',
176-
cst: '1592152272402',
177-
brid: '0',
178-
lk: '',
179-
list: [{
180-
lev: '1',
181-
num: '2'
182-
}, {
183-
lev: '7',
184-
num: '3'
185-
}]
186-
}
180+
### 序列化测试
187181

188-
//反序列化测试数据
189-
const str = 'type@=chatmsg/nn@=河马( ̄。。 ̄)/ic@=avatar_v3@S201912@Sb99d77251eb643b5a88bb81863afea4e/cst@=1592152272402/brid@=0/lk@=/list@=lev@AA=1@ASnum@AA=2@AS@Slev@AA=7@ASnum@AA=3@AS@S/'
190-
191-
// 1.序列化
192-
console.log(stt.serialize(obj))
193-
// 输出: type@=chatmsg/nn@=河马( ̄。。 ̄)/ic@=avatar_v3@S201912@Sb99d77251eb643b5a88bb81863afea4e/cst@=1592152272402/brid@=0/lk@=/list@=lev@AA=1@ASnum@AA=2@AS@Slev@AA=7@ASnum@AA=3@AS@S/
194-
195-
// 2.反序列化
196-
console.log(stt.deserialize(str))
197-
// 输出:
198-
// {
199-
// type: 'chatmsg',
200-
// nn: '河马( ̄。。 ̄)',
201-
// ic: 'avatar_v3/201912/b99d77251eb643b5a88bb81863afea4e',
202-
// cst: '1592152272402',
203-
// brid: '0',
204-
// lk: '',
205-
// list: [ { lev: '1', num: '2' }, { lev: '7', num: '3' } ]
206-
// }
182+
```javascript
183+
npm run test:stt
184+
or
185+
yarn test:stt
207186
```
208187

209188
## 后话

example/cli.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
//引入类库
2-
const danmaku = require('../src/index')
2+
const { client } = require('../src/index')
33

44
//设置房间号,初始化
5-
const roomId = 102965
6-
const room = new danmaku(roomId)
5+
const roomId = 102965;
6+
const room = new client(roomId, { debug: true, ignore: ['mrkl'] });
77

88
//系统事件
99
room.on('connect', function () {
10-
console.log('[connect] roomId=%s', this.roomId)
10+
console.log('[connect] roomId=%s', this.roomId);
1111
})
1212
room.on('disconnect', function () {
13-
console.log('[disconnect] roomId=%s', this.roomId)
13+
console.log('[disconnect] roomId=%s', this.roomId);
1414
})
1515
room.on('error', function (err) {
16-
console.log('[error] roomId=%s', this.roomId)
16+
console.log('[error] roomId=%s', this.roomId, err);
1717
})
1818

1919
//消息事件
2020
room.on('chatmsg', function (res) {
21-
console.log('[chatmsg]', `<lv ${res.level}> [${res.nn}] ${res.txt}`)
21+
console.log('[chatmsg]', `<lv ${res.level}> [${res.nn}] ${res.txt}`);
2222
})
2323
room.on('loginres', function (res) {
24-
console.log('[loginres]', '登录成功')
24+
console.log('[loginres]', '登录成功');
2525
})
2626
room.on('uenter', function (res) {
27-
console.log('[uenter]', `${res.nn}进入房间`)
27+
console.log('[uenter]', `${res.nn}进入房间`);
2828
})
2929

3030
//开始监听
31-
room.run()
31+
room.run();

package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"dependencies": {
2525
"commander": "^4.1.0",
2626
"fast-text-encoding": "^1.0.0",
27+
"lowdb": "^1.0.0",
2728
"ws": "^7.2.1"
2829
},
2930
"publishConfig": {
@@ -41,6 +42,9 @@
4142
"mocha": "^8.0.1"
4243
},
4344
"scripts": {
44-
"test": "mocha test/"
45+
"test": "mocha test/",
46+
"test:packet": "mocha test/packet.test.js",
47+
"test:stt": "mocha test/stt.test.js",
48+
"test:logger": "mocha test/logger.test.js"
4549
}
46-
}
50+
}

0 commit comments

Comments
 (0)