Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kyanoxia/skycord

The unofficial official BlueSky announcement bot for Discord. It's recommended to self-host this!
https://github.com/kyanoxia/skycord

announcement-bot automation bluesky bot discord discord-bot discord-typescript twitter

Last synced: about 24 hours ago
JSON representation

The unofficial official BlueSky announcement bot for Discord. It's recommended to self-host this!

Awesome Lists containing this project

README

        

# Skycord
A Discord bot to announce new posts from Bluesky!

skycord banner


Buy Me a Coffee at ko-fi.com

## Getting Started
To start, please invite the bot to your server using [this URL](https://discord.com/oauth2/authorize?client_id=1297227452707373267). Once it has successfully joined, use the `/connect` command to subscribe to a user!

### Commands
**`<>` indicates required, `[]` indicates optional**
| **Command Name** | **Description** | **Usage** |
| --------------------- | ------------------------------------------- | ------------------------------------------------------------------ |
| `/botinfo` | (global) Display information about Skycord | `/botinfo` |
| `/connect` | Connect your BlueSky account | `/connect [embed provider] [replies] [message] [regex]` |
| `/disconnect` | Disconnect your BlueSky account | `/disconnect ` |
| `/getlastpost` | (global) Get the latest post from a user | `/getlastpost ` |
| `/help` | Display help page | `/help` |
| `/info` | Display information about a command | `/info ` |
| `/list` | Display subscribed users in channel | `/list` |

## Self-Hosting
### Prerequisites
NodeJS (v18.19.0+) & NPM must be installed. Once installed, please globally install typescript for convenience:
```
npm i --global typescript
```
Now that that's out of the way, let's get to it.

### Setting Up

Clone this repository:
```
git clone https://github.com/Kyanoxia/bluecord.git
```

Travel into that directory:
```
cd bluecord
```

Install Dependencies:
```
npm i
```

Create your environment variables:
```
touch .env
```

Start the bot:
```
npm run dev
```
or for production (using pm2 for process persistence)
```
npm run startpm
```

### Environment Variables
| **Variable Name** | **Description** |
| --------------------- | -------------------------------------------:|
| `token` | Your discord bot token |
| `discordClientID` | Your discord bot Client ID |
| `mongoURL` | Your Mongo Database URL |
| `devGuildID` | Discord developer guild ID for dev commands |
| `devUID` | JS/TS-style array of developer user IDs |

If you are unfamiliar with creating environment variables, please refer to [this page](https://www.dotenv.org/docs/security/env).

### Commands for developers
**`<>` indicates required, `[]` indicates optional**
| **Command Name** | **Description** | **Usage** |
| --------------------- | ------------------------------------------- | ---------------------------- |
| `/emit` | Artificially trigger join/leave event | `/emit ` |
| `/getdatabase` | Print the whole database to console | `/getdatabase` |