diff options
Diffstat (limited to 'danmaku/dmpkg')
-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 |
4 files changed, 24 insertions, 19 deletions
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, } |