ps2census

Client to connect to the PS2 Event Stream websocket.

Usage no npm install needed!

<script type="module">
  import ps2census from 'https://cdn.skypack.dev/ps2census';
</script>

README

PS2 Census Library

CI npm version David DM Badge

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+;
  • 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 {RestClient} = require('ps2census');

const client = new RestClient({serviceId: 'example'});

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

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.

Support

https://discord.gg/Pv48tERQyX

Disclaimer

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