npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

teamspeak-async

v1.2.2

Published

Use Teamspeak ServerQuery from Node

Downloads

11

Readme

Teamspeak-Async

A library to interface the ServerQuery protocol on your Teamspeak Server.

NPM

Usage

Targets Node >= 7.6 and uses async/await. Transpile with Babel for older versions.

If provided with user and password, it will automatically authenticate on the server, and unless specified otherwise, it will use 1 and register for server notifications. This default is sensible for most users, but if you want to use another server, you can pass the option not to, same goes for registering for server notifications.

/* If using Babel, you can of course import it instead */
const TeamSpeakClient = require('teamspeak-async').TeamSpeakClient
const client = new TeamSpeakClient({host: 'example.com'})

async function getClientNames(){
	let clients = await client.send('clientlist')
	return clients.map(client => return client.client_nickname)
}

/* Print names of everyone online */
getClientNames()
  .then(names => {
    names.map(name => console.log(name))
  })

/* Make everyone online hate you */
client.send('clientlist').then(clients => {
  clients.map(user => client.send('clientpoke', {clid:user.clid, msg:`Hello ${user.client_nickname}`}))
})

I recommend using the module config, that enables a project-global, config, with many great features like JSON5 support and different environments.

/* config example */
const config = require('config')
const TeamSpeakClient = require('teamspeak-async').TeamSpeakClient
const client = new TeamSpeakClient(config.teamspeak) /* or: config.get('teamspeak') */

Options:

  • host: IP or Hostname for Teamspeak server - required
  • port: Port for ServerQuery, default 10011 - optional
  • user: Username to authenticate with - optional
  • password: Password to authenticate with - optional
  • server: Server ID to select, default 1 - optional
  • disableUse: Disables automatically using server, default false - optional
  • disableRegister: Disables registering for server notifications, default false - optional

Methods:

  • send(command, params) Send a request to the ServerQuery
  • authenticate(user, password) Authenticate on your server
  • register(event) Registers for an event
  • use(server) Use a particular server

Contributions

Feel free to contribute to this repo. Just send a PR.

TODO:
Webpack instead of Babel, with uglify et al.
Unit tests with AVA
Linting with XO

Development

Clone repository and run npm install in directory.

To build run npm run build

Development requires at least npm@4, but I highly recommend npm@5 for a lot faster npm experience.

Debug

Teamspeak-async uses the debug module, to display extensive debug information. To enable it set TeamSpeakClient as target for the debug env variable before running your application

  • windows: set DEBUG=TeamSpeakClient
  • linux/mac: DEBUG=TeamSpeakClient npm start

Acknowledgements

Parsing of lines largely based on xbenjii/Teamspeak, the module that inspired me to create a modernised async Teamspeak ServerQuery client.

class Queue based on Queue.js by Stephen Morley