You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
synctv/internal/vendor/emby.go

89 lines
2.2 KiB
Go

package vendor
import (
"context"
"errors"
"google.golang.org/grpc"
"github.com/synctv-org/vendors/api/emby"
embyService "github.com/synctv-org/vendors/service/emby"
)
type EmbyInterface = emby.EmbyHTTPServer
func LoadEmbyClient(name string) EmbyInterface {
if cli, ok := LoadClients().emby[name]; ok && cli != nil {
return cli
}
return embyLocalClient
}
var (
embyLocalClient EmbyInterface
)
func init() {
embyLocalClient = embyService.NewEmbyService(nil)
}
func EmbyLocalClient() EmbyInterface {
return embyLocalClient
}
func NewEmbyGrpcClient(conn *grpc.ClientConn) (EmbyInterface, error) {
if conn == nil {
return nil, errors.New("grpc client conn is nil")
}
conn.GetState()
return newGrpcEmby(emby.NewEmbyClient(conn)), nil
}
var _ EmbyInterface = (*grpcEmby)(nil)
type grpcEmby struct {
client emby.EmbyClient
}
func newGrpcEmby(client emby.EmbyClient) EmbyInterface {
return &grpcEmby{
client: client,
}
}
func (e *grpcEmby) FsList(ctx context.Context, req *emby.FsListReq) (*emby.FsListResp, error) {
return e.client.FsList(ctx, req)
}
func (e *grpcEmby) GetItem(ctx context.Context, req *emby.GetItemReq) (*emby.Item, error) {
return e.client.GetItem(ctx, req)
}
func (e *grpcEmby) GetItems(ctx context.Context, req *emby.GetItemsReq) (*emby.GetItemsResp, error) {
return e.client.GetItems(ctx, req)
}
func (e *grpcEmby) GetSystemInfo(ctx context.Context, req *emby.SystemInfoReq) (*emby.SystemInfoResp, error) {
return e.client.GetSystemInfo(ctx, req)
}
func (e *grpcEmby) Login(ctx context.Context, req *emby.LoginReq) (*emby.LoginResp, error) {
return e.client.Login(ctx, req)
}
func (e *grpcEmby) Logout(ctx context.Context, req *emby.LogoutReq) (*emby.Empty, error) {
return e.client.Logout(ctx, req)
}
func (e *grpcEmby) Me(ctx context.Context, req *emby.MeReq) (*emby.MeResp, error) {
return e.client.Me(ctx, req)
}
func (e *grpcEmby) PlaybackInfo(ctx context.Context, req *emby.PlaybackInfoReq) (*emby.PlaybackInfoResp, error) {
return e.client.PlaybackInfo(ctx, req)
}
func (e *grpcEmby) DeleteActiveEncodeings(ctx context.Context, req *emby.DeleteActiveEncodeingsReq) (*emby.Empty, error) {
return e.client.DeleteActiveEncodeings(ctx, req)
}