JavaScript wrapper library for Pushshift with Snoowrap support.
npm i -S snooshift
import { SnooShift } from "snooshift";
// create new object
const snoo = new SnooShift();
// search parameters
// https://github.com/pushshift/api#search-parameters-for-comments
// search comments by author
const searchParams = {
author: "eben0",
};
// send request
snoo.searchComments(searchParams).then((comments) => {
console.log(comments);
});
// get single comment by id
snoo.getComment("gof4uys").then((comment) => {
console.log(comment);
});
// search parameters
// https://github.com/pushshift/api#search-parameters-for-submissions
// search submissions by author
const searchParams = {
author: "eben0",
};
snoo.searchSubmissions(searchParams).then((comments) => {
console.log(comments);
});
// get single submission by id
snoo.searchSubmissions("lrufxe").then((submission) => {
console.log(submission);
});
You can reply, upvote and interact with reddit using Snoowrap
object.
You must set up your reddit api credentials to do so.
import { SnooShift } from "snooshift";
// list of supported credentials:
// https://github.com/not-an-aardvark/snoowrap#examples
const credentials = {
userAgent: "put your user-agent string here",
clientId: "put your client id here",
clientSecret: "put your client secret here",
refreshToken: "put your refresh token here",
};
const snoo = new SnooShift(credentials);
// get comment and reply/upvote/etc...
snoo.getComment("gof4uys").then((comment) => {
comment.reply("My awesome reply").then(value);
comment.upvote().then(value);
comment.delete().then(value);
});
You can directly query the elasticsearch server if you are familiar with syntax.
import { SnooShift } from "snooshift";
const snoo = new SnooShift();
// elasticsearch query
// this query searches for all author's data ordered by created_utc
const query = {
query: {
term: { author: "eben0" },
},
sort: {
created_utc: "desc",
}
};
// searches for author's comments
snoo.elasticComments(query).then((result) => {
console.log(result.hits.hits[0]._source);
});
// searches for author's submissions
snoo.elasticSubmissions(query).then((result) => {
console.log(result.hits.hits[0]._source);
});