dccbot

CI Python License

An IRC XDCC download bot written in python with aiohttp and irc.py.

Features

Installation

From source

git clone https://github.com/luni/dccbot.git
cd dccbot
uv sync
cp config.json.sample config.json
# edit config.json, then:
uv run python bot.py

From a release

Each release ships a wheel and a source distribution on the releases page:

uv tool install ./dccbot-0.4.0-py3-none-any.whl   # or: pipx install / pip install
dccbot --config /path/to/config.json

Running as a systemd user service

Copy dccbot.service to ~/.config/systemd/user/, adjust the paths in ExecStart to your install, then:

systemctl --user daemon-reload
systemctl --user enable --now dccbot
# optional: keep it running after logout
loginctl enable-linger "$USER"

Usage

Configuration

The bot can be configured by creating a config.json file in the current working directory. The configuration file should contain a json object with the following keys:

API

The bot can be controlled using a simple web interface. The web interface is available at http://localhost:8080/ by default.

Additional browser features

DCCBot Web Interface

WebSocket command help

In the browser command input, use:

Supported websocket commands:

Browser Userscript for Easy Downloads

A Violentmonkey userscript is provided to add download buttons to popular XDCC search websites, making it easy to send download commands directly to your DCCBot.

XDCC Search with Download Buttons

Supported Websites

Installation

  1. Install the Violentmonkey extension for your browser (open source and available for Chrome, Firefox, and other Chromium-based browsers)
  2. Click the following link to install the script: Install Script

Configuration

  1. After installation, click on the Violentmonkey extension icon
  2. Open the installed add-dccbot-btn script’s menu and choose “Set API Endpoint”
  3. Enter your DCCBot API endpoint (e.g., http://localhost:8080)

Usage

Features

Developer / Testing

The repository includes a full local development and testing setup:

Contributions & Thanks

Contributions are welcome — open an issue or pull request on GitHub. Please make sure make validate and the test suite pass before submitting a PR.

Thanks to everyone who has contributed to DCCBot: