100DaysOfCode Twitter Bot
Helping developers who participate in #100DaysOfCode to engage on Twitter.
Features
Retweets and likes tweets
Sends a thank-you reply to new followers
#100DaysOfCode
Congratulates users on starting/finishing#100DaysOfCode tweet has negative sentiment
Tweets back encouragement if aLevelDB
to give users daily encouragement
Tracks user interaction via job scheduler to tweet 'Project of the Day'
Uses a cron-likeBlacklist Spammers who abuse [#100DaysOfCode]
freeCodeCamp challenges and Help Channels (such as Slack, Discord, etc.) are merged in an API to constantly tweet links for new joiners/followers
Contributing
This bot manipulates tweets and streams by connecting to the
Twitter API via the twit
npm package. Please refer to the twit
documentation to make substantial
changes.
You can help by:
- Solving existing issues
- Adding more functionalities to the bot (see issues)
- Pointing out bugs/errors
For any of the above, please create an issue so that it can be addressed. New to GitHub issues? You can familiarize yourself with them using GitHub's guide.
Setup
- You will need your own Twitter account for testing, since the bot tweets from this account. Generate your Twitter API keys by creating a new app.
- Fork this repository.
- Create an
.env
file and add in your API keys and Twitter handle, like so:
TWITTER_CONSUMER_KEY=xxxxxxxxxxxxxxxxxxxxdMhxg
TWITTER_CONSUMER_SECRET=xxxxxxxxxxxxxxxxxxxxkFNNj1H107PFv1mvWwEM6CZH0fjymV
TWITTER_ACCESS_TOKEN=xxxxxxxxx-xxxxxxxxxxxxxxxxxxxxecKpi90bFhdsGG2N7iII
TWITTER_ACCESS_TOKEN_SECRET=xxxxxxxxxxxxxxxxxxxxZAU8wNKAPU8Qz2c0PhOo43cGO
QUERY_STRING=#someTestHashtag
TWITTER_USERNAME=YourTestTwitterAccountName
Make the Change
- Change any hashtags to
#someTestHashtag
to avoid spamming the community hashtag. - Run
npm/yarn test
to check all keys are available before you start.π - Make your suggested change.
- Ensure code style follows existing code (run
npm run format
to apply preferred formatting). - Create a pull request.
License
BSD 3-Clause License
Copyright (c) 2018 - Present, freeCodeCamp. All rights reserved.