Code refactoring for streams HandleFunc
This commit is contained in:
@@ -7,13 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("bubble", handle)
|
streams.HandleFunc("bubble", func(source string) (core.Producer, error) {
|
||||||
}
|
return bubble.Dial(source)
|
||||||
|
})
|
||||||
func handle(url string) (core.Producer, error) {
|
|
||||||
conn := bubble.NewClient(url)
|
|
||||||
if err := conn.Dial(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return conn, nil
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,16 +2,8 @@ package debug
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/AlexxIT/go2rtc/internal/api"
|
"github.com/AlexxIT/go2rtc/internal/api"
|
||||||
"github.com/AlexxIT/go2rtc/internal/streams"
|
|
||||||
"github.com/AlexxIT/go2rtc/pkg/core"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
api.HandleFunc("api/stack", stackHandler)
|
api.HandleFunc("api/stack", stackHandler)
|
||||||
|
|
||||||
streams.HandleFunc("null", nullHandler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func nullHandler(string) (core.Producer, error) {
|
|
||||||
return nil, nil
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-10
@@ -10,25 +10,16 @@ import (
|
|||||||
|
|
||||||
"github.com/AlexxIT/go2rtc/internal/api"
|
"github.com/AlexxIT/go2rtc/internal/api"
|
||||||
"github.com/AlexxIT/go2rtc/internal/streams"
|
"github.com/AlexxIT/go2rtc/internal/streams"
|
||||||
"github.com/AlexxIT/go2rtc/pkg/core"
|
|
||||||
"github.com/AlexxIT/go2rtc/pkg/dvrip"
|
"github.com/AlexxIT/go2rtc/pkg/dvrip"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("dvrip", handle)
|
streams.HandleFunc("dvrip", dvrip.Dial)
|
||||||
|
|
||||||
// DVRIP client autodiscovery
|
// DVRIP client autodiscovery
|
||||||
api.HandleFunc("api/dvrip", apiDvrip)
|
api.HandleFunc("api/dvrip", apiDvrip)
|
||||||
}
|
}
|
||||||
|
|
||||||
func handle(url string) (core.Producer, error) {
|
|
||||||
client, err := dvrip.Dial(url)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return client, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
const Port = 34569 // UDP port number for dvrip discovery
|
const Port = 34569 // UDP port number for dvrip discovery
|
||||||
|
|
||||||
func apiDvrip(w http.ResponseWriter, r *http.Request) {
|
func apiDvrip(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|||||||
@@ -10,15 +10,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("gopro", handleGoPro)
|
streams.HandleFunc("gopro", func(source string) (core.Producer, error) {
|
||||||
|
return gopro.Dial(source)
|
||||||
|
})
|
||||||
|
|
||||||
api.HandleFunc("api/gopro", apiGoPro)
|
api.HandleFunc("api/gopro", apiGoPro)
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleGoPro(rawURL string) (core.Producer, error) {
|
|
||||||
return gopro.Dial(rawURL)
|
|
||||||
}
|
|
||||||
|
|
||||||
func apiGoPro(w http.ResponseWriter, r *http.Request) {
|
func apiGoPro(w http.ResponseWriter, r *http.Request) {
|
||||||
var items []*api.Source
|
var items []*api.Source
|
||||||
|
|
||||||
|
|||||||
@@ -45,14 +45,9 @@ func Init() {
|
|||||||
return "", nil
|
return "", nil
|
||||||
})
|
})
|
||||||
|
|
||||||
streams.HandleFunc("hass", func(url string) (core.Producer, error) {
|
streams.HandleFunc("hass", func(source string) (core.Producer, error) {
|
||||||
// support hass://supervisor?entity_id=camera.driveway_doorbell
|
// support hass://supervisor?entity_id=camera.driveway_doorbell
|
||||||
client, err := hass.NewClient(url)
|
return hass.NewClient(source)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return client, nil
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// load static entries from Hass config
|
// load static entries from Hass config
|
||||||
|
|||||||
+3
-12
@@ -7,16 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("isapi", handle)
|
streams.HandleFunc("isapi", func(source string) (core.Producer, error) {
|
||||||
}
|
return isapi.Dial(source)
|
||||||
|
})
|
||||||
func handle(url string) (core.Producer, error) {
|
|
||||||
conn, err := isapi.NewClient(url)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if err = conn.Dial(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return conn, nil
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,16 +4,10 @@ import (
|
|||||||
"github.com/AlexxIT/go2rtc/internal/streams"
|
"github.com/AlexxIT/go2rtc/internal/streams"
|
||||||
"github.com/AlexxIT/go2rtc/pkg/core"
|
"github.com/AlexxIT/go2rtc/pkg/core"
|
||||||
"github.com/AlexxIT/go2rtc/pkg/ivideon"
|
"github.com/AlexxIT/go2rtc/pkg/ivideon"
|
||||||
"strings"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("ivideon", func(url string) (core.Producer, error) {
|
streams.HandleFunc("ivideon", func(source string) (core.Producer, error) {
|
||||||
id := strings.Replace(url[8:], "/", ":", 1)
|
return ivideon.Dial(source)
|
||||||
prod := ivideon.NewClient(id)
|
|
||||||
if err := prod.Dial(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return prod, nil
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,19 +10,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("nest", streamNest)
|
streams.HandleFunc("nest", func(source string) (core.Producer, error) {
|
||||||
|
return nest.Dial(source)
|
||||||
|
})
|
||||||
|
|
||||||
api.HandleFunc("api/nest", apiNest)
|
api.HandleFunc("api/nest", apiNest)
|
||||||
}
|
}
|
||||||
|
|
||||||
func streamNest(url string) (core.Producer, error) {
|
|
||||||
client, err := nest.NewClient(url)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return client, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func apiNest(w http.ResponseWriter, r *http.Request) {
|
func apiNest(w http.ResponseWriter, r *http.Request) {
|
||||||
query := r.URL.Query()
|
query := r.URL.Query()
|
||||||
cliendID := query.Get("client_id")
|
cliendID := query.Get("client_id")
|
||||||
|
|||||||
@@ -11,22 +11,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("roborock", handle)
|
streams.HandleFunc("roborock", func(source string) (core.Producer, error) {
|
||||||
|
return roborock.Dial(source)
|
||||||
|
})
|
||||||
|
|
||||||
api.HandleFunc("api/roborock", apiHandle)
|
api.HandleFunc("api/roborock", apiHandle)
|
||||||
}
|
}
|
||||||
|
|
||||||
func handle(url string) (core.Producer, error) {
|
|
||||||
conn := roborock.NewClient(url)
|
|
||||||
if err := conn.Dial(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if err := conn.Connect(); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return conn, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var Auth struct {
|
var Auth struct {
|
||||||
UserData *roborock.UserInfo `json:"user_data"`
|
UserData *roborock.UserInfo `json:"user_data"`
|
||||||
BaseURL string `json:"base_url"`
|
BaseURL string `json:"base_url"`
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
streams.HandleFunc("kasa", func(url string) (core.Producer, error) {
|
streams.HandleFunc("kasa", func(source string) (core.Producer, error) {
|
||||||
return kasa.Dial(url)
|
return kasa.Dial(source)
|
||||||
})
|
})
|
||||||
|
|
||||||
streams.HandleFunc("tapo", func(url string) (core.Producer, error) {
|
streams.HandleFunc("tapo", func(source string) (core.Producer, error) {
|
||||||
return tapo.Dial(url)
|
return tapo.Dial(source)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,8 +43,12 @@ type Client struct {
|
|||||||
recv int
|
recv int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewClient(url string) *Client {
|
func Dial(rawURL string) (*Client, error) {
|
||||||
return &Client{url: url}
|
client := &Client{url: rawURL}
|
||||||
|
if err := client.Dial(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return client, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
+6
-2
@@ -23,7 +23,7 @@ type Client struct {
|
|||||||
send int
|
send int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewClient(rawURL string) (*Client, error) {
|
func Dial(rawURL string) (*Client, error) {
|
||||||
// check if url is valid url
|
// check if url is valid url
|
||||||
u, err := url.Parse(rawURL)
|
u, err := url.Parse(rawURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -33,7 +33,11 @@ func NewClient(rawURL string) (*Client, error) {
|
|||||||
u.Scheme = "http"
|
u.Scheme = "http"
|
||||||
u.Path = ""
|
u.Path = ""
|
||||||
|
|
||||||
return &Client{url: u.String()}, nil
|
client := &Client{url: u.String()}
|
||||||
|
if err = client.Dial(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return client, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) Dial() (err error) {
|
func (c *Client) Dial() (err error) {
|
||||||
|
|||||||
@@ -46,8 +46,13 @@ type Client struct {
|
|||||||
recv int
|
recv int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewClient(id string) *Client {
|
func Dial(source string) (*Client, error) {
|
||||||
return &Client{ID: id}
|
id := strings.Replace(source[8:], "/", ":", 1)
|
||||||
|
client := &Client{ID: id}
|
||||||
|
if err := client.Dial(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return client, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) Dial() (err error) {
|
func (c *Client) Dial() (err error) {
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ type Client struct {
|
|||||||
api *API
|
api *API
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewClient(rawURL string) (*Client, error) {
|
func Dial(rawURL string) (*Client, error) {
|
||||||
u, err := url.Parse(rawURL)
|
u, err := url.Parse(rawURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -34,8 +34,15 @@ type Client struct {
|
|||||||
backchannel bool
|
backchannel bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewClient(url string) *Client {
|
func Dial(rawURL string) (*Client, error) {
|
||||||
return &Client{url: url}
|
client := &Client{url: rawURL}
|
||||||
|
if err := client.Dial(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := client.Connect(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return client, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) Dial() error {
|
func (c *Client) Dial() error {
|
||||||
|
|||||||
Reference in New Issue
Block a user