Welcome to the snoots-revived documentation!
Helpful links:
To get started making a bot with snoots:
const client = new Client({
userAgent: "<the user agent>",
creds: {
clientId: "<the client id>",
clientSecret: "<the client secret>",
},
auth: {
username: "<the reddit account username>",
password: "<the reddit account password>",
},
});
If you just want to retrieve information from the Reddit api without controlling a user account you can do that!
const client = new Client({
userAgent: "<the user agent>",
creds: {
clientId: "<the client id>",
clientSecret: "<the client secret>",
},
});
1 If you really don't want to make an application you can skip this
step and leave off the creds
parameter, but note that performing requests
without an application means you have a much lower ratelimit.
Print a comment tree to stdout.
async function printTree(cmt: Comment, indent: string = "") {
const body = cmt.body.replace(/\n/g, "\n" + indent);
console.log(`${indent}(${cmt.id}) ${cmt.author}: ${body}`);
for await (const reply of cmt.replies) {
await printTree(reply, indent + " ");
}
}
(async () => {
const comment = await client.comments.fetch("gqe92yr");
await printTree(comment);
})();
For full project examples check out the examples directory
More examples will come as snoots evolves!
There are some major differences between snoots and snoowrap. Here are some of the largest:
for await
.Post
and Comment
's author
). In
snoowrap the author
field is a user object, but in snoots it's just a
string.What does this mean in practice? Here are some examples:
Reading the title of the newest post from r/funny:
// snoowrap
const title = await client.getSubreddit("funny").getNew()[0].title;
// snoots (literal translation)
const sub = await client.subreddits.fetch("funny");
const post = await sub.getNewPosts().first();
const title = post?.title;
// snoots (preferred method, 1 fewer api call)
const post = await client.subreddits.getNewPosts("funny").first();
const title = post?.title;
Listing the authors of the currently hot posts in r/funny:
// snoowrap
const posts = await client.getSubreddit("funny").getHot().fetchAll();
for (const post of posts) {
console.log(post.author.name);
}
// snoots (literal translation)
const sub = await client.subreddits.fetch("funny");
const posts = sub.getHotPosts();
for await (const post of posts) {
console.log(p.author);
}
// snoots (preferred method, 1 fewer api call)
const posts = client.subreddits.getHotPosts("funny");
for await (const post of posts) {
console.log(p.author);
}
Generated using TypeDoc