Skip to content

The PS2 Census Client is a tool to simplify the interaction with the Planetside 2 Census API.

License

Notifications You must be signed in to change notification settings

microwavekonijn/ps2census

Repository files navigation

PS2 Census Library

CI npm version downloads Dependencies GitHub

About

The PS2 Census library is here to simplify the interaction with the Planetside 2 Census API for Javascript and Typescript projects.

Requirements

Event Stream

  • Node.js v12+ or any modern browser with WebSocket support;
  • DBG Census API Service ID.

Rest API

  • ES6;
  • DBG Census API Service ID(optional, but recommended).

Installation

npm install ps2census

For better performance it is recommended to install bufferutil and utf-8-validate, though this is optional. The --save-optional flag can be used to install them as optionalDependencies.

Getting started

Event Stream

const { CensusClient } = require('ps2census');

const subscriptions = {
  worlds: ['10'],
  eventNames: ['MetagameEvent'],
};

const client = new CensusClient('ServiceID', 'ps2', {
  streamManager: {
    subscription: subscriptions,
  },
});

client.on('ps2Event', event => {
  // Handle the event, for more information see http://census.daybreakgames.com/#websocket-details
});
// or
client.on('facilityControl', event => {
}); // Note that the event always starts with a lower case letter

client.on('subscribed', subscription => {
}); // Notification of a subscription made by the event stream
client.on('duplicate', event => {
}); // When a duplicate event has been received
client.on('ready', () => {
}); // Client is ready
client.on('reconnecting', () => {
}); // Client is reconnecting
client.on('disconnected', () => {
}); // Client got disconnected
client.on('error', error => {
}); // Error
client.on('warn', error => {
}); // Error, when receiving a corrupt message

client.watch();

// To terminate the client
client.destroy();

Rest API

const { Rest } = require('ps2census');

const client = new Rest.Client('ps2ps4eu', { serviceId: 'example' });

// Get character with items
client
  .getQueryBuilder('character')
  .resolve('item')
  .exactMatchFirst(true)
  .get({ 'name.first_lower': '^microwave' })
  .then(characters => {
    // Process the data
  });

Nanite Systems ESS

With the Census ESS being having some issues the NS ESS has made its entrance. Basic usage with Typescript:

new CensusClient('serviceid', 'ps2', {
  streamManager: {
    endpoint: 'wss://push.nanite-systems.net/streaming',
  },
});
// or
new CensusClient('serviceid', 'all' as any, {
  streamManager: {
    endpoint: 'wss://push.nanite-systems.net/streaming',
  },
});

Documentation

Contribution

Please make sure not to create duplicate issues. When making a PR make sure to check if eslint doesn't report any problems.

Disclaimer

The PS2 Census Library comes with no warranties. This software is as is and usage is at the developer/users own discretion.