adrianjsclark / aydsko-iracingdata Goto Github PK
View Code? Open in Web Editor NEWA .NET access library for querying the iRacing "Data" API.
License: MIT License
A .NET access library for querying the iRacing "Data" API.
License: MIT License
Add the new "/data/stats/season_supersession_standings" endpoint implementation.
Add the new "/data/stats/season_driver_standings" endpoint implementation.
Implement the https://members-ng.iracing.com/data/stats/member_recent_races
endpoint.
Implement the https://members-ng.iracing.com/data/track/assets
endpoint.
Support the updates released as part of the 2022 Season 2 build.
New endpoints:
Implement the endpoint /data/stats/world_records
which returns the world records data.
Implement the https://members-ng.iracing.com/data/stats/member_yearly
endpoint.
Add the new "/data/stats/season_qualify_results" endpoint implementation.
Currently the "RaceWeekNum" property just exposes the value returned by the iRacing API. This can be misleading because it is a zero-based number for the week of the season.
aydsko-iracingdata/src/Aydsko.iRacingData/Results/SeasonRaceResult.cs
Lines 10 to 11 in 1387ffa
Split this property into two parts:
[JsonPropertyName("race_week_num")]
public int RaceWeekIndex { get; set; }
[JsonIgnore]
public int RaceWeekNumber => (RaceWeekIndex + 1);
It seems that for externally-created PRs the Code Coverage Reporting will fail attempting to attach/update the report with: Error: Resource not accessible by integration
See an example here: https://github.com/AdrianJSClark/aydsko-iracingdata/runs/6805005286
This is due to permissions issues which have good reason to be there, and I don't look at the code coverage anyway, so pull those steps out of the build.
Any fields which represent an instant in time should use the DateTimeOffset
type.
For example SeasonRaceResult.StartTime
:
aydsko-iracingdata/src/Aydsko.iRacingData/Results/SeasonRaceResult.cs
Lines 19 to 20 in 1387ffa
Add the new "/data/stats/season_tt_results" endpoint implementation.
The /data/track/assets
endpoint has a value for the track_map
field and a new track_map_layers
field that contains various track map components.
If the results of a session aren't available for the authenticated user a "forbidden" response is returned. This should cause a specific exception so it can be properly communicated and handled.
The Customer Id parameter on the /data/member/chart_data
is now optional because it defaults to the authenticated member.
Create a small console app which can serve as an example for using the library.
The newly-shaped login pathway delivered with the 2022 Season 3 build, which was implemented behind the Use2022Season3Login
flag is now the standard way to authenticate.
Remove the old methods and update the code to remove the flag.
Implement support for the two new endpoints:
Implement support for the /data/member/chart_data
endpoint.
Support the /data/league/membership
endpoint.
Implement support for the /data/series/get
endpoint.
Implement the https://members-ng.iracing.com/data/results/season_results
endpoint.
Add the new "/data/stats/season_tt_standings" endpoint implementation.
Implement support for the /data/series/assets
endpoint.
Implement support for the /data/team/get
endpoint.
Interval does not seem to always return the correct value when grabbing race results.
Check sessionId: 45238898 where interval value does NOT return correct value.
Check sessionId: 45243121 where interval value IS correct.
Report via iRacing Forums message from Billy Sage:
I believe they may have made a change to the API in the last couple of days, as now I am unable to collect any results.
Here is the particular issue I am having:
Message=The JSON value could not be converted to System.Int32. Path: $.session_results[0].results[0].old_cpi | LineNumber: 122 | BytePositionInLine: 29.
Source=System.Text.Json
I believe the "old_cpi" is trying to collect an int, but in the JSON it's a decimal.
Implement support for the /data/league/get_points_systems
endpoint.
iRacing added an expires property to all endpoints which result in links to AWS, indicating the latest time when the data will be expired in ISO-8601 format.
Implement support for the /data/league/cust_league_sessions
endpoint.
Add the new "/data/stats/member_division" endpoint implementation.
Hi,
When looking at the data returned, IRacing always returns YYYY-MM-DD formatted dates for both Opens
and Closes
properties. So perhaps it would be more fitting using DateOnly
over string
as is currently used.
Cheers,
Add the new "/data/series/stats_series" endpoint implementation.
Add the new "/data/results/event_log" endpoint implementation.
If you request the result from a subsession that was a team race, you'll get a slightly modified result back. There is an team_id
(a negative number), display_name
is the team-name and it adds an array with driver_results
- with each driver (pretty much same as Result
)
Here is an example of the data:
https://members-ng.iracing.com/data/results/get?subsession_id=46219719
Implement the /data/lookup/club_history
endpoint which returns earlier history if the requested quarter does not have a club history.
Implement support for the /data/league/season_sessions
endpoint.
Implement the https://members-ng.iracing.com/data/track/get
endpoint.
Check the formatting of the C# code matches what we expect using dotnet-format
tool (https://github.com/dotnet/format) during the CI build so that failures are flagged for PRs.
Add the new "/data/stats/season_team_standings" endpoint implementation.
The /data/season/list
endpoint retrieves a list of the series that existed in the given year and quarter.
Implement the https://members-ng.iracing.com/data/league/get
endpoint.
Implement the /data/lookup/countries
endpoint.
The raw iRacing API results use a number
type which carries duration values to the ten-thousandth of a second. So, for example, a lap which was displayed in the iRacing results page as 1:23.456
would be returned as 834560
.
The conversion formula is:
TimeSpan.FromSeconds(iRacingValue / 10000D)
(long)(timeSpanValue.TotalSeconds * 10000)
The various time properties such as "Interval" and "Lap Time" should be converted to use a TimeSpan
type and be converted from iRacing's representation.
As posted in the "Login Form Changes" thread on the iRacing forum, as of the 2022 Season 3 release (expected week starting 6 June 2022) the process for submitting the username & password will change.
The new process is:
Implement support for the /data/league/seasons
endpoint.
Implement support for the /data/league/season_standings
endpoint.
Implement support for the /data/results/search_series
and /data/results/search_hosted
endpoints.
Allow people to change the value sent in the "User-Agent" to properly identify thier software and include the library version. This is to allow issues with the library to be sourced in logs on the server.
Set the User-Agent value to: <app-supplied product>/<app-supplied version> Aydsko.iRacingData/<library assembly version>
Where the values in angle-brackets have the following meanings:
Aydsko.iRacingData
library being usedImplement support for the /data/league/directory
endpoint.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.