92 lines
2.1 KiB
Markdown
92 lines
2.1 KiB
Markdown
# Discord RSS Bot
|
|
|
|
A Discord bot that reads messages from a channel, stores them in SQLite, and serves them as an RSS feed.
|
|
|
|
## Setup
|
|
|
|
### 1. Create a Discord Bot
|
|
|
|
1. Go to [Discord Developer Portal](https://discord.com/developers/applications)
|
|
2. Click "New Application" and give it a name
|
|
3. Go to the "Bot" section and click "Add Bot"
|
|
4. Copy the bot token
|
|
5. Under "Privileged Gateway Intents", enable:
|
|
- Server Members Intent
|
|
- Message Content Intent
|
|
6. Go to "OAuth2" > "URL Generator"
|
|
7. Select scopes: `bot`
|
|
8. Select bot permissions: `Read Messages/View Channels`, `Send Messages`
|
|
9. Use the generated URL to invite the bot to your server
|
|
|
|
### 2. Configure Environment
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Edit `.env` and add:
|
|
- `DISCORD_TOKEN` - Your bot token
|
|
- `DISCORD_CHANNEL_ID` - The channel ID to monitor (enable Developer Mode in Discord to copy channel IDs)
|
|
|
|
### 3. Install Dependencies
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
### 4. Run
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
## Usage
|
|
|
|
### RSS Feed
|
|
|
|
Access the RSS feed at:
|
|
```
|
|
http://localhost:3000/rss/{channel_id}
|
|
```
|
|
|
|
Or with a custom limit:
|
|
```
|
|
http://localhost:3000/rss/{channel_id}?limit=20
|
|
```
|
|
|
|
### List Available Channels
|
|
|
|
```
|
|
GET http://localhost:3000/rss/
|
|
```
|
|
|
|
### Manually Trigger Fetch
|
|
|
|
```
|
|
POST http://localhost:3000/fetch/{channel_id}
|
|
```
|
|
|
|
## API Endpoints
|
|
|
|
| Method | Endpoint | Description |
|
|
|--------|----------|-------------|
|
|
| GET | `/rss` | List all channels with messages |
|
|
| GET | `/rss/:channelId` | Get RSS feed for a channel |
|
|
| GET | `/rss/:channelId?limit=N` | Get RSS feed with N messages |
|
|
| POST | `/fetch/:channelId` | Trigger message fetch |
|
|
| GET | `/health` | Health check |
|
|
|
|
## Configuration
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `DISCORD_TOKEN` | - | Discord bot token |
|
|
| `DISCORD_CHANNEL_ID` | - | Channel to monitor |
|
|
| `PORT` | 3000 | Server port |
|
|
| `BASE_URL` | http://localhost:3000 | Base URL for RSS links |
|
|
| `FETCH_INTERVAL_MS` | 300000 | Auto-fetch interval (5 min) |
|
|
|
|
## Database
|
|
|
|
Messages are stored in `data/messages.db` (SQLite). The database is created automatically on first run.
|