Socket
Socket
Sign inDemoInstall

snoots-revived

Package Overview
Dependencies
5
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    snoots-revived

A modern, fully-featured, strongly-typed reddit api.


Version published
Weekly downloads
4
decreased by-69.23%
Maintainers
1
Created
Weekly downloads
 

Changelog

Source

1.0.0-dev.1 (2024-03-11)

⚠ BREAKING CHANGES

  • Client.users.fetchMe() is now Client.me.fetch().
  • getRandomPost() replace with getRandomPostId().
  • Removed the following methods from Subreddit and SubredditControls pending finding a way to make them work:
  • getContributors()
  • getWikiContributors()
  • getMutedUsers()
  • getWikibannedUsers()
  • getModerators()
  • getBannedUsers()
  • Renamed type Capcha -> Captcha (fixed typo).
  • Post.thumbnailHeight and Post.thumbnailWidth have been temporarily removed. They were not yet supposed to be exposed, but they slipped through the cracks.
  • There is no longer a default export. If you are using TypeScript or ESM switch from using import Client from "snoots" to using import { Client } from "snoots". If you are using CommonJS switch from const Client = require("snoots") to const { Client } = require("snoots"), or to const Client = require("snoots").Client.
  • All internal usages of null have been replaced with undefined. This includes mapping null to undefined in Reddit's API responses. If you were checking any values for existence with === null you should replace that check with === undefined (or == null or == undefined).
  • Client.authFromCode() has been replaced with Client.fromAuthCode().
  • Client.getAuthUrl() has been renamed to Client.makeAuthUrl().
  • This renames Listing.each to Listing.forEach, and it is now no longer the preferred method of iteration. Instead you should probably use for await loops.

Features

  • add a base data object (74637d8)
  • add a function to approve an item (11cde28)
  • add a function to distinguish a comment (e4c681f)
  • add a function to update the client's token (3964f7a)
  • add a helper function for crossposting (19b7fc5)
  • add a helper to check if any items match (3f9403d)
  • add a helper to get the first item from a Listing (61e8e35)
  • add a method to (re)authorize a client (d86550d)
  • add a method to get the approved contributors in a subreddit (c1edba2), closes #49
  • add a method to remove an item (6e77a74)
  • add a way to execute a function on each page of a listing (313c4af)
  • add a way to get banned users (de2f41b)
  • add a way to get muted users (f4d9500)
  • add a way to get subreddit contributors (b0f7cef), closes #49
  • add a way to get the approved wiki contributors for a subreddit (aaf06e7)
  • add a way to get the last-known rate limit status for a client (20f285f)
  • add a way to get the list of moderators (7cad99f)
  • add a way to get the list of moderators in a subreddit (8e1fea9)
  • add a way to get the refresh token (e55b9e2)
  • add a way to get the users banned from a subreddit (85831df)
  • add a way to get wiki contributors (03ab9ef)
  • add a way to get wikibanned users (7e4e603)
  • add a way to manage wikibanned users in a subreddit (8abe658)
  • add a way to post a gallery (481b5b8)
  • add a way to post a video (964b934)
  • add a way to post image (0ff7bd1)
  • add a way to reply to content (f5cbf7e)
  • add a way to search posts (00c48ec)
  • add banNote (6892f44)
  • add base listing implementation (90b8f2a)
  • add base type for votable objects (2da716c)
  • add blockAuthor() (58feff1)
  • add client-authorized api wrapper (22c7f87)
  • add Client.getAuthorizedScopes() (1cdcac2), closes #43
  • add controls for interacting with comments (6f7b81e)
  • add controls for interacting with voteable objects (8c08cbc)
  • add controls to managing muted users in a subreddit (d057dc0)
  • add core api wrapper (75fbc27)
  • add debug logging for rate limit status (7ef9e83)
  • add dismissedUserReports (daa9aac)
  • add getLinkFlairTemplates (9b89463)
  • add getters for moderation listings (1c3876e)
  • add helper function to update an oauth token (507d61c)
  • add helper functions to Voteable (aa0ca66)
  • add helper get() and post() methods (29f4876)
  • add helper to camelCase the keys in an object (b5e5c83)
  • add helper to split an array into sized groups (ffbe5b1)
  • add initial support for interacting with users (bd0fc8b)
  • add initial support for Subreddits (b5f09ea)
  • add missing functions to VoteableControls (3dc79db)
  • add MyUserControls::getContributorSubreddits() (48f41c0)
  • add MyUserControls::getModeratedSubreddits() (291c74f)
  • add MyUserControls::getSubscribedSubreddits() (2ff0f50)
  • add oauth api wrapper (0b6501e)
  • add OAuth flow (7029a16)
  • add optional debugging via the debug module (fbb7bb3)
  • add partial support for Posts (808df45)
  • add SubredditControls::getDefault() (1d170a4)
  • add SubredditControls::getNew() (49be5ca)
  • add SubredditControls::getPopular() (cc91c08)
  • add SubredditControls::getPremium() (5a1274b)
  • add SubredditData.allow* (f0c6b48)
  • add the ability to ignore reports on an item (31f6cc1)
  • add unauthorized api wrapper (052c592)
  • add UserControls::isUsernameAvailable() (3a56e77)
  • add VoteableData.*ReportsDismissed (41da3f1)
  • allow application-only-auth (487c5fd)
  • allow getting and setting a post's suggested sort (b6235b8)
  • allow locking and unlocking comments (766726b)
  • docs: update typedoc to 0.22 (a8260d7)
  • document link flair templates (29257d1)
  • initial commit (cedbf15)
  • make BaseControls::namespace() public (f13d40b)
  • make calls to /random go entirely through OAuth (87c9640)
  • make Listings iterable (868d58d)
  • make the client take in options (79875ab)
  • move all Reddit REST api interaction into new Gateway classes (8c0856a)
  • remove CommentData.depth (b5d6bf4)
  • remove default export (3df8d41)
  • remove subredditId (431efe2)
  • rename Client.getAuthUrl() -> Client.makeAuthUrl() (ba87fdf)
  • replace null with undefined (5ab17b6)
  • replace Client.authFromCode() with Client.fromAuthCode() (8fa90b8)
  • replace getRandomPost() with getRandomPostId() (8f56359)
  • start work on Client object (4628499)

Bug Fixes

  • accurately reflect types of 'edited' (65f94c7)
  • add a default sort to User(Controls).getPosts() (7a20a03)
  • batch comments 75 at a time (d3cad93)
  • deps: update dependency got to ^11.8.6 (82e6310)
  • deps: update dependency tslib to ^2.4.1 (afecdcf)
  • deps: update dependency tslib to ^2.5.0 (7577950)
  • documentation of link flair templates (d307909)
  • documentation of subreddit flair (5255fec)
  • export Replyable (8fc0ddf)
  • export Subreddit (1f6041d)
  • fix error when submit response doesn't contain id (8bb0b58)
  • fix formatting of debug print (3630026)
  • fix types of mod* attributes (0db4994)
  • fix typo (Capcha -> Captcha) (774866d)
  • fix VoteableData.userReports' type (df5301d)
  • handle posts with no default comments (3f48474), closes #67
  • make empty listings actually empty (f8467ca)
  • make form the default POST body (8a80eac)
  • make stubbed listings actually work (a89c115)
  • make SubredditControls::getSortedComments() work (bf0518e)
  • make tslib a runtime dependency (239a415)
  • mark gid_x as optional (35a38b2)
  • mark the 'approved' boolean as optional (0d71a50)
  • populate Post.removed when missing (#32) (4c7ba39)
  • prevent race condition when updating rate limit data (0d1b3b7)
  • properly handle comment replies (e754d3f), closes #67 #71
  • remove broken methods for now (aedc8bc)
  • remove reportReasons (0fbcc02)
  • remove unused properties (17a5f36)
  • request json api on all json posts (5a8ff48)
  • respect the time range when getting top posts (cdba4cd)
  • store and use the given refresh token (47be0af)
  • unbreak search()ed post comments yet again (09876c6), closes #71
  • update camelcase to 6.3.0 (72ee276)
  • update got to 11.8.3 (2ba1587)
  • update tslib to 2.3.1 (076e4ab)
  • use the correct kind of Comment (6e88c7e)

Performance Improvements

  • cache the lookahead for future use (4a6b8cb)
  • fetch extra comments one page at a time (d80b32a)

Code Refactoring

  • add separate controls for MyUser (57adf74)

Readme

Source

snoots-revived

semantic release latest release latest stable release checks status coverage

npm version npm types weekly npm downloads npm dependents license

A modern, fully-featured, strongly-typed reddit api wrapper.

:warning: WARNING :warning:

This project is in early alpha. Things can (and likely will) change at any time for any reason without warning, and large parts of the api are not yet supported. If you need a stable reddit api today, use snoowrap.

If you want to help guide the future of the project towards v1.0.0, please check out this discussion!

Installation

npm i snoots-revived@dev

Note: Node 20+ is required.

Documentation

For detailed instructions on how to use snoots, check out the latest documentation.

Contributing

If you want to help out, please read the CONTRIBUTING.md.

Keywords

FAQs

Last updated on 11 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc