package cv
-//from source/player-loader-2.0.11.min.js
const (
WS_OP_HEARTBEAT = 2
WS_OP_HEARTBEAT_REPLY = 3
WS_SEQUENCE_OFFSET = 12
WS_BODY_PROTOCOL_VERSION_NORMAL = 0
WS_BODY_PROTOCOL_VERSION_DEFLATE = 2
+ WS_BODY_PROTOCOL_VERSION_BROTLI = 3
WS_HEADER_DEFAULT_VERSION = 1
WS_HEADER_DEFAULT_OPERATION = 1
WS_HEADER_DEFAULT_SEQUENCE = 1
WS_AUTH_TOKEN_ERROR = -101
)
-//from player-loader-2.0.11.min.js
-/*
- customAuthParam
-*/
const (
- Protover = 2
+ Protover = 3
Platform = "web"
Type = 2
)
"strings"
"time"
+ brotli "github.com/andybalholm/brotli"
c "github.com/qydysky/bili_danmu/CV"
F "github.com/qydysky/bili_danmu/F"
ws_msg "github.com/qydysky/bili_danmu/Reply/ws_msg"
return
}
- if head.BodyV == c.WS_BODY_PROTOCOL_VERSION_DEFLATE {
+ switch head.BodyV {
+ case 1: // 心跳
+ case c.WS_BODY_PROTOCOL_VERSION_NORMAL: // 无加密
+ case c.WS_BODY_PROTOCOL_VERSION_DEFLATE: // DEFLATE
readc, err := zlib.NewReader(bytes.NewReader(b[16:]))
if err != nil {
reply_log.L(`E: `, "解压错误")
return
}
b = buf.Bytes()
+ case c.WS_BODY_PROTOCOL_VERSION_BROTLI: // BROTLI
+ readc := brotli.NewReader(bytes.NewReader(b[16:]))
+
+ buf := bytes.NewBuffer(nil)
+ if _, err := buf.ReadFrom(readc); err != nil {
+ reply_log.L(`E: `, "解压错误")
+ return
+ }
+ b = buf.Bytes()
+ default:
+ reply_log.L(`E: `, "未知的编码方式", head.BodyV)
}
for len(b) != 0 {
)
require (
- github.com/andybalholm/brotli v1.0.4 // indirect
+ github.com/andybalholm/brotli v1.0.5 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dustin/go-humanize v1.0.1
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
+github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
+github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=