RetweetBot
RetweetBot listens for certain keywords or hashtags and native retweets what it hears. It uses the Twitter streaming APIs and runs inside an EventMachine reactor. If Twitter is functioning properly, discovering matching tweets is near instant.
Requirements
You will need to register an application at https://dev.twitter.com/apps to get the required oAuth credentials. These are used to make the retweets. Retweetbot also requires you give it a username and password. This is used to use Twitter's streaming API. Unfortunately, the streaming API does not support oAuth at this time.
Installation
Add the necessary ENV variables to your application's environment:
- TWITTER_USERNAME (your twitter username that will be doing the retweeting)
- TWITTER_PASSWORD (password for the above account)
- TWITTER_CONSUMER_KEY (the consumer key for the app you made)
- TWITTER_CONSUMER_SECRET (consumer secret for the above key)
- TWITTER_ACCESS_TOKEN (token generated for your account to your app)
- TWITTER_ACCESS_TOKEN_SECRET (token secret for the above token)
- TWITTER_FILTER (what to look for [hashtags or keywords] ... ex: "#teamDigerati")
- TWITTER_FOLLOW (comma separated list of the user id's to limit the search ... ex: "1,14,140")
Development
You can run either:
ruby retweetbot.rb
Or since we've got a procfile, install foreman (gem install foreman
) and run:
foreman start
Heroku Production Example
heroku create --stack cedar
git push heroku master
heroku scale tweetscan=1
License
RetweetBot is released under the MIT license.
History
This project was originally created by Patrick Hogan, forked and tweaked by Jon McCartie, and then uploaded by Team Digerati. Thanks for doing the heavy lifting, Patrick!
Contributing
In the spirit of free software, everyone is encouraged to help improve this project.
Here are some ways you can contribute:
- by using alpha, beta, and prerelease versions
- by reporting bugs
- by suggesting new features
- by writing or editing documentation
- by writing specifications
- by writing code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace)
- by refactoring code
- by resolving issues
- by reviewing patches