msarilar / EDEngineer

An overlay to track Elite Dangerous blueprints progress in real time
MIT License
503 stars 175 forks source link

Request: Category(Group) and Grade(Rarity) for each material in cargo API #702

Closed phlnx closed 1 year ago

phlnx commented 1 year ago

I use a local spreadsheet to load the cargo.csv file from localhost, and with that I build my own display of (horizons/guardian/thargoid) materials. The spreadsheet is configured to update every few seconds from the API so I get a rather neat overlook of my material situation.

The cargo endpoint provides, as only primary key, the full name of the material. To avoid retyping the names, some of which are quite long, and possibly incurring in typos, I use the names provided by the file itself - for example, the name "Carbon" ends up being in the cell B12 of the sheet containing the cargo.csv dump. So in my other, dashboard sheet, I use =cargo.B12 to get the name, and in the cell immediately to the right, I use an index/match combination to get the total number of carbon units I own. This way I only have to map the names and the rest builds automatically.

The problem is that, as time went by, the order in which the API dumps the individual material in the cargo endpoint has changed several times. Most importantly with Odyssey but even lately it happened. It could be because of some configuration on my side, although I don't remember tweaking with it in the last several months, but still, whenever that happens I have to remap all names to their new locations.

I believe I could further automate the process, if the cargo endpoint were to include material category and grade, for example:

[
  {
    "Kind": "Material",
    "Name": "Galvanising Alloys",
    "Count": 247,
    "Category": "Alloys",                       <--- new field
    "Grade": 2                                  <--- new field
  },
 ...

AFAIK odyssey materials do not have these properties (but I could be wrong, I haven't done ody material farming seriously yet) so they could be left blank.

Thank you for your attention.

msarilar commented 1 year ago

should be a pretty easy pull by updating the API here as well as the type here

you'll want to use the data's Rarity (grade) and Group (category)

convert the C# nullable into a F# option using Option.ofNullable

phlnx commented 1 year ago

@msarilar, thank you very much for your pointers. While I have a background as a developer, I haven't done much on Windows. Is there a document I can peruse with the necessary tools (ide/compiler) and the process to follow to build and test a local version? I tried going through the readme and the wiki, but I couldn't seem to find the information. Thank you for your help.

msarilar commented 1 year ago

just visual studio community edition should be fine but if you have too much trouble I'll try & do that soon don't worry

msarilar commented 1 year ago

should be good now