private async Task <IEnumerable <EntityUpdate> > FetchAllTeams() { var timestamp = _clock.GetCurrentInstant(); var json = await _client.GetStringAsync("https://www.blaseball.com/database/allTeams"); return(EntityUpdate.FromArray(UpdateType.Team, _sourceId, timestamp, JArray.Parse(json))); }
private async Task <IEnumerable <EntityUpdate> > FetchPlayers(IEnumerable <Guid> playerIds) { var queryIds = string.Join(',', playerIds); var timestamp = _clock.GetCurrentInstant(); var json = await _client.GetStringAsync("https://www.blaseball.com/database/players?ids=" + queryIds); return(EntityUpdate.FromArray(UpdateType.Player, _sourceId, timestamp, JArray.Parse(json))); }
private IEnumerable <EntityUpdate> ExtractUpdates(JToken entry, Instant timestamp) { var data = entry["data"]; var endpoint = entry["endpoint"] !.Value <string>(); return(endpoint switch { "allTeams" => EntityUpdate.FromArray(UpdateType.Team, _sourceId, timestamp, data), "players" => EntityUpdate.FromArray(UpdateType.Player, _sourceId, timestamp, data), "globalEvents" => new[] { EntityUpdate.From(UpdateType.GlobalEvents, _sourceId, timestamp, data) }, "offseasonSetup" => new[] { EntityUpdate.From(UpdateType.OffseasonSetup, _sourceId, timestamp, data) }, "idols" => new[] { EntityUpdate.From(UpdateType.Idols, _sourceId, timestamp, data) }, _ => ImmutableList <EntityUpdate> .Empty });
private List <EntityUpdate> SplitElectionInfo(EntityUpdate root) => EntityUpdate.FromArray(UpdateType.GammaElection, _sourceId, root.Timestamp, root.Data).ToList();