-
Notifications
You must be signed in to change notification settings - Fork 0
/
defhandlers.go
34 lines (31 loc) · 875 Bytes
/
defhandlers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package spotlib
import (
"context"
"fmt"
"runtime"
"time"
"github.com/KarpelesLab/emitter"
"github.com/KarpelesLab/spotproto"
)
// setDefaultHandlers initializes default handlers
func (c *Client) setDefaultHandlers() {
c.SetHandler("ping", func(msg *spotproto.Message) ([]byte, error) {
if len(msg.Body) > 128 {
return msg.Body[:128], nil
}
return msg.Body, nil
})
c.SetHandler("version", func(msg *spotproto.Message) ([]byte, error) {
res := fmt.Sprintf("spotlib, %s", runtime.Version())
return []byte(res), nil
})
c.SetHandler("finger", func(msg *spotproto.Message) ([]byte, error) {
return c.idBin, nil
})
c.SetHandler("check_update", func(msg *spotproto.Message) ([]byte, error) {
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
emitter.Global.Emit(ctx, "check_update")
return nil, nil
})
}