/RedditRover

A plugin based Reddit Bot Framework.

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

Reddit Rover

RedditRover is a bot modular bot framework that makes it easy to host all kinds of reddit bots at once. It is intended to make it easy for new and experienced Programmers to host a variety of bots that can react to Reddits content without having to mangle with all ins and outs of reddit, praw and API limitations. Running it is easy:

$ RedditRover/main.py

That will already do start the entire hosting and loading process - given you have already written a plugin, it will start shortly after to fire content to your plugin. If there are no plugins so far, the bot will exit automatically.

Installation & Usage

Running on Python 3+:

pip install praw --upgrade

All other dependencies are standard builtins.

Documentation

I've tried to document this bot as best as possible. The full documentation can be found here: Documentation on Read The Docs

Debugging

Bot features are written in Abstract PluginBase Classes. Inherit from it and execute one of the test functions: test_single_submission(submission_id), test_single_comment(comment_id) or _test_single_thing(thing_id). Other than that, use atomic tests of your features however you please. Instantiating a plugin on its own works and supposed to test your features. Read into the documentation to get a detailed guide how this bot works and what you bot has to do.

Version & Changelog

v1.1: Stats module - can, if set in the config, output statistics as a webpage. See example below
--------------------------------------------------------------------------------------------------------------
v1.0: Initial release. Systems work, bot runs stable.
v0.8: Custom handler, providing huge speedups, retry decorators, refactoring, close to initial release
v0.7: No more praw-OAuth2Util, strengthening the framework, resolving major issues
v0.6: Recode of the bot. A trillion of new features, which I will document soon
v0.5: Added more bots - and then it kept fucking up.
v0.4: Should now load infinite amounts of links, represent them with the website title and respond accordingly.
v0.3: Fixing behaviour with non-escaped chars in links and stopping the self-spam.
v0.2: Methods to query with referrer-link and stuff like that
v0.1: Initial Commit

An example of the web statistics can be found here: http://moddota.com/redditrover/

Planned features & work in progress

  • Some interface to control the bot. Mainly restarting, muting, ignoring, etc. Maybe web backend?

Help, questions, contribution

Check out the FAQ, which should cover most issues. Pull Requests, emails and messages on Reddit are welcome.

Thanks for your interest and have a good time.