mirror of
https://github.com/xaionaro-go/streamctl.git
synced 2025-10-08 00:40:32 +08:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package goconv
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"github.com/xaionaro-go/streamctl/pkg/streamcontrol"
|
|
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/kick"
|
|
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/obs"
|
|
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/twitch"
|
|
"github.com/xaionaro-go/streamctl/pkg/streamcontrol/youtube"
|
|
"github.com/xaionaro-go/streamctl/pkg/streamd/api"
|
|
)
|
|
|
|
func BackendDataGRPC2Go(
|
|
platID streamcontrol.PlatformName,
|
|
dataString string,
|
|
) (any, error) {
|
|
var data any
|
|
var err error
|
|
switch platID {
|
|
case obs.ID:
|
|
_data := api.BackendDataOBS{}
|
|
err = json.Unmarshal([]byte(dataString), &_data)
|
|
data = _data
|
|
case twitch.ID:
|
|
_data := api.BackendDataTwitch{}
|
|
err = json.Unmarshal([]byte(dataString), &_data)
|
|
data = _data
|
|
case kick.ID:
|
|
_data := api.BackendDataKick{}
|
|
err = json.Unmarshal([]byte(dataString), &_data)
|
|
data = _data
|
|
case youtube.ID:
|
|
_data := api.BackendDataYouTube{}
|
|
err = json.Unmarshal([]byte(dataString), &_data)
|
|
data = _data
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
"unknown platform: '%s'",
|
|
platID,
|
|
)
|
|
}
|
|
return data, err
|
|
}
|