0.1.6 • Published 9 years ago

ealjs v0.1.6

Weekly downloads
5
License
MIT
Repository
github
Last release
9 years ago

EAL.js

EAL.js is a Node.js library for EVE Online API.

Requirements

Node.js v0.10+

Installation

$ npm install ealjs

Usage

Quick Start

Get server status:

var eveapi = require('ealjs');
var srv = eveapi.server();

srv.get('serverstatus', function(err, result) {
    if (! err)
        console.dir(result);
});

Get information about API key:

var keyid = 1234567
var vcode = "qwertyuiop"
var apiKey = eveapi.key(keyID, vCode);

apiKey.get('apikeyinfo', function(err, result) {
    // ...
})

Get mail bodies by given ids:

var char = eveapi.char(keyID, vCode, characterID);

char.get('mailbodies', {ids: [345676097, 332636164]},  function(err, result) {
    // ...
});

Scopes

Server

Includes all API functions that don't need authentication by keyID and vCode, such as 'serverstatus', public 'characterinfo', character id to name conversion.

var srv = eveapi.server();

Key

Information about API key ('apikeyinfo' and 'accountstatus').

var key = eveapi.key(keyid, vcode);

Char

Character functions ('characterinfo', 'charactersheet', 'mailmessages', 'mailbodies')

var char = eveapi.char(keyid, vcode, characterid[, accessmask]);

Note: if you don't set access mask, access check will be disabled.

Corp

Corporation functions ('corporationsheet', 'outpostlist')

var corp = eveapi.corp(keyid, vcode[, accessmask]);

Note: if you don't set access mask, access check will be disabled.

Methods:

Note: Each <rowset> field in received XML will be named as it's "name" attribute.

Quick example

var param = {
    rowcount: 250
}

char.get('walletjournal', param, callback);

Detailed example

var eveapi  = require('ealjs');
var apiKey = eveapi.key(keyid, vcode);
apiKey.get('apikeyinfo', callback);

Example XML of the response:

<eveapi version="2">
    <currentTime>2015-02-19 12:08:08</currentTime>
    <result>
        <key accessMask="268435455" type="Account" expires="">
            <rowset name="characters" key="characterID" columns="characterID,characterName,corporationID,corporationName,allianceID,allianceName,factionID,factionName">
                <row characterID="94681458" characterName="Gallente Citizen 013241" corporationID="1001176" corporationName="Flying dummies" allianceID="0" allianceName="" factionID="0" factionName=""/>
                <row characterID="477311614" characterName="Caldari Citizen 24190" corporationID="98169130" corporationName="Corpname" allianceID="0" allianceName="" factionID="0" factionName=""/>
            </rowset>
        </key>
    </result>
    <cachedUntil>2015-02-19 12:13:02</cachedUntil>
</eveapi>

result will be:

{ type: 'apikeyinfo',  // name of the API function
  data: 
      { type: 'Account',
        accessMask: '268435455',
        expires: 'never',
        cachedUntil: '2015-02-19 12:13:02',
        characters: [ 
            { characterID: '94681458',
              characterName: 'Gallente Citizen 013241',
              corporationID: '1001176',
              corporationName: 'Flying dummies',
              allianceID: '0',
              allianceName: '',
              factionID: '0',
              factionName: '' },
            { characterID: '477311614',
              characterName: 'Caldari Citizen 24190',
              corporationID: '98169130',
              corporationName: 'Corpname',
              allianceID: '0',
              allianceName: '',
              factionID: '0',
              factionName: '' } ] },
    param: // call parameters
      { keyid: '3412784',
        vcode: 'qwertyuiop' } }

Property named apikeyinfo will be added to the apiKey. Other words, you can access result.data as apiKey.apikeyinfo

console.dir(apiKey.apikeyinfo)
// see result.data above

Example 1

var apiKey = eveapi.key(keyid, vcode);
console.dir(apiKey.access(268435455));
/* [ 134217728, 67108864, 33554432, 16777216, 8388608, 4194304, 2097152, 1048576, 524288, 262144, 131072, 65536, 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1 ] */

Example 2

var apiKey = eveapi.key(keyid, vcode);
console.dir(apiKey.access(268435455, true));
/* [ 'accountstatus' ] */

Example 3

var char = eveapi.char(keyid, vcode, characterid);
console.dir(char.access(268435455, true));
/* [ 'accountstatus', 'accountbalance', 'assetlist', 'blueprints', 'calendareventattendees', 'characterinfo', 'charactersheet', 'contactlist', 'contactnotifications', 'contractbids', 'contractitems', 'contracts', 'facwarstats', 'industryjobs', 'industryjobshistory', 'killmails', 'locations', 'mailbodies', 'mailinglists', 'mailmessages', 'marketorders', 'medals', 'notifications', 'notificationtexts', 'planetarycolonies', 'planetarylinks', 'planetarypins', 'planetaryroutes', 'research', 'skillintraining', 'skillqueue', 'standings', 'upcomingcalendarevents', 'walletjournal', 'wallettransactions' ] */
  • apiType - name of the API function (see New Eden Development or config/config.js in the module folder).
  • mask - provide custom access mask if you want. Else accessMask property will be used (if it doesn't exist, method will return true).

Example

// apikey.accessMask = 268435455;
console.dir(apiKey.hasAccess('mailmessages'));
// true

console.dir(apiKey.hasAccess('mailmessages', 1));
// false
0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago