https://github.com/auralia/node-nstg
nstg is a free and open source library that allows Node.js applications to easily send telegrams to a list of recipients defined using a powerful query language called Telegram Recipient Language.
https://github.com/auralia/node-nstg
api nationstates telegram
Last synced: 4 months ago
JSON representation
nstg is a free and open source library that allows Node.js applications to easily send telegrams to a list of recipients defined using a powerful query language called Telegram Recipient Language.
- Host: GitHub
- URL: https://github.com/auralia/node-nstg
- Owner: auralia
- License: other
- Created: 2016-11-18T06:03:38.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-12-24T14:46:49.000Z (over 8 years ago)
- Last Synced: 2025-10-06T08:42:08.116Z (9 months ago)
- Topics: api, nationstates, telegram
- Language: TypeScript
- Size: 203 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.md
Awesome Lists containing this project
README
# nstg #
[](https://badge.fury.io/js/nstg)
nstg is a free and open source library that allows Node.js applications to
easily send telegrams to a list of NationStates nations defined using a
powerful query language called Telegram Recipient Language.
nstg features the following:
* ability to send telegrams to complex sets of nations defined using TRL or to
simple lists of nations
* a continuous mode that periodically updates the recipients list with new
nations that match the provided TRL string, which is useful for recruitment
purposes
* progress reporting using event handlers
* all the features of nsapi, including rate-limiting, XML decoding, request
caching, and support for version 9 of the NationStates API
## Usage ##
You can install nstg using npm: `npm install nstg`.
You can also build nstg from source using Gulp. There are two main targets:
`prod` and `dev`. The only difference between them is that `dev` includes
source maps. There is also a `docs` target to generate documentation.
Consult [the documentation](https://auralia.github.io/node-nstg/)
for more information on API structure and methods, or
[this page](https://github.com/auralia/node-nstg/blob/master/trl.md)
for more information on TRL.
nstg targets ES5 but requires support for ES6 promises, so if you're not
using a runtime that supports them natively, you'll have to use a polyfill.
## Examples ##
The following is a simple example that sends a telegram to the nation Auralia:
```js
var nsapi = require("nsapi");
var nstg = require("nstg");
// TODO: Replace client key, telegram ID and telegram secret key with your own
var clientKey = "";
var telegramId = "";
var telegramKey = "";
// TODO: Replace the user agent with your own
var api = new nsapi.NsApi("");
var tgapi = new nstg.NsTgApi(api, clientKey);
tgapi.onJobStart = function() {
console.log("Started sending telegrams.");
};
tgapi.onTgSuccess = function(recipient) {
console.log("Recipient succeeded: " + recipient.nation);
};
tgapi.onTgFailure = function(recipient) {
console.log("Recipient failed: " + recipient.nation);
console.log(recipient.status.err);
};
tgapi.onJobComplete = function() {
console.log("Finished sending telegrams.");
tgapi.cleanup();
api.cleanup();
};
tgapi.sendTelegramsTrl("nations [Auralia];", {
telegramId: telegramId,
telegramKey: telegramKey,
telegramType: nsapi.TelegramType.NonRecruitment,
doNotSendIfRecruitBlocked: false,
doNotSendIfCampaignBlocked: false
}).then(function(id) {
console.log("Job ID: " + id);
}).catch(function(err) {
console.log(err);
});
```
See examples/example.js for other examples on how to use nstg.
## License ##
nstg is licensed under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0).