Giter VIP home page Giter VIP logo

aydsko-iracingdata's People

Contributors

adrianjsclark avatar dennis avatar duncwatts avatar lukaszzborek avatar mwcarroll avatar tobiaszuercher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aydsko-iracingdata's Issues

Support 2022 Season 2 Updates

Support the updates released as part of the 2022 Season 2 build.

New endpoints:

  • /data/constants/divisions
  • /data/stats/member_summary
  • /data/results/lap_chart_data
  • /data/results/lap_data

Provide Friendlier Version of "SeasonRaceResult.RaceWeekNum"

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.

[JsonPropertyName("race_week_num")]
public int RaceWeekNum { get; set; }

Split this property into two parts:

    [JsonPropertyName("race_week_num")]
    public int RaceWeekIndex { get; set; }

    [JsonIgnore]
    public int RaceWeekNumber => (RaceWeekIndex + 1);

Support New Track Assets Fields

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.

Handle "forbidden" Response

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.

Use New Login Process Always and Remove Old Method

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.

Session Results Value "old_cpi" Fails To Parse

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.

Support "Expires" Property

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.

Add Club History Endpoint

Implement the /data/lookup/club_history endpoint which returns earlier history if the requested quarter does not have a club history.

Use "TimeSpan" For Duration Properties

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:

  • From iRacing Value => TimeSpan: TimeSpan.FromSeconds(iRacingValue / 10000D)
  • From TimeSpan => iRacing Value: (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.

Implement New Login Credentials Submission

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:

  1. Convert the username (email) to lowercase
  2. Concatenate the output from step 1 to the end of the password
  3. Create a SHA256 hash of the output from step 2
  4. Encode the output from step 3 in Base64
  5. Submit the output from step 4 in the password field of the login form

Allow Setting of "User-Agent" Header

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:

  • app-supplied product: the name supplied by the application using the library OR the name of the entry assembly
  • app-supplied version: the version number supplied by the application using the library OR the version of the entry assembly
  • library assembly version: the version number of the Aydsko.iRacingData library being used

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.