cannawen / metric_units_reddit_bot

Reddit bot converting imperial units to metric units
https://www.reddit.com/user/metric_units
GNU General Public License v3.0
78 stars 34 forks source link

Build status Coverage Status

first-timers-only PRs Welcome All Contributors License: GPL v3

Vision

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/index.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:

  1. Create your bot's reddit account.
  2. Create a reddit script app through your reddit preferences. (Use http://localhost as your redirect url, we don't need it.)
  3. Get your OAuth username (random characters below "personal use script") and secret
  4. Fork the main github repo and download the bot's code from your own repo
  5. Create a file ./private/environment.yaml that looks like sample-environment.yaml
  6. ensure your node --version is >= v6.2.1
  7. run npm install
  8. run node ./src/bot.js
  9. 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):


Canna Wen

πŸ’» πŸ’¬ πŸ€” πŸ‘€

Daniel Albert

πŸ’»

Bob Clingan

πŸ’»

fbontin

πŸ’»

Nitin Choudhary

πŸ’»

Manuel Porto

πŸ’»

Anna Do

πŸ’»

Charles

πŸ’» πŸ’¬ πŸ€”

Hasan

πŸ’»

Marc Fogleman

πŸ’»

Eliot Wong

πŸ’»

Doomki

πŸ’»

Wing Lian

πŸ’»

NFerraro

πŸ’»

Nalin Bhardwaj

πŸ’» πŸ’¬

thepassenger-hub

πŸ’»

Sean Grimes

πŸ’»

Rafal Dittwald

πŸ“–

namantw

πŸ’»

Dan C

πŸ’»

cmd-kvn

πŸ’» πŸ›

Andrew Terranova

πŸ’» ⚠️

Jacob Allen

πŸ’» ⚠️

darthpool

πŸ“–

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