• Stars
    star
    175
  • Rank 218,059 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 11 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A bot that executes source code in reddit comments

compilebot

CompileBot is a reddit bot that can execute source code in comments. All you have to do is mention CompileBot in your comments along with a language and source code:

+/u/CompileBot python

print "Hello World!"

CompileBot will then process your comment, execute it remotely, and then respond with the output:

Output:

Hello World!

How it works

CombileBot is powered by the "compilebot" module which is written in python (2.7). It uses the PRAW package to communicate with reddit and a modified fork of the python ideone-api which uses the Ideone online compiler to execute source code.

Contributing

CompileBot would appreciate any help it can get. Even if you don't want to contribute to the compilebot source, we need people for testing, improving documentation, and making donations to help support CompileBot's server space and ideone subscription. For more details on contributing anything non-technical, you can find out more on the CompileBot contribution wiki.

If you would like to contribute new features, or fix bugs, or contribute anything else to the compilebot module, you can follow the instructions below to get a local instance of compilebot set up on your system.

Installation

If you're familliar with Docker, you might want to try using compilebot's Docker repository.

To install compilebot locally, you can follow the following steps. Using virtualenv is recommended.

git clone https://github.com/renfredxh/compilebot.git
cd compilebot

You'll need to initialize the ideone-api submodule and install it:

git submodule init
git submodule update
cd lib/ideone-api/
python setup.py install

Install the dependencies:

pip install -r requirements.txt

Now that all of the dependencies for compilebot have been installed, you'll have to configure the settings file. You can copy the included sample settings into a new file. From the main directory:

cd compilebot
cp sample-config.yml config.yml

Now, if you open config.yml in your favorite text editor you'll see customizable data for compilebot to use. If you would like to run all of compilebot's features, you'll need a reddit account and a ideone account. Once you have your login credentials, you can edit config.yml and fill in the following fields:

  reddit_user: # Your reddit user name
  reddit_pass: # Your reddit password
  ideone_user: # Your ideone username
  ideone_pass: # Your ideone password

Finally, try running compilebot:

python compilebot.py

Testing

Build Status

If you would like to test any changes, you can run the compilebot test suite in order to test each function. From the directory that contains compilebot.py, you can run all of the test modules:

python -m tests.all

Or just the unit tests:

python -m tests.unit

Or a single test module:

python -m tests.unit.reply