evewspace / eve-wspace

Wormhole mapping and corporation management for Eve Online.
Apache License 2.0
86 stars 51 forks source link

Active Pilots List #266

Open EvilGrinUK opened 7 years ago

EvilGrinUK commented 7 years ago

Post CREST / ESI integration ( see #162 ) the 'Active Pilots' list is inaccurate. It will list a pilot as active when they are also docked or offline. Which obviously isn't true.

To check for docked pilots check if the structure_id or station_id optional field is returned in the ESI location API request. If they are present then it means the pilot is not in space and should not be displayed as being active. It could be possible to look up the structure / station IDs and display them as docked (and where they are docked) instead.

The ESI location API still returns a valid location if the pilot isn't even logged into the game and places them in the Active Pilots List. However the CREST location API does not return any data if the pilot is offline. Thus a CREST location API check needs to be done to find out if a pilot is online or not

Maarten28 commented 7 years ago

Even when you are logged off in space you get that person on the active pilot list. There is a feature request on the ESI github to cover this in the future. I might take out people who are docked as a temp solution.

So once again -ccp-.

EvilGrinUK commented 7 years ago

If you have been in space then dock, your active pilot status isn't removed.

Maarten28 commented 7 years ago

It is after 5 min. :)

EvilGrinUK commented 7 years ago

Oh in the state_locations celery job. I see! I guess I just wasn't being patient enough. :)

Maarten28 commented 7 years ago

It was a quick fix, the caching of 5 min should also be handled differently when ESI is more stable. It could probably go down to 1 minute (just in case it fails one of the tasks).

EvilGrinUK commented 7 years ago

If you have mapped out a high sec system (eg our home wormhole has a B274 Static) then if you dock up in a station in that mapped high sec system then you don't get removed from the active pilots list. This is because the ESI API doesn't return a structure_id for this situation. It returns a station_id instead.

{
  "solar_system_id": 30001650,
  "station_id": 60009298
}
Maarten28 commented 7 years ago

Fixed (in the CREST branch).