These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

crestmarket: Library and scanner for CREST market order endpoints (Go)

First post
Author
Kaladr
Viziam
Amarr Empire
#1 - 2014-12-11 00:11:02 UTC  |  Edited by: Kaladr
(Promoting this to its own thread since the endpoints are live on TQ)

crestmarket - A go based library and reference applications for talking to CREST for market orders (and maybe more!)


  • License: Apache 2.0
  • Language: Go
  • Handles OAuth2 flow and basic token persistence (file) for you
  • Navigates CREST, depaginates data, and gives you complete representations for orders on the market.
  • Conversions to the Unified Uploader JSON format (EMDR / EVE-Central)
  • Reference scanner application which, depending on network conditions, is capable of several hundred+ RPS fetch, convert, and POST to another sink on a single core.
  • A Proxy server toy so you can navigate CREST without worrying about OAuth2 in your application (for debugging mostly)


Available on GitHub:

https://github.com/theatrus/crestmarket

Pull requests accepted :-)

Creator of EVE-Central.com, the longest running EVE Market Aggregator

CCP FoxFour
C C P
C C P Alliance
#2 - 2014-12-11 04:53:04 UTC  |  Edited by: CCP FoxFour
:D Thanks for including things such as monitoring the X-Deprecated header. :)

You may want to include some kind of region black list for the scanner though, or white list. There are 31 WH regions that while they have a market, don't have any stations to use the market. The only WH region with a useful market is the one with Thera.

For my test script internally for testing the market stuff the black list I created was a list of names. However in the future, read ASAP in the new year, the Regions collection will be improved to offer filtering by ID. At that point the black list can be made of IDs instead of names.

Edit: Ah, never mind. I am a dumb ass. You have a region filter, doing it by ID. Sorry! It's to early in the morning.
Edit: Wait... you create a filteredRegions list, but you don't seem to use it... or do I not understand Go that badly?

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

Kaladr
Viziam
Amarr Empire
#3 - 2014-12-11 05:14:45 UTC
CCP FoxFour wrote:

Edit: Ah, never mind. I am a dumb ass. You have a region filter, doing it by ID. Sorry! It's to early in the morning.
Edit: Wait... you create a filteredRegions list, but you don't seem to use it... or do I not understand Go that badly?


It works because of how Go slices work - its totally unclear though so I'll actually fix it.

Go is full of leaky abstractions like this, which is pretty annoying. At least its iteration cycle is fast (compared to Scala)

https://github.com/golang/go/wiki/SliceTricks

Creator of EVE-Central.com, the longest running EVE Market Aggregator