jovon / eve-xmlapi-ts

0 stars 0 forks source link

Eve-XMLAPI-TS

A Node.js package for fetching data from Eve Online's XML API.

Installing

npm install eve-xmlapi

Usage

var Eve = require('eve-xmlapi')
var eve = new Eve()

// Set your own User-Agent
eve.setUserAgent('eve-xmlapi-node/0.0.1 (git://github.com/jovon/eve-xmlapi-node.git)')

eve.setHost('api.testeveonline.com')// Default: 'api.eveonline.com'
eve.setApiKey({keyID: '', vCode: ''})

// With a callback
eve.serverStatus.fetch(function(err, data) {
    console.log(data)
})

// With a promise, add 'P' to the end of fetch.
eve.serverStatus.fetchP().then(function(data) {
    console.log(data)
}).catch(function(e){
    console.log(e)
})

// Set a cache: file, redis, or memory by default.  
// 'prefix' will be added to the beginning of each file.
eve.setCache('file', {path: '/tmp', prefix: ''}) 
//These 'path' and 'prefix' settings are default options and unnecessary.

    OR      
eve.setCache('redis', {port: 6379, host: '127.0.0.1'})  
//These 'port' and 'host' settings are default options and unnecessary

// If you don't like the format of the return JSON...   
//  Change all JSON responses
eve.transformAllResponses = function(resp){
    var results = {};
    results.eveapi = resp.eveapi.$
    results.cachedUntil = resp.eveapi.cachedUntil[0]
    results.currentTime = resp.eveapi.currentTime[0]
    if(resp.eveapi.result) results.result = resp.eveapi.result[0]
    return results
}

// Change a single resource's response
eve.serverStatus.transformResponseData = function(resp){
    resp.result.serverOpen = resp.result.serverOpen[0]
    resp.result.onlinePlayers = resp.result.onlinePlayers[0]
    return resp
}

// Important to note if you've used 'setApiKey', putting the keyID 
// and vCode into the parameters will override it.
eve.accountStatus.fetch({keyID: '123', vCode: '12345'}, callback)
eve.apiKeyInfo.fetch({keyID: '123', vCode: '12345'}, callback)
eve.blueprints.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)
eve.calendarEventAttendees.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, callback)      
eve.callList.fetch({keyID: '123', vCode: '12345'}, callback)
eve.characterAffiliation.fetch({ids: ['123', '321']}, callback)
eve.characterInfo.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)
eve.characterName.fetch({ids: ['123', '321']}, callback)
eve.characterID.fetch({names: ['CCP FoxFour', 'CCP Tellus']}, callback) 
eve.characters.fetch({keyID: '123', vCode: '12345'}, callback)  
eve.characterSheet.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, callback)  
eve.chatChannels.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, callback)
eve.contactList.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, callback)
eve.contactNotifications.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, callback)
eve.contractBids.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)
eve.contractItems.fetch({keyID: '1234', vCode: '12345', characterID: '123', 
    contractID: '123'}, callback)
eve.contracts.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback) //contractID is optional  
eve.facWarStats.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)
eve.mailingLists.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)
eve.mailMessages.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)       
eve.marketOrders.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback) // characterID and orderID optional
eve.skillQueue.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, callback)
eve.upcomingCalendarEvents.fetch({keyID: '1234', vCode: '12345',
    characterID: '123'}, callback)  

// char resources with matching corp resources that start with char
eve.charAccountBalance.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, 
    callback)
eve.charAssetList.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)
eve.charBookmarks.fetch({keyID: '1234', vCode: '12345', characterID: '123'}, 
    callback)       
eve.charWalletJournal.fetch({keyID: '1234', vCode: '12345',
    characterID: '123'}, 
    callback)// accountKey, fromID and rowCount are optional        
eve.charWalletTransactions.fetch({keyID: '1234', vCode: '12345',
    characterID: '123'},
    callback)// accountKey, fromID and rowCount are optional

// corp resources
eve.corpAccountBalance.fetch({keyID: '1234', vCode: '12345', 
    characterID: '123'}, callback)
eve.corpBookmarks.fetch({keyID: '1234', vCode: '12345', characterID: '123'},
    callback)
eve.corpWalletJournal.fetch({keyID: '1234', vCode: '12345',
    characterID: '123', accountKey: '1002'},
    callback)// fromID and rowCount are optional
eve.corpWalletTransactions.fetch({keyID: '1234', vCode: '12345',
    characterID: '123', accountKey:'1001'},
    callback)// fromID and rowCount are optional

eve.allianceList.fetch(callback)
eve.conquerableStationList.fetch(callback)
eve.errorList.fetch(callback)
eve.refTypes.fetch(callback)
eve.typeName.fetch(callback)
eve.facWarSystems.fetch(callback)
eve.jumps.fetch(callback)
eve.kills.fetch(callback)
eve.sovereignty.fetch(callback)
eve.serverStatus.fetch(callback)

Development

git clone https://github.com/jovon/eve-xmlapi-ts.git

cd eve-xmlapi-ts

npm install

tsd install

Eve-xmlapi-node is written with Typescript 1.7.3.