Do federation wakeup/stop
This commit is contained in:
parent
435d1d8f98
commit
9fa5a378e1
9 changed files with 140 additions and 12 deletions
|
|
@ -43,13 +43,34 @@ type Player struct {
|
|||
playedItem int
|
||||
}
|
||||
|
||||
func WakeUp(cfg *config.Config, routine []reveil.Identifier) (err error) {
|
||||
func WakeUp(cfg *config.Config, routine []reveil.Identifier, federated bool) (err error) {
|
||||
if CommonPlayer != nil {
|
||||
return fmt.Errorf("Unable to start the player: a player is already running")
|
||||
}
|
||||
|
||||
seed := time.Now().Unix()
|
||||
seed -= seed % 172800
|
||||
|
||||
if federated {
|
||||
settings, err := reveil.ReadSettings(cfg.SettingsFile)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Unable to read settings: %w", err)
|
||||
}
|
||||
|
||||
for k, srv := range settings.Federation {
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return WakeUpFromFederation(cfg, seed, routine)
|
||||
}
|
||||
|
||||
func WakeUpFromFederation(cfg *config.Config, seed int64, routine []reveil.Identifier) (err error) {
|
||||
rand.Seed(seed)
|
||||
|
||||
CommonPlayer, err = NewPlayer(cfg, routine)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue