Files

93 lines
1.8 KiB
Go
Raw Permalink Normal View History

2026-07-21 03:55:57 +03:00
package main
/*
Отписка от матча:
- метод Unwatch
- когда матч исчезнет из лайва
*/
import (
"log"
"os"
"os/signal"
"syscall"
"time"
"gordenko.dev/dima/onexbet"
"gordenko.dev/dima/onexbet/daemon"
"gordenko.dev/dima/web"
"gordenko.dev/dima/web/api"
"gordenko.dev/dima/web/router"
"gordenko.dev/dima/ws"
"gordenko.dev/dima/ws/publisher"
)
const (
port = 7772
dsn = "user:password@/tipper"
)
func main() {
wsServer, err := ws.NewPublicServer(ws.PublicServerOptions{
Logger: log.New(os.Stdout, "ws: ", log.LstdFlags),
LostConnectionTimeout: 1 * time.Minute,
Ping: true,
})
if err != nil {
log.Fatalf("ws.NewPublicServer: %s\n", err)
}
wsPublisher, err := publisher.NewPublicPublisher(publisher.PublicPublisherOptions{
WsPublicServer: wsServer,
})
if err != nil {
log.Fatalf("ws.NewPublicPublisher: %s\n", err)
}
//
logger := log.New(os.Stdout, "", log.LstdFlags)
d := daemon.New(daemon.Options{
Logger: logger,
SportIDs: []onexbet.OnexbetSport{
onexbet.Handball,
onexbet.Football,
onexbet.Tennis,
},
WsPublisher: wsPublisher,
})
wsServer.OnConnected(d.OnWsClientConnected)
publicAPI, err := api.NewAPI(api.Options{
Logger: logger,
})
publicAPI.PublicFunc("watch", d.Watch)
publicAPI.PublicFunc("unwatch", d.Unwatch)
//publicAPI.Handle("searchMatchCandidates", s.SearchMatchCandidates)
r := router.New()
r.PrefixHandle("/api", publicAPI)
r.Handle("/ws", wsServer)
app, err := web.NewApp(web.AppOptions{
Port: port,
Router: r,
})
if err != nil {
log.Fatalf("web.NewApp: %s\n", err)
}
go app.Run()
go d.Run()
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
<-sigs
logger.Println("daemon stopped.")
}