Common-Lisp-EVE-API-package

From EVEDev
Jump to: navigation, search
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: http://eve-files.com/dl/168778

Contents

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.

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.

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.

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

Links

Personal tools