Wishlist performance and request optimizations
appdata_on_wishlist()
makes one request for each game on your wishlist.game on your wishlist.
add_wishlist_total()
Makes a bundle of all the app id's and uses this.
This is highly inefficient, Enhanced_Steam could just request all the data once and then use it, between the different functions.
Would also help a lot on issue #525, especially with big wishlist.
While I agree this could be made more efficient, it's worth noting that add_wishlist_total() will fail if the user's wishlist contains more than 100 games. This is due to batching these requests together, it seems Steam's API can't handle over 100 appids.
So if we were going to combine these calls, we may need to split them out into groups of 100 apps or less in each call, combine the results, and display the relevant data.
Make me think that a data layer of some sort would be nice, for controlling limits and cache data.
Something like Backbones models and collections, but a little more smart.
While I've submitted a pull request for what I feel would help fix this issue, I want to take what @Saturate said and fill it out with some code.
I've created the following Gist which shows what I think is a good way to implement a data access layer (in a separate file) along with how to move any UI manipulation out of the data layer.
Ideally, the data layer should hide the get_http and get_http_bulk functions and only expose the concrete contextual functions, but you could expose them temporarily until all existing code is changed.
Sorry for submitting two commits and then bothering you guys with this comment. ES is a tool I use almost daily and frankly, I've been a bit bored the past couple of days. :)
How about using http://amplifyjs.com/? I think this could help a lot with sharing data and it also comes with pub/sub!
So, Enhanced Steam is discontinued. There is now Augmented Steam. Perhaps your requested feature/bugfix is already implemented there! If not, you could move your issue there.