Eveapi
From EVEDev
| API Resources - Category Home - API Libraries - API Usage Examples - API Method Reference |
| eveapi | |
|---|---|
| Maintainer: | Entity |
| Stable release: | 1.0.7 |
| Development release: | |
| OS: | Platform independent, Python 2.4+ required |
| License: | MIT |
| Website: | http://home.wanadoo.nl/ntt/eve/library/ |
Contents |
[edit] Description
This Python EVE API wrapper is designed to have minimal knowledge of the actual methods and content the API provides, to make it somewhat future-proof. It de-serializes the XML responses into useful python objects which can be easily accessed and manipulated. Usage of the library is very easy and natural.
[edit] Installation
Copy the eveapi.py into your Python installation's site-packages folder, or just keep it in your project folder.
[edit] Documentation
No documentation available, but the eveapi.py module and the accompanying apitest.py are well commented and explain most if not all functionality. Additionally, the apitest.py is structured like a tutorial.
[edit] Example
The following is a simple example that reports how much time you have left on the skill training of your character(s). (It obviously requires the eveapi.py module installed).
For a more thorough and sophisticated example, please look at the apitest.py file on the project website.
import eveapi watchList = [ [USERID1, APIKEY1, "Entity"], [USERID2, APIKEY2, "NAME2"], # add data for your characters here ] api = eveapi.EVEAPIConnection() for u, a, name in watchList: # check the characters on this account for the specified character. name = name.lower() result = api.account.Characters(userID=u, apiKey=a) for c in result.characters: if c.name.lower() == name: name = c.name break else: print "%12s: Error - Not found on account" % name continue # get the current skill in training for this character result = api.char.SkillInTraining(userID=u, apiKey=a, characterID=c.characterID) if result.skillInTraining: # following assumes the result object's timestamp equals TQ's actual time. timeLeft = result.trainingEndTime - result._meta.currentTime if timeLeft < 0: complete = True timeLeft = -timeLeft else: complete = False # make a nice formatted time string s = timeLeft % 60 m = (timeLeft/60) % 60 h = (timeLeft/3600) % 24 d = (timeLeft/86400) timeString = "%2dd %2dh %2dm %2ds" % (d, h, m, s) if complete: print "%12s: TRAINING COMPLETE (%s ago)" % (name, timeString) else: print "%12s: %s" % (name, timeString) else: print "%12s: NOT TRAINING" % name

