rdio-scanner/server/message.go
Chrystian Huot 2fe0758c22 Add API Access Policy and update copyright information
- Introduced a new document, API_ACCESS_POLICY.md, outlining the terms of use for the WebSocket API, including license, scope of restriction, authorized access, authentication, prohibited use, enforcement, and contact information.
- Updated README.md to highlight the restricted nature of the WebSocket API and link to the new access policy.
- Changed copyright information in multiple server files to reflect the new email address for Chrystian Huot.
- Added comments in server files to indicate the WebSocket API access policy and its restrictions.
2026-01-03 09:24:21 -05:00

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)
}