Common-Lisp-EVE-API-package
From EVEDev
| API Resources - Category Home - API Libraries - API Usage Examples - API Method Reference |
| Common Lisp EVE API | |
|---|---|
| Maintainer: | Psilocybe Cubensis |
| Stable release: | |
| Development release: | 0.1.1 |
| OS: | Platform independent, Common Lisp required |
| License: | MIT |
| Website: | http://eve-files.com/dl/168778 |
Contents |
[edit] Information
(I've copy & pasted Entity's Eveapi page and used it as a template for this page)
This is the first release of a Common Lisp EVE API package that interfaces with the EVE API.
Being a first release it has some glaring omissions, the major one being that access to the API information for corporations is not implemented. I simply don't have an account with that kind of access. If you want this implemented, get me a user ID, API key and send a good amount of isk my way. (Contact me first though.)
This package returns the information from the EVE API as a plist. I'm not entirely happy this and I'm trying to find a better format, but I stuck with it for this release since the software would never have been finished otherwise. I also needed a somewhat stable package since I'm using it in other Commmon Lisp software as well.
[edit] Installation
This is a Common Lisp ASDF package so you either know what to do or not. If you don't know what to do read up on ASDF packages.
[edit] Documentation
There's a little bit of documentation in the included 00-README.txt file. The functions you will be mainly interested in when using this package are in the eve-api.lisp file under the "Account Functions", "Character Functions", "EVE Functions" and "Map Functions" headers.
These functions are translations from the EVE API URLs with the camel-case words being translated as such: WalletTransactions => wallet-transactions.
Any functions in the "/eve/*" and "/map/*" spaces have got "eve-" and "map-" put in front of them respectively, f.e.: /eve/ConquerableStationList.xml.aspx is available through the function "eve-conquerable-station-list".
One more thing: most functions take the ":cache" keyword with defaults to T, meaning the cache is used. You'll have to pass it ":cache nil" to bypass the cache.
If anything is unclear, contact me and tell me what you are trying to do.
[edit] Example
The following simple example does two things.
The form below at point 1 iterates through the list of conquerable stations and prints their name and the owning corporation's name on each line.
The form at point 2 returns the skill in training API information for a certain character as a plist. The user and character IDs can be passed as either a number or a string and the API key must be passed as a string. I've you'd do a (geti result "trainingToLevel") on the result you'd get the level the skill is being training to.
(asdf:oos 'asdf:load-op :eve-api) (asdf:oos 'asdf:load-op :iterate) (use-package :eve-api) (use-package :iterate) ;; 1 (iter (for station in (eve-conquerable-station-list)) (format t "~A (~A)~%" (geti station "stationName") (geti station "corporationName"))) ;; 2 (skill-in-training <userid> "<apikey>" <charid>)

