Skip to content

freeCodeCamp/100DaysOfCode-twitter-bot

Helping developers who participate in #100DaysOfCode to engage on Twitter.

License (3-Clause BSD) styled with prettier Connect with us on Slack Discord GitHub issues GitHub pull requests

follow on Twitter

Features

Retweets and likes tweets

Screenshot1

Sends a thank-you reply to new followers

Screenshot2

Congratulates users on starting/finishing #100DaysOfCode

Imgur

Tweets back encouragement if a #100DaysOfCode tweet has negative sentiment

Imgur

Tracks user interaction via LevelDB to give users daily encouragement

Uses a cron-like job scheduler to tweet 'Project of the Day'

Blacklist 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.