π¦
Larry
Larry is a Golang cli bot that tweets random Github repositories.
Disclaimer
I hold no liability for what you do with this bot or what happens to you by using this bot. Abusing this bot can get you banned from Twitter, so make sure to read up on proper usage of the Twitter API.
Running bots
- GolangRepos: Tweets repositories from Github that contain the "golang" topic
- RustRepos: Tweets repositories from Github that contain the "rust" topic
- MLRepositories: Tweets repositories from Github that contain the "machine-learning" topic
- CryptoRepos: Tweets repositories from Github that contain the "crypto" topic
Installation
You can install Larry by cloning the repo and using go install
git clone https://github.com/ezeoleaf/larry.git
cd larry/cmd/larry
go install
You can also use make for building the project and generating an executable:
git clone https://github.com/ezeoleaf/larry.git
cd larry
make build
Or you can just run it on the go
git clone https://github.com/ezeoleaf/larry.git
cd larry
go run . [options]
Usage
Configuring the bot
Before running the bot, you must first set it up so it can connect to Github and Twitter API.
To do this, you will need to setup the following environment variables:
- GITHUB_ACCESS_TOKEN
- TWITTER_CONSUMER_KEY
- TWITTER_CONSUMER_SECRET
- TWITTER_ACCESS_TOKEN
- TWITTER_ACCESS_SECRET
If you want the content to be publish in a README file on a repo, you also need these variables
- GITHUB_PUBLISH_REPO_OWNER (Your Github username)
- GITHUB_PUBLISH_REPO_NAME (The name of the repo where your README is. It has to be public)
- GITHUB_PUBLISH_REPO_FILE (By default is README)
For generating Github access token you can follow this guide
For getting Twitter keys and secrets you can follow this guide
Note: You will to generate both consumer and access pair of keys/tokens and secrets
Providers and Publishers
For information on publishers and providers click here
Providers (where the information is coming from)
Name | Key | Environment Variables |
---|---|---|
Github | github | GITHUB_ACCESS_TOKEN |
NOTE: The key is used in the --provider or --pr option
Publishers (where the information is going to be posted)
Name | Key | Environment Variables | Observation |
---|---|---|---|
TWITTER_CONSUMER_KEY TWITTER_CONSUMER_SECRET TWITTER_ACCESS_TOKEN TWITTER_ACCESS_SECRET |
|||
Github | github | GITHUB_PUBLISH_REPO_OWNER GITHUB_PUBLISH_REPO_NAME GITHUB_PUBLISH_REPO_FILE |
For now it is only going to be posted in the README file and the repository must be public |
NOTE: The key is used in the --publisher or --pub option
Running the bot
To run the bot, you have two ways.
If you have installed the bot, you can run it using larry [options]
If you want to run it without installing it globally you can use go run . [options]
Example:
larry -h
As a response you will see the entire options available
NAME:
Larry - Twitter bot that publishes random information from providers
USAGE:
larry [global options] command [command options] [arguments...]
AUTHORS:
@ezeoleaf <[email protected]>
@beesaferoot <[email protected]>
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--topic value, -t value topic for searching repos
--lang value, -l value language for searching repos
--time value, -x value periodicity of tweet in minutes (default: 15)
--cache value, -r value size of cache for no repeating repositories (default: 50)
--hashtag value, --ht value list of comma separated hashtags
--tweet-language, --tl bool for allowing twetting the language of the repo (default: false)
--safe-mode, --sf bool for safe mode. If safe mode is enabled, no repository is published (default: false)
--provider value, --pr value provider where publishable content comes from (default: "github")
--publisher value, --pub value list of comma separared publishers (default: "twitter")
--help, -h show help (default: false)
For running the bot, the command will depend on whatever you want to tweet, but, for tweeting about React repositories every 30 minutes, you could use
larry --topic react --time 30 --safe-mode
For running the bot for Rust tweets every 15 minutes
larry --lang rust --time 15
Have questions? Need help with the bot?
If you're having issues with or have questions about the bot, file an issue in this repository so anyone can get back to you.
Or feel free to contact me [email protected] :)