nexus-bot-gateway
v1.2.8
Published
Gateway for Nexus Discord Bot Builder
Readme
Nexus Gateway
The high-performance local gateway for the Nexus Discord Bot Builder. This package connects your local Discord bot instance to your Nexus backend, providing reliable command execution, event forwarding, and advanced music playback capabilities.
Features
- Reliable Music Playback: High-quality audio streaming from YouTube with automatic transcoding.
- Smart Caching: Automatically saves played songs to a local
downloads/directory. Subsequent plays use the cached file to save bandwidth and prevent 429 errors. - 429-Proof Pipeline: Integrated retry logic with exponential backoff for YouTube data retrieval.
- Modular Architecture: Clean, service-oriented structure for easy maintenance and extension.
- Event Forwarding: Real-time forwarding of Discord messages and interactions to your backend.
- Convex Integration: Native support for Convex-powered backends for state management and logging.
Installation
npm install -g nexus-bot-gatewayUsage
CLI Mode
You can run the gateway using the CLI:
nexus-gatewayEnvironment Variables
The gateway requires the following environment variables:
DISCORD_TOKEN: Your Discord Bot Token (can also be managed via backend settings).CONVEX_URL: Your Convex deployment URL.NEXUS_USER_ID: Your unique Nexus User ID.
You can provide these in a .env file in your project root or directly in your environment.
Programmatic Usage
For advanced users, you can integrate the gateway directly into your own Node.js application:
import { NexusGateway } from 'nexus-bot-gateway';
const gateway = new NexusGateway({
convexUrl: process.env.CONVEX_URL,
userId: process.env.NEXUS_USER_ID
});
gateway.start().catch(console.error);Cache Management
The gateway stores audio files in the downloads/ directory. This directory is automatically created on startup. To clear the cache, simply delete the contents of this folder.
Troubleshooting
- 429 Errors: If you encounter YouTube rate limits, the bot will automatically retry. Ensure your IP is not being heavily throttled by other services.
- FFmpeg: Ensure
ffmpegis available on your system path, though the package includesffmpeg-staticfor out-of-the-box support on most systems. - Voice Issues: Make sure the bot has
ConnectandSpeakpermissions in the voice channels.
License
MIT
