caching and ayncronous fetching zkill data
While PySpy became immediately unusable for locales with 15-20 or more in local may I ask for two enhancements in order to solve it?
First how about caching zkill data for a certain time, let's say an hour or even half a day. This will dramatically reduce the amount of requests to zkill and improve the time to show an analyzed local.
As a second feature may I ask to render the data ansyncronous? Let me explain it from a user perspective to illustrate my idea. I copy a local, PySpy kicks in and shows immediately the people from the local with a font color with 75% saturation to make them distinguishable from the final view. Then each line is beeing updated from the cache. Remaining lines are fetched from zkill line by line, Each line which has been rendered into his final state gets colored with a 100% regardless if served from the cache or from zkill.
Thanks for your feedback @chrRtg.
Regarding the cache: There already is an internal Cache which currently is not really utilised or even persistent. It should be possible to change it so that PySpy can utilise the cache and also persist the cache over application restarts. Though a cache alone won't get us back to the original scan times, since if you go hunting for example you will encounter a bunch of new characters in every system, resulting in long scantimes. For defensive scans the cache should be a very big speedup.
As for the asynchronous fetching: This would be nice to add, might require some more work though.
First we will try to make the built in cache more useful and then see if we can add asynchronous data fetching in a reasonable timeframe.
We have implemented a cache for the zkillboard data. It persists for 12h as it stands and will be available in the next release.
Cache implemented in v0.5.2 #17
Cache is working as intended, thanks for implementing it! Happy to see ansynchronous fetching soon :)