Vision
- To encourage newbies to participate in open source
- To convert imperial units into metric
- To surprise unsuspecting redditors with unexpected sassy responses
How does the code work?
This is a javascript app built with Node.js, and all of the app code is in the src directory.
The app starts in bot.js, and it polls the Reddit servers in an infinite loop. The app has two major components:
converter.js and conversion_helper.js are responsible for converting imperial units to metric units. See documentation to add a conversion
personality.js create sassy responses to certain trigger words
Running the code
For changes not related to networking, running tests is often enough. But if you want to see the bot hitting the Reddit servers:
- Create your bot's reddit account.
- Create a reddit
scriptapp through your reddit preferences. (Usehttp://localhostas your redirect url, we don't need it.) - Get your OAuth username (random characters below "personal use script") and secret
- Fork the main github repo and download the bot's code from your own repo
- Create a file
./private/environment.yamlthat looks like sample-environment.yaml - ensure your
node --versionis >= v6.2.1 - run
npm install - run
node ./src/bot.js - You should have the bot up and running!
Note: You can run the bot in development mode (which won't POST requests to reddit servers) by changing the dev-mode environment variable to true
Running the tests
You do not need to create a reddit app to run the tests, you can use the sample-environment.yaml default values.
run npm test
Note: To run a single spec, add .only
Questions or Comments?
Feel free to drop by the subreddit or open a github issue
Contribute
See Contributing Guideline and Code of Conduct
First time getting involved in Open Source Software? Welcome, and we hope you stick around! See New to OSS guide
Thanks goes to these wonderful people who have contributed (emoji key):
See the Contributor Introductions thread to learn more about the people who help make this project happen!
All contributions welcome
This project follows the all-contributors specification. Contributions of any kind welcome!
License
This source is distributed under GNU GPLv3