mirror of
https://github.com/chuot/rdio-scanner.git
synced 2026-08-13 08:33:00 -06:00
- Introduced API_ACCESS_POLICY.md detailing terms of use for the WebSocket API. - Updated README.md to highlight the restricted access to the WebSocket API for Saubeo Solutions and its applications. - Added access policy comments in relevant server files to enforce unauthorized access prohibition.
88 lines
2.1 KiB
Go
88 lines
2.1 KiB
Go
// Copyright (C) 2019-2026 Chrystian Huot <chrystian.huot@saubeo.solutions>
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
//
|
|
// WebSocket API Access Policy:
|
|
// This WebSocket API is reserved exclusively for Saubeo Solutions and its native applications.
|
|
// Unauthorized access is strictly prohibited.
|
|
// See API_ACCESS_POLICY.md for full terms.
|
|
|
|
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
)
|
|
|
|
const (
|
|
MessageCommandCall = "CAL"
|
|
MessageCommandConfig = "CFG"
|
|
MessageCommandExpired = "XPR"
|
|
MessageCommandIOS = "IOS"
|
|
MessageCommandListCall = "LCL"
|
|
MessagecommandListenersCount = "LSC"
|
|
MessageCommandLivefeedMap = "LFM"
|
|
MessageCommandMax = "MAX"
|
|
MessageCommandPin = "PIN"
|
|
MessageCommandPushId = "PID"
|
|
MessageCommandServer = "SRV"
|
|
MessageCommandVersion = "VER"
|
|
)
|
|
|
|
type Message struct {
|
|
Command any
|
|
Payload any
|
|
Flag any
|
|
}
|
|
|
|
func (message *Message) FromJson(b []byte) error {
|
|
var (
|
|
err error
|
|
f []any
|
|
)
|
|
|
|
if err = json.Unmarshal(b, &f); err != nil {
|
|
return err
|
|
}
|
|
|
|
l := len(f)
|
|
|
|
if l >= 1 {
|
|
message.Command = f[0]
|
|
}
|
|
|
|
if l >= 2 {
|
|
message.Payload = f[1]
|
|
}
|
|
|
|
if l >= 3 {
|
|
message.Flag = f[2]
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (message *Message) ToJson() ([]byte, error) {
|
|
str := []any{message.Command}
|
|
|
|
if message.Payload != nil && message.Payload != "" {
|
|
str = append(str, message.Payload)
|
|
}
|
|
|
|
if message.Flag != nil && message.Flag != "" {
|
|
str = append(str, message.Flag)
|
|
}
|
|
|
|
return json.Marshal(str)
|
|
}
|