snoostream

1.0.1 • Public • Published

SnooStream

An event based wrapper for getting new comments and submissions from Snoowrap.

Features

  • Can filter new posts via regex.
  • Remove post duplicates returned from Reddit.
  • Accounts for drift between system time and Reddit server time.

Installation

npm install snoostream

Usage

How to initialize

const SnooStream = require('snoostream');
 
let snooStream = SnooStream({
  ... // This is all Snoowrap configuration
});

OR

const SnooStream = require('snoostream');
const Snoowrap = require('snoowrap');
 
let snooWrap = new Snoowrap({
  ... // This is all Snoowrap configuration
});
 
let snooStream = SnooStream(snooWrap);

SnooStream(options[, drift])

SnooStream(Snoowrap[, drift])

  • options Snoowrap configuration
  • Snoowrap A Snoowrap object
  • drift the number of seconds system time is ahead of Reddit server time. Usually not needed.

Create a Comment Stream

let commentStream = snooStream.commentStream('all');
// Or if you want to match with a specific regex
let commentStream = snooStream.commentStream('all', { regex: /abc/ });
 
commentStream.on('post', (post, match) => {
  ... // post is returned directly from Snoowrap
  ... // match contains the groups matched by regex
});

snooStream.commentStream(subreddit[, options])

  • subreddit the subreddit to poll for new comments. Default is 'all'.
  • options.regex Will only emit posts that match the provided regex
  • options.rate Rate at which to poll Reddit. Default is 1000 ms.
  • options.* Any additional options that would apply to Snoowrap.getNewComments() such as limit which limits the amount of comments fetched every call.

Create a Submission Stream

let submissionStream = snooStream.submissionStream('all');
// Or if you want to match with a specific regex
let submissionStream = snooStream.submissionStream('all', { regex: /abc/ });
 
submissionStream.on('post', (post, match) => {
  ... // post is returned directly from Snoowrap
  ... // match contains the groups matched by regex
});

snooStream.submissionStream(subreddit[, options])

  • subreddit the subreddit to poll for new submissions. Default is 'all'.
  • options.regex Will only emit posts that match the provided regex
  • options.rate Rate at which to poll Reddit. Default is 1000 ms.
  • options.* Any additional options that would apply to Snoowrap.getNew() such as limit which limits the amount of comments fetched every call.

Package Sidebar

Install

npm i snoostream

Weekly Downloads

4

Version

1.0.1

License

MIT

Last publish

Collaborators

  • lobabob