diff options
-rw-r--r-- | bilibili/streaming.go | 4 | ||||
-rw-r--r-- | danmaku/client.go | 8 | ||||
-rw-r--r-- | danmaku/dmmsg/danmu.go | 8 | ||||
-rw-r--r-- | danmaku/dmmsg/util.go | 2 | ||||
-rw-r--r-- | danmaku/dmpkg/auth.go | 6 | ||||
-rw-r--r-- | danmaku/dmpkg/decode.go | 10 | ||||
-rw-r--r-- | danmaku/dmpkg/package.go | 15 | ||||
-rw-r--r-- | danmaku/dmpkg/raw.go | 12 | ||||
-rw-r--r-- | recording/runner.go | 4 |
9 files changed, 37 insertions, 32 deletions
diff --git a/bilibili/streaming.go b/bilibili/streaming.go index 005ffd6..97b8e23 100644 --- a/bilibili/streaming.go +++ b/bilibili/streaming.go @@ -11,7 +11,7 @@ import ( "strings" ) -const kInitReadBytes = 4096 // 4KiB +const InitReadBytes = 4096 // 4KiB // CopyLiveStream read data from a livestream video stream, copy them to a writer. func (b Bilibili) CopyLiveStream( @@ -58,7 +58,7 @@ func (b Bilibili) CopyLiveStream( // read some first bytes to ensure that the live is really started, // so we don't create blank files if the live room is open // but the live hasn't started yet - initBytes := make([]byte, kInitReadBytes) + initBytes := make([]byte, InitReadBytes) _, err = io.ReadFull(resp.Body, initBytes) if err != nil { b.logger.Error("Failed to read stream initial bytes: %v", err) diff --git a/danmaku/client.go b/danmaku/client.go index 3a1298d..b785e23 100644 --- a/danmaku/client.go +++ b/danmaku/client.go @@ -15,8 +15,8 @@ import ( "nhooyr.io/websocket" ) -// Bilibili uses only binary WebSocket messages -const kBilibiliWebSocketMessageType = websocket.MessageBinary +// BilibiliWebSocketMessageType Bilibili uses only binary WebSocket messages +const BilibiliWebSocketMessageType = websocket.MessageBinary type DanmakuClient struct { ws *websocket.Conn @@ -34,7 +34,7 @@ type wsDatagramIO struct { } func (w *wsDatagramIO) Consume(data []byte) error { - return w.ws.Write(w.ctx, kBilibiliWebSocketMessageType, data) + return w.ws.Write(w.ctx, BilibiliWebSocketMessageType, data) } func (w *wsDatagramIO) Get() (data []byte, err error) { @@ -42,7 +42,7 @@ func (w *wsDatagramIO) Get() (data []byte, err error) { if err != nil { return } - if typ != kBilibiliWebSocketMessageType { + if typ != BilibiliWebSocketMessageType { err = fmt.Errorf("invalid message type: expected a binary WebSocket message, however got %v", typ.String()) } return diff --git a/danmaku/dmmsg/danmu.go b/danmaku/dmmsg/danmu.go index 2cc5dfa..f0229d2 100644 --- a/danmaku/dmmsg/danmu.go +++ b/danmaku/dmmsg/danmu.go @@ -23,11 +23,11 @@ func (dm DanMuMessage) String() string { dm.SourceUser.Nickname, dm.SourceUser.UID, dm.Content) } -const kInvalidDanmakuJson = "invalid danmaku JSON document" +const InvalidDanmakuJson = "invalid danmaku JSON document" func ParseDanmakuMessage(body RawDanMuMessage) (dmm DanMuMessage, err error) { if len(body.Info) != 16 { - err = fmt.Errorf("%s: \"info\" length != 16", kInvalidDanmakuJson) + err = fmt.Errorf("%s: \"info\" length != 16", InvalidDanmakuJson) return } @@ -41,14 +41,14 @@ func ParseDanmakuMessage(body RawDanMuMessage) (dmm DanMuMessage, err error) { var ok bool uid, ok := userInfo[0].(float64) if !ok { - err = fmt.Errorf("%s: uid is not a float64: %v", kInvalidDanmakuJson, userInfo[0]) + err = fmt.Errorf("%s: uid is not a float64: %v", InvalidDanmakuJson, userInfo[0]) return } dmm.SourceUser.UID = int64(uid) dmm.SourceUser.Nickname, ok = userInfo[1].(string) if !ok { - err = fmt.Errorf("%s: nickname is not a string: %v", kInvalidDanmakuJson, userInfo[1]) + err = fmt.Errorf("%s: nickname is not a string: %v", InvalidDanmakuJson, userInfo[1]) return } return diff --git a/danmaku/dmmsg/util.go b/danmaku/dmmsg/util.go index 9d41ab9..d38814b 100644 --- a/danmaku/dmmsg/util.go +++ b/danmaku/dmmsg/util.go @@ -9,7 +9,7 @@ func castValue[T any](obj interface{}) (thing T, err error) { casted, ok := (obj).(T) if !ok { err = fmt.Errorf("%s: required value is not of type \"%v\": %v", - kInvalidDanmakuJson, reflect.TypeOf(thing).String(), obj) + InvalidDanmakuJson, reflect.TypeOf(thing).String(), obj) return } thing = casted diff --git a/danmaku/dmpkg/auth.go b/danmaku/dmpkg/auth.go index c39fbd9..5caf868 100644 --- a/danmaku/dmpkg/auth.go +++ b/danmaku/dmpkg/auth.go @@ -23,11 +23,11 @@ type authInfo struct { // NewAuth creates a new authentication exchange. func NewAuth(protocol ProtocolVer, roomId common.RoomId, authKey string) (exc DanmakuExchange) { exc, _ = NewPlainExchange(OpConnect, authInfo{ - UID: kUidGuest, + UID: UidGuest, RoomId: uint64(roomId), ProtoVer: int(protocol), - Platform: kPlatformWeb, - Type: kAuthTypeDefault, + Platform: PlatformWeb, + Type: AuthTypeDefault, Key: authKey, }) return diff --git a/danmaku/dmpkg/decode.go b/danmaku/dmpkg/decode.go index 7d9f796..e352fcc 100644 --- a/danmaku/dmpkg/decode.go +++ b/danmaku/dmpkg/decode.go @@ -7,14 +7,14 @@ import ( ) func DecodeExchange(data []byte) (exc DanmakuExchange, err error) { - if ln := len(data); ln < kHeaderLength { - err = fmt.Errorf("incomplete datagram: length = %v < %v", ln, kHeaderLength) + if ln := len(data); ln < HeaderLength { + err = fmt.Errorf("incomplete datagram: length = %v < %v", ln, HeaderLength) return } // unpack header var exchangeHeader DanmakuExchangeHeader - err = struc.Unpack(bytes.NewReader(data[:kHeaderLength]), &exchangeHeader) + err = struc.Unpack(bytes.NewReader(data[:HeaderLength]), &exchangeHeader) if err != nil { err = fmt.Errorf("cannot unpack exchange header: %w", err) return @@ -22,9 +22,9 @@ func DecodeExchange(data []byte) (exc DanmakuExchange, err error) { headerLength := exchangeHeader.HeaderLength // validate header length, fail fast if not match - if headerLength != kHeaderLength { + if headerLength != HeaderLength { err = fmt.Errorf("invalid header length, "+ - "the protocol implementation might be obsolete: %v != %v", headerLength, kHeaderLength) + "the protocol implementation might be obsolete: %v != %v", headerLength, HeaderLength) return } diff --git a/danmaku/dmpkg/package.go b/danmaku/dmpkg/package.go index 3175a18..51c769a 100644 --- a/danmaku/dmpkg/package.go +++ b/danmaku/dmpkg/package.go @@ -31,8 +31,10 @@ func (e *DanmakuExchange) String() string { e.Length, e.ProtocolVer, e.Operation, e.Body) } -const kHeaderLength = 16 -const kSequenceId = 1 +const ( + HeaderLength = 16 + SequenceId = 1 +) type ProtocolVer uint16 @@ -47,9 +49,12 @@ const ( ProtoBrotli ProtocolVer = 3 ) -const kUidGuest = 0 -const kPlatformWeb = "web" -const kAuthTypeDefault = 2 // magic number, not sure what does it mean +const ( + UidGuest = 0 + PlatformWeb = "web" + // AuthTypeDefault magic number, not sure what does it mean + AuthTypeDefault = 2 +) func (e *DanmakuExchange) Marshal() (data []byte, err error) { var buffer bytes.Buffer diff --git a/danmaku/dmpkg/raw.go b/danmaku/dmpkg/raw.go index 17b538a..34cd2e6 100644 --- a/danmaku/dmpkg/raw.go +++ b/danmaku/dmpkg/raw.go @@ -6,7 +6,7 @@ import ( "math" ) -const kMaxBodyLength = math.MaxUint32 - uint64(kHeaderLength) +const MaxBodyLength = math.MaxUint32 - uint64(HeaderLength) // NewPlainExchange creates a new exchange with raw body specified. // body: a struct or a raw string @@ -28,18 +28,18 @@ func NewPlainExchange(operation Operation, body interface{}) (exc DanmakuExchang } } - length := uint64(kHeaderLength + len(bodyData)) - if length > kMaxBodyLength { - err = fmt.Errorf("body is too large (> %d)", kMaxBodyLength) + length := uint64(HeaderLength + len(bodyData)) + if length > MaxBodyLength { + err = fmt.Errorf("body is too large (> %d)", MaxBodyLength) return } exc = DanmakuExchange{ DanmakuExchangeHeader: DanmakuExchangeHeader{ Length: uint32(length), - HeaderLength: kHeaderLength, + HeaderLength: HeaderLength, ProtocolVer: ProtoPlainJson, Operation: operation, - SequenceId: kSequenceId, + SequenceId: SequenceId, }, Body: bodyData, } diff --git a/recording/runner.go b/recording/runner.go index fe7aa21..1f2f101 100644 --- a/recording/runner.go +++ b/recording/runner.go @@ -28,7 +28,7 @@ type TaskResult struct { Error error } -const kSpecialExtName = "partial" +const SpecialExtName = "partial" var errLiveEnded = common.NewRecoverableTaskError("live is ended", nil) @@ -281,7 +281,7 @@ func record( originalExtName := mo.TupleToResult(myurl.Url(streamSource.URL).FileExtension()).OrElse("flv") if task.Download.UseSpecialExtNameBeforeFinishing { - extName = kSpecialExtName + extName = SpecialExtName } else { extName = originalExtName } |