Pyfa: Skills aren't being updated from SSO

Created on 10 Jun 2019  路  8Comments  路  Source: pyfa-org/Pyfa

Bug Report

ESI refresh doesn't get up-to-date skill information

Expected behavior:

It should be getting accurate data

Actual behavior:

It's either getting old data or just not getting new data, but saying it did so successful

Detailed steps to reproduce:

Skills were already out-of-date (2-3 days behind) -- Removed the ESI/characters and re-added and it pulled the skills the same way (out of date). Removed all of them, uninstalled and re-installed, re-added, still show a few days old.

Fits involved in EFT format (Edit > To Clipboard > EFT):

Fits don't seem to matter (skill-specific)

Release or development git branch? Please note the release version or commit hash:

2.9.4

Operating system and version (eg: Windows 10, OS X 10.9, OS X 10.11, Ubuntu 16.10):

Windows 10 (latest)

bug esi upstream

Most helpful comment

Happy 2000'th issue! :confetti_ball:

Have you logged into the game client on this character since this started? Skill queues aren't evaluated by the server until the character is logged in.

All 8 comments

Potentially resolved (not the issue, but symptom). Here are the steps while diagnosing:

Got the CharacterID and AccessToken from saveddata.db and plugged them into Swagger UI: Still pulled old skills (~2 days of training behind)

Authorized Swagger UI and pulled skills using its built-in access: Pulled correct skill data

Logged out, refreshed Pyfa and got new AccessToken, plugged them into Swagger UI: Pulled correct skill data

I opened Pyfa on multiple machines (all Windows 10) in different parts of the country and all were pulling the old data, but now all pull up-to-date information.

As it turns out, it's ESI issue. However, as EVEMon fetches skills properly, keeping it open - maybe it uses some workaround we could implement too.

From slack on june 12th:

Heyo

having the same thing as yesterday
Pyfa and the Swagger UI are behind...EVEMon is up to date lol
the former 2 say I only have Shield Management 3 completed on one of my characters, in the game and in EVEMon I have 4 completed
what I mean by that is using Pyfa's accessToken and then authorizing and using the Swagger UI's built-in accessToken has the same effect...and both are old
nothing in the json I have except the skill info

So it's not restricted to just pyfa token maybe since old data was for both pyfa and swagger ui

I might create a new character on an account and try to reproduce myself by training some quick skills.

Happy 2000'th issue! :confetti_ball:

Have you logged into the game client on this character since this started? Skill queues aren't evaluated by the server until the character is logged in.

@hotleadsingerguy CCP Bartender confirmed that skills from ESI do not update until you've logged in. So, if you set a skill queue to work on 5 skills, then let it sit for the reported two days without logging in, pyfa would not have gotten the updated skills.

I'm not sure if you remember if you logged in between using pyfas token and using Swagger UI's token, but if you did, that would explain the reason why pyfa showed old data and swagger's showed new. and then why pyfa then showed new data when trying again

Additionally, this would also explain why the second time, both tokens showed old data, if you didn't log into the game.

To address EVEMon showing correct skills - they are probably utilizing the skill queue endpoint, as well as tracking when the character has last logged in, to determine when skills are completed / when skills api is updated. For example, if you set up a skill queue, and didn't log in for two days, EVEMon can then assume that all the skills that were in the queue have completed (since you haven't logged in to change the queue), and thus don't need to reach out to the skills API. pyfa is not this smart (partly because I've never considered this to be a thing lol).

@peterhaneve can speak more to how EVEMon works and if my assumptions above are correct.

If all this is the case, then there may be an opportunity for pyfa to do something similar - track skill queue and last logged in time. However, unsure what time commitment something like this would require, and it seems like a fairly niche issue.

To address EVEMon showing correct skills - they are probably utilizing the skill queue endpoint, as well as tracking when the character has last logged in, to determine when skills are completed / when skills api is updated.

Almost certainly. All of the information that is required to predict what skills the player will have when they log in are available between the skills and skill queue endpoints, it's simply necessary to do a little maths and calculate when skills will finish training.

Considering skill queue endpoint returns training completion date, it should be easy, but it'll rely on local time being correct. Also, we will need more privileges.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

MarHelmer picture MarHelmer  路  9Comments

ArtificialQualia picture ArtificialQualia  路  7Comments

Seavert picture Seavert  路  5Comments

kshannoninnes picture kshannoninnes  路  10Comments

GoldenCoins picture GoldenCoins  路  10Comments