Code refactoring (change interface to any)

This commit is contained in:
Alexey Khit
2023-03-17 06:44:40 +03:00
parent d4d91e4920
commit 2146ea470b
23 changed files with 54 additions and 54 deletions

View File

@@ -63,13 +63,13 @@ func mergeYAML(file1 string, yaml2 []byte) ([]byte, error) {
} }
// Unmarshal the first YAML file into a map // Unmarshal the first YAML file into a map
var config1 map[string]interface{} var config1 map[string]any
if err = yaml.Unmarshal(data1, &config1); err != nil { if err = yaml.Unmarshal(data1, &config1); err != nil {
return nil, err return nil, err
} }
// Unmarshal the second YAML document into a map // Unmarshal the second YAML document into a map
var config2 map[string]interface{} var config2 map[string]any
if err = yaml.Unmarshal(yaml2, &config2); err != nil { if err = yaml.Unmarshal(yaml2, &config2); err != nil {
return nil, err return nil, err
} }
@@ -81,15 +81,15 @@ func mergeYAML(file1 string, yaml2 []byte) ([]byte, error) {
return yaml.Marshal(&config1) return yaml.Marshal(&config1)
} }
func merge(dst, src map[string]interface{}) map[string]interface{} { func merge(dst, src map[string]any) map[string]any {
for k, v := range src { for k, v := range src {
if vv, ok := dst[k]; ok { if vv, ok := dst[k]; ok {
switch vv := vv.(type) { switch vv := vv.(type) {
case map[string]interface{}: case map[string]any:
v := v.(map[string]interface{}) v := v.(map[string]any)
dst[k] = merge(vv, v) dst[k] = merge(vv, v)
case []interface{}: case []any:
v := v.([]interface{}) v := v.([]any)
dst[k] = v dst[k] = v
default: default:
dst[k] = v dst[k] = v

View File

@@ -84,7 +84,7 @@ func apiWS(w http.ResponseWriter, r *http.Request) {
} }
tr := &Transport{Request: r} tr := &Transport{Request: r}
tr.OnWrite(func(msg interface{}) { tr.OnWrite(func(msg any) {
_ = ws.SetWriteDeadline(time.Now().Add(time.Second * 5)) _ = ws.SetWriteDeadline(time.Now().Add(time.Second * 5))
if data, ok := msg.([]byte); ok { if data, ok := msg.([]byte); ok {
@@ -130,11 +130,11 @@ type Transport struct {
wrmx sync.Mutex wrmx sync.Mutex
onChange func() onChange func()
onWrite func(msg interface{}) onWrite func(msg any)
onClose []func() onClose []func()
} }
func (t *Transport) OnWrite(f func(msg interface{})) { func (t *Transport) OnWrite(f func(msg any)) {
t.mx.Lock() t.mx.Lock()
if t.onChange != nil { if t.onChange != nil {
t.onChange() t.onChange()
@@ -143,7 +143,7 @@ func (t *Transport) OnWrite(f func(msg interface{})) {
t.mx.Unlock() t.mx.Unlock()
} }
func (t *Transport) Write(msg interface{}) { func (t *Transport) Write(msg any) {
t.wrmx.Lock() t.wrmx.Lock()
t.onWrite(msg) t.onWrite(msg)
t.wrmx.Unlock() t.wrmx.Unlock()

View File

@@ -18,7 +18,7 @@ var Version = "1.2.0"
var UserAgent = "go2rtc/" + Version var UserAgent = "go2rtc/" + Version
var ConfigPath string var ConfigPath string
var Info = map[string]interface{}{ var Info = map[string]any{
"version": Version, "version": Version,
} }
@@ -94,7 +94,7 @@ func NewLogger(format string, level string) zerolog.Logger {
return zerolog.New(writer).With().Timestamp().Logger().Level(lvl) return zerolog.New(writer).With().Timestamp().Logger().Level(lvl)
} }
func LoadConfig(v interface{}) { func LoadConfig(v any) {
for _, data := range configs { for _, data := range configs {
if err := yaml.Unmarshal(data, v); err != nil { if err := yaml.Unmarshal(data, v); err != nil {
log.Warn().Err(err).Msg("[app] read config") log.Warn().Err(err).Msg("[app] read config")

View File

@@ -8,7 +8,7 @@ import (
const name = "go2rtc.json" const name = "go2rtc.json"
var store map[string]interface{} var store map[string]any
func load() { func load() {
data, _ := os.ReadFile(name) data, _ := os.ReadFile(name)
@@ -20,7 +20,7 @@ func load() {
} }
if store == nil { if store == nil {
store = make(map[string]interface{}) store = make(map[string]any)
} }
} }
@@ -33,7 +33,7 @@ func save() error {
return os.WriteFile(name, data, 0644) return os.WriteFile(name, data, 0644)
} }
func GetRaw(key string) interface{} { func GetRaw(key string) any {
if store == nil { if store == nil {
load() load()
} }
@@ -41,16 +41,16 @@ func GetRaw(key string) interface{} {
return store[key] return store[key]
} }
func GetDict(key string) map[string]interface{} { func GetDict(key string) map[string]any {
raw := GetRaw(key) raw := GetRaw(key)
if raw != nil { if raw != nil {
return raw.(map[string]interface{}) return raw.(map[string]any)
} }
return make(map[string]interface{}) return make(map[string]any)
} }
func Set(key string, v interface{}) error { func Set(key string, v any) error {
if store == nil { if store == nil {
load() load()
} }

View File

@@ -83,7 +83,7 @@ func handlerStream(w http.ResponseWriter, r *http.Request) {
session := &Session{cons: cons} session := &Session{cons: cons}
cons.Listen(func(msg interface{}) { cons.(any).(*core.Listener).Listen(func(msg any) {
if data, ok := msg.([]byte); ok { if data, ok := msg.([]byte); ok {
session.mu.Lock() session.mu.Lock()
session.segment = append(session.segment, data...) session.segment = append(session.segment, data...)

View File

@@ -15,7 +15,7 @@ import (
func apiHandler(w http.ResponseWriter, r *http.Request) { func apiHandler(w http.ResponseWriter, r *http.Request) {
switch r.Method { switch r.Method {
case "GET": case "GET":
items := make([]interface{}, 0) items := make([]any, 0)
for name, src := range store.GetDict("streams") { for name, src := range store.GetDict("streams") {
if src := src.(string); strings.HasPrefix(src, "homekit") { if src := src.(string); strings.HasPrefix(src, "homekit") {

View File

@@ -32,7 +32,7 @@ func handlerKeyframe(w http.ResponseWriter, r *http.Request) {
RemoteAddr: r.RemoteAddr, RemoteAddr: r.RemoteAddr,
UserAgent: r.UserAgent(), UserAgent: r.UserAgent(),
} }
cons.Listen(func(msg interface{}) { cons.Listen(func(msg any) {
switch msg := msg.(type) { switch msg := msg.(type) {
case []byte: case []byte:
exit <- msg exit <- msg
@@ -84,7 +84,7 @@ func outputMjpeg(w http.ResponseWriter, r *http.Request) {
RemoteAddr: r.RemoteAddr, RemoteAddr: r.RemoteAddr,
UserAgent: r.UserAgent(), UserAgent: r.UserAgent(),
} }
cons.Listen(func(msg interface{}) { cons.Listen(func(msg any) {
switch msg := msg.(type) { switch msg := msg.(type) {
case []byte: case []byte:
data := []byte(header + strconv.Itoa(len(msg))) data := []byte(header + strconv.Itoa(len(msg)))
@@ -149,7 +149,7 @@ func handlerWS(tr *api.Transport, _ *api.Message) error {
RemoteAddr: tr.Request.RemoteAddr, RemoteAddr: tr.Request.RemoteAddr,
UserAgent: tr.Request.UserAgent(), UserAgent: tr.Request.UserAgent(),
} }
cons.Listen(func(msg interface{}) { cons.Listen(func(msg any) {
if data, ok := msg.([]byte); ok { if data, ok := msg.([]byte); ok {
tr.Write(data) tr.Write(data)
} }

View File

@@ -46,7 +46,7 @@ func handlerKeyframe(w http.ResponseWriter, r *http.Request) {
exit := make(chan []byte) exit := make(chan []byte)
cons := &mp4.Segment{OnlyKeyframe: true} cons := &mp4.Segment{OnlyKeyframe: true}
cons.Listen(func(msg interface{}) { cons.Listen(func(msg any) {
if data, ok := msg.([]byte); ok && exit != nil { if data, ok := msg.([]byte); ok && exit != nil {
exit <- data exit <- data
exit = nil exit = nil

View File

@@ -26,7 +26,7 @@ func handlerWSMSE(tr *api.Transport, msg *api.Message) error {
cons.Medias = parseMedias(codecs, true) cons.Medias = parseMedias(codecs, true)
} }
cons.Listen(func(msg interface{}) { cons.Listen(func(msg any) {
if data, ok := msg.([]byte); ok { if data, ok := msg.([]byte); ok {
tr.Write(data) tr.Write(data)
} }
@@ -74,7 +74,7 @@ func handlerWSMP4(tr *api.Transport, msg *api.Message) error {
cons.Medias = parseMedias(codecs, false) cons.Medias = parseMedias(codecs, false)
} }
cons.Listen(func(msg interface{}) { cons.Listen(func(msg any) {
if data, ok := msg.([]byte); ok { if data, ok := msg.([]byte); ok {
tr.Write(data) tr.Write(data)
} }

View File

@@ -30,7 +30,7 @@ func Init() {
log.Error().Err(err).Msg("[ngrok] start") log.Error().Err(err).Msg("[ngrok] start")
} }
ngr.Listen(func(msg interface{}) { ngr.Listen(func(msg any) {
if msg := msg.(*ngrok.Message); msg != nil { if msg := msg.(*ngrok.Message); msg != nil {
if strings.HasPrefix(msg.Line, "ERROR:") { if strings.HasPrefix(msg.Line, "ERROR:") {
log.Warn().Msg("[ngrok] " + msg.Line) log.Warn().Msg("[ngrok] " + msg.Line)

View File

@@ -106,7 +106,7 @@ func rtspHandler(url string) (streamer.Producer, error) {
conn.UserAgent = app.UserAgent conn.UserAgent = app.UserAgent
if log.Trace().Enabled() { if log.Trace().Enabled() {
conn.Listen(func(msg interface{}) { conn.Listen(func(msg any) {
switch msg := msg.(type) { switch msg := msg.(type) {
case *tcp.Request: case *tcp.Request:
log.Trace().Msgf("[rtsp] client request:\n%s", msg) log.Trace().Msgf("[rtsp] client request:\n%s", msg)
@@ -147,7 +147,7 @@ func tcpHandler(conn *rtsp.Conn) {
trace := log.Trace().Enabled() trace := log.Trace().Enabled()
conn.Listen(func(msg interface{}) { conn.Listen(func(msg any) {
if trace { if trace {
switch msg := msg.(type) { switch msg := msg.(type) {
case *tcp.Request: case *tcp.Request:

View File

@@ -24,7 +24,7 @@ func NewStream(source interface{}) *Stream {
prod := &Producer{url: source} prod := &Producer{url: source}
s.producers = append(s.producers, prod) s.producers = append(s.producers, prod)
return s return s
case []interface{}: case []any:
s := new(Stream) s := new(Stream)
for _, source := range source { for _, source := range source {
prod := &Producer{url: source.(string)} prod := &Producer{url: source.(string)}
@@ -33,7 +33,7 @@ func NewStream(source interface{}) *Stream {
return s return s
case *Stream: case *Stream:
return source return source
case map[string]interface{}: case map[string]any:
return NewStream(source["url"]) return NewStream(source["url"])
case nil: case nil:
return new(Stream) return new(Stream)

View File

@@ -11,7 +11,7 @@ import (
func Init() { func Init() {
var cfg struct { var cfg struct {
Mod map[string]interface{} `yaml:"streams"` Mod map[string]any `yaml:"streams"`
} }
app.LoadConfig(&cfg) app.LoadConfig(&cfg)
@@ -33,7 +33,7 @@ func Get(name string) *Stream {
return streams[name] return streams[name]
} }
func New(name string, source interface{}) *Stream { func New(name string, source any) *Stream {
stream := NewStream(source) stream := NewStream(source)
streams[name] = stream streams[name] = stream
return stream return stream

View File

@@ -185,7 +185,7 @@ func inputWebRTC(w http.ResponseWriter, r *http.Request) {
id := strconv.FormatInt(time.Now().UnixNano(), 36) id := strconv.FormatInt(time.Now().UnixNano(), 36)
sessions[id] = prod sessions[id] = prod
prod.Listen(func(msg interface{}) { prod.Listen(func(msg any) {
switch msg := msg.(type) { switch msg := msg.(type) {
case pion.PeerConnectionState: case pion.PeerConnectionState:
if msg == pion.PeerConnectionStateClosed { if msg == pion.PeerConnectionStateClosed {

View File

@@ -52,7 +52,7 @@ func Init() {
} }
if log.Debug().Enabled() { if log.Debug().Enabled() {
srv.Listen(func(msg interface{}) { srv.Listen(func(msg any) {
switch msg.(type) { switch msg.(type) {
case string, error: case string, error:
log.Debug().Msgf("[webtorrent] %s", msg) log.Debug().Msgf("[webtorrent] %s", msg)

View File

@@ -38,7 +38,7 @@ type Client struct {
audioSeq uint16 audioSeq uint16
} }
type Response map[string]interface{} type Response map[string]any
const Login = uint16(1000) const Login = uint16(1000)
const OPMonitorClaim = uint16(1413) const OPMonitorClaim = uint16(1413)

View File

@@ -91,7 +91,7 @@ func (c *Character) GenerateEvent() (data []byte, err error) {
} }
// Set new value and NotifyListeners // Set new value and NotifyListeners
func (c *Character) Set(v interface{}) (err error) { func (c *Character) Set(v any) (err error) {
if err = c.Write(v); err != nil { if err = c.Write(v); err != nil {
return return
} }
@@ -99,7 +99,7 @@ func (c *Character) Set(v interface{}) (err error) {
} }
// Write new value with right format // Write new value with right format
func (c *Character) Write(v interface{}) (err error) { func (c *Character) Write(v any) (err error) {
switch c.Format { switch c.Format {
case characteristic.FormatTLV8: case characteristic.FormatTLV8:
var data []byte var data []byte
@@ -120,7 +120,7 @@ func (c *Character) Write(v interface{}) (err error) {
} }
// ReadTLV8 value to right struct // ReadTLV8 value to right struct
func (c *Character) ReadTLV8(v interface{}) (err error) { func (c *Character) ReadTLV8(v any) (err error) {
var data []byte var data []byte
if data, err = base64.StdEncoding.DecodeString(c.Value.(string)); err != nil { if data, err = base64.StdEncoding.DecodeString(c.Value.(string)); err != nil {
return return

View File

@@ -35,7 +35,7 @@ type Conn struct {
ClientPrivate []byte ClientPrivate []byte
OnEvent func(res *http.Response) OnEvent func(res *http.Response)
Output func(msg interface{}) Output func(msg any)
conn net.Conn conn net.Conn
secure *Secure secure *Secure

View File

@@ -38,7 +38,7 @@ type PairVerifyPayload struct {
Signature []byte `tlv8:"10,optional"` Signature []byte `tlv8:"10,optional"`
} }
//func (c *Character) Unmarshal(value interface{}) error { //func (c *Character) Unmarshal(value any) error {
// switch c.Format { // switch c.Format {
// case characteristic.FormatTLV8: // case characteristic.FormatTLV8:
// data, err := base64.StdEncoding.DecodeString(c.Value.(string)) // data, err := base64.StdEncoding.DecodeString(c.Value.(string))
@@ -50,7 +50,7 @@ type PairVerifyPayload struct {
// return nil // return nil
//} //}
//func (c *Character) Marshal(value interface{}) error { //func (c *Character) Marshal(value any) error {
// switch c.Format { // switch c.Format {
// case characteristic.FormatTLV8: // case characteristic.FormatTLV8:
// data, err := tlv8.Marshal(value) // data, err := tlv8.Marshal(value)

View File

@@ -27,7 +27,7 @@ func NewReader(b []byte) *AMF0 {
return &AMF0{buf: b} return &AMF0{buf: b}
} }
func (a *AMF0) ReadMetaData() map[string]interface{} { func (a *AMF0) ReadMetaData() map[string]any {
if b, _ := a.ReadByte(); b != TypeString { if b, _ := a.ReadByte(); b != TypeString {
return nil return nil
} }
@@ -48,8 +48,8 @@ func (a *AMF0) ReadMetaData() map[string]interface{} {
return nil return nil
} }
func (a *AMF0) ReadMap() (map[interface{}]interface{}, error) { func (a *AMF0) ReadMap() (map[any]any, error) {
dict := make(map[interface{}]interface{}) dict := make(map[any]any)
for a.pos < len(a.buf) { for a.pos < len(a.buf) {
k, err := a.ReadItem() k, err := a.ReadItem()
@@ -66,7 +66,7 @@ func (a *AMF0) ReadMap() (map[interface{}]interface{}, error) {
return dict, nil return dict, nil
} }
func (a *AMF0) ReadItem() (interface{}, error) { func (a *AMF0) ReadItem() (any, error) {
dataType, err := a.ReadByte() dataType, err := a.ReadByte()
if err != nil { if err != nil {
return nil, err return nil, err
@@ -131,8 +131,8 @@ func (a *AMF0) ReadString() (string, error) {
return s, nil return s, nil
} }
func (a *AMF0) ReadObject() (map[string]interface{}, error) { func (a *AMF0) ReadObject() (map[string]any, error) {
obj := make(map[string]interface{}) obj := make(map[string]any)
for { for {
k, err := a.ReadString() k, err := a.ReadString()
@@ -155,7 +155,7 @@ func (a *AMF0) ReadObject() (map[string]interface{}, error) {
return obj, nil return obj, nil
} }
func (a *AMF0) ReadEcmaArray() (map[string]interface{}, error) { func (a *AMF0) ReadEcmaArray() (map[string]any, error) {
if a.pos+4 >= len(a.buf) { if a.pos+4 >= len(a.buf) {
return nil, Err return nil, Err
} }

View File

@@ -176,7 +176,7 @@ func (c *Conn) Close() (err error) {
return c.conn.Close() return c.conn.Close()
} }
func parseAudioConfig(meta map[string]interface{}) av.CodecData { func parseAudioConfig(meta map[string]any) av.CodecData {
if meta["audiocodecid"] != float64(10) { if meta["audiocodecid"] != float64(10) {
return nil return nil
} }

View File

@@ -24,7 +24,7 @@ type Message struct {
Line string Line string
} }
func NewNgrok(command interface{}) (*Ngrok, error) { func NewNgrok(command any) (*Ngrok, error) {
var arg []string var arg []string
switch command.(type) { switch command.(type) {
case string: case string:

View File

@@ -7,7 +7,7 @@ import (
"testing" "testing"
) )
func assert(t *testing.T, one, two interface{}) { func assert(t *testing.T, one, two any) {
if one != two { if one != two {
t.FailNow() t.FailNow()
} }