All Projects → Snooful → Snooful

Snooful / Snooful

Licence: other
The most complete bot for moderation, utility, and fun in Reddit Chat.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Snooful

Reddift
Swift Reddit API Wrapper
Stars: ✭ 215 (+1553.85%)
Mutual labels:  reddit
find-song
Song recognition for Reddit
Stars: ✭ 29 (+123.08%)
Mutual labels:  reddit
TemplePlus
ToEE hooks, extensions and fixes
Stars: ✭ 73 (+461.54%)
Mutual labels:  mod
Solarized Everything Css
A collection of Solarized user-stylesheets for...everything?
Stars: ✭ 219 (+1584.62%)
Mutual labels:  reddit
Graw
Golang Reddit API Wrapper
Stars: ✭ 251 (+1830.77%)
Mutual labels:  reddit
crypto-subreddits-cli
👽 Track Cryptocurrency Subreddits On The Command Line 👽
Stars: ✭ 24 (+84.62%)
Mutual labels:  reddit
Ripme
Downloads albums in bulk
Stars: ✭ 2,748 (+21038.46%)
Mutual labels:  reddit
PrisonLabor
Prison Labor mod for RimWorld game
Stars: ✭ 39 (+200%)
Mutual labels:  mod
vreddit-mirror-bot
🎥 Reddit bot that mirrors videos hosted on the native Reddit player to Gfycat and Streamable.
Stars: ✭ 23 (+76.92%)
Mutual labels:  reddit
Victoria-2-Cold-War-Enhancement-Mod-CWE
CWE brings Victoria 2 into the Cold War era and beyond. This is the ultimate Cold War mod with a slew of special features such as ideological blocs, dynamic international institutions and decolonisation chains to accurately simulate the Cold War and Post-Cold War world.
Stars: ✭ 114 (+776.92%)
Mutual labels:  mod
Praw
PRAW, an acronym for "Python Reddit API Wrapper", is a python package that allows for simple access to Reddit's API.
Stars: ✭ 2,675 (+20476.92%)
Mutual labels:  reddit
Reaper
Social media scraping / data collection tool for the Facebook, Twitter, Reddit, YouTube, Pinterest, and Tumblr APIs
Stars: ✭ 240 (+1746.15%)
Mutual labels:  reddit
prog-mats-java
A java Mindustry mod. Just me making random stuff.
Stars: ✭ 59 (+353.85%)
Mutual labels:  mod
Beam
Beam: the open source Reddit client for iOS
Stars: ✭ 217 (+1569.23%)
Mutual labels:  reddit
ergo
A modern IRC server (daemon/ircd) written in Go.
Stars: ✭ 1,916 (+14638.46%)
Mutual labels:  irc
Reddit Hyped Stocks
A web application to explore currently hyped stocks on Reddit
Stars: ✭ 173 (+1230.77%)
Mutual labels:  reddit
rubircd
💬 An IRC server written in Ruby
Stars: ✭ 23 (+76.92%)
Mutual labels:  irc
ac-react-reddit
A Reddit client built with React.js, next.js and styled-components. https://ac-react-reddit.herokuapp.com
Stars: ✭ 38 (+192.31%)
Mutual labels:  reddit
CountersPlus
A combination of widely-used counters, all configurable in one Beat Saber mod.
Stars: ✭ 126 (+869.23%)
Mutual labels:  mod
NeosModLoader
A mod loader for Neos VR
Stars: ✭ 58 (+346.15%)
Mutual labels:  mod

Snooful

GitHub issues GitHub pull requests Travis (.com)

The most complete bot for moderation, utility, and fun in Reddit Chat.

Optional Dependencies

Some dependencies do not need to be installed for Snooful to function, but they do provide some features that will automatically disable if not present. Here is a reference to modules that do this and what changes when they aren't installed:

  • debug - replaced with a basic write to stdout
  • esrever - reversing (the reverse command) won't account for fancy Unicode things
  • git-last-commit - the most recent commit hash will never be shown in the version command
  • lodash.chunk - some commands (like commands and listfaq) will not be paginated

Configuration

Snooful uses JSON for configuration. This file is located at ./config.json, and must be created manually.

Credentials

To use Snooful, you must provide credentials, which are taken from snoowrap. The user agent cannot be set as it is automatically set to one containing the version. To get these, go to applications and generate a new app. Fill in the credentials object of configuration (see the example config for what a script-type config would look like).

Settings Manager

Snooful can store data for subreddits and groups. The storage system for this data is decoupled from Snooful itself; instead, a settings manager can be chosen to handle data storage, configured with the settingsManager config option.

The module can be specified in four ways:

  • settingsManager.require (preferred) - A module ID resolvable by require() pointing to the settings manager module.
  • settingsManager.class - The settings manager class (JavaScript config files only).
  • settingsManager.instance - An instance of the settings manager (JavaScript config files only).

The options for the settings manager can be specified as well when using the former two options via settingsManager.options.

Here are some official settings manager modules:

Switching the settings manager does not transfer the existing data. However, you can use a tool to do this yourself.

Prefix

You can also configure the prefix from the default ! by setting prefix.start. The prefix is the thing that differentiates a command from a message. Basically, with a prefix of ?, you must type ?ping to run the ping command.

While disabled by default, it is also possible to configure a global prefix at prefix.global. This prefix works anywhere in a message, and everything after the prefix will be considered an argument to the command.

Please change the prefix if you are hosting your own version of Snooful.

Debugging

Since this project uses debug, you can also set the environment variable DEBUG to snooful:* to recieve logs of everything notable happening with Snooful. This package also has other environment variables that can be set, which are:

  • DEBUG_HIDE_DATE
  • DEBUG_COLORS
  • DEBUG_DEPTH
  • DEBUG_SHOW_HIDDEN

These environment variables have no effect if debug is not installed.

Example Config

Here is an example configuration:

{
  "prefix": {
	"start": "?",
	"global": "--"
  },
  "credentials": {
    "clientId": "a897d89f89e",
    "clientSecret": "0202390301209919219810929012",
    "username": "Snooful-Example",
    "password": "h0pefully-s3cure"
  },
  "settingsManager": {
	"require": "@snooful/sqlite-settings"
  }
}

Commands

Commands are stored in the src/commands folder. They are organized by category. You can add your own command by placing a file ending with .js in the folder. It must export an object adhering to the comamnd format as seen in the info command.

Please do not remove the commands in the snooful category, especially info and github.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].