https://github.com/freecodecamp/100daysofcode-twitter-bot
Twitter bot for #100DaysOfCode
https://github.com/freecodecamp/100daysofcode-twitter-bot
100daysofcode nodejs twitter-api twitter-bot
Last synced: 9 months ago
JSON representation
Twitter bot for #100DaysOfCode
- Host: GitHub
- URL: https://github.com/freecodecamp/100daysofcode-twitter-bot
- Owner: freeCodeCamp
- License: bsd-3-clause
- Created: 2016-06-20T06:46:18.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-01-27T04:32:55.000Z (almost 2 years ago)
- Last Synced: 2025-03-29T10:11:24.031Z (9 months ago)
- Topics: 100daysofcode, nodejs, twitter-api, twitter-bot
- Language: JavaScript
- Homepage: https://twitter.com/_100DaysOfCode
- Size: 941 KB
- Stars: 285
- Watchers: 26
- Forks: 110
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# [100DaysOfCode Twitter Bot](https://twitter.com/hashtag/100DaysOfCode?src=hash)
Helping developers who participate in
[#100DaysOfCode](https://twitter.com/hashtag/100DaysOfCode?src=hash)
to engage on Twitter.
[](http://opensource.org/licenses/BSD-3-Clause)
[](https://github.com/prettier/prettier)
[](https://100xcode.slack.com/)
[](https://discord.gg/HSJgHMW)
[](https://github.com/freeCodeCamp/100DaysOfCode-twitter-bot/issues)
[](https://github.com/freeCodeCamp/100DaysOfCode-twitter-bot/pulls)
## Features
### Retweets and likes tweets

### Sends a thank-you reply to new followers

### Congratulates users on starting/finishing [#100DaysOfCode](https://twitter.com/hashtag/100DaysOfCode?src=hash)

### Tweets back encouragement if a [#100DaysOfCode](https://twitter.com/hashtag/100DaysOfCode?src=hash) tweet has negative sentiment

### Tracks user interaction via [`LevelDB`](https://github.com/Level/level) to give users daily encouragement
### Uses a cron-like [job scheduler](https://github.com/node-schedule/node-schedule) 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](https://developer.twitter.com/en/docs) via the `twit`
npm package. Please refer to the `twit`
[documentation](https://github.com/ttezel/twit) to make substantial
changes.
You can help by:
* Solving existing
[issues](https://github.com/freeCodeCamp/100DaysOfCode-twitter-bot/issues?q=is%3Aopen+is%3Aissue)
* Adding more functionalities to the bot
([see issues](https://github.com/freeCodeCamp/100DaysOfCode-twitter-bot/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement))
* 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](https://help.github.com/articles/creating-a-pull-request/).
#### 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](https://apps.twitter.com/app/new).
* 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`](https://twitter.com/search?q=someTestHashTag&src=typd)
to avoid spamming the community hashtag.
* Run `npm/yarn test` to check all keys are available before you
start. :+1:
* 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.