package player import ( "bytes" "encoding/json" "log" "net/http" "time" "git.nemunai.re/nemunaire/reveil/model" ) func FederatedWakeUp(k string, srv reveil.FederationSettings, seed int64) { if srv.Delay == 0 { err := federatedWakeUp(srv, seed) if err != nil { log.Printf("Unable to do federated wakeup on %s: %s", k, err.Error()) } else { log.Printf("Federated wakeup on %s: launched!", k) } } else { go func() { time.Sleep(time.Duration(srv.Delay) * time.Millisecond) err := federatedWakeUp(srv, seed) if err != nil { log.Printf("Unable to do federated wakeup on %s: %s", k, err.Error()) } else { log.Printf("Federated wakeup on %s: launched!", k) } }() } } func federatedWakeUp(srv reveil.FederationSettings, seed int64) error { req := map[string]interface{}{"seed": seed} req_enc, err := json.Marshal(req) if err != nil { return err } res, err := http.Post(srv.URL+"/api/federation/wakeup", "application/json", bytes.NewBuffer(req_enc)) if err != nil { return err } res.Body.Close() return nil } func FederatedStop(srv reveil.FederationSettings) error { res, err := http.Post(srv.URL+"/api/federation/wakeok", "application/json", nil) if err != nil { return err } res.Body.Close() return nil }