Common-Lisp-EVE-API-package

From EVEDev

Jump to: navigation, search
Image:Api.pngAPI 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:

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>)

[edit] Links

Personal tools