Darkbot, Talking Robot

Darkbot fork, version 8rc5.

## Overview

This repository is an independent fork of Darkbot.
Its historical origin is the original SourceForge Darkbot project,
whose last official release was 8rc1.
The codebase here is also based on the later community-maintained
Nasqueron fork around 8rc4, with additional fixes and local changes in
this repository.

This fork keeps the original Darkbot structure and adds local changes
for search, quotes, `deop.ini`, container builds, and example runtime
files.

The repository is set up to be usable both from source and through a
container image. Runtime data is kept under `dat/` and is shipped with
example values so private server details are not committed by default.

## Included Changes

- Full-query `!ddgo` and `DDGO`
- Quote storage and retrieval through `!addq`, `!quote`, `!qt`, and
  `!quotetell`
- `deop.ini` handling on IRC 482
- Example runtime files in `dat/`
- Docker, Podman, and Compose support
- Container entrypoint for first-run setup

## Install

### Debian or Ubuntu

Install the required build dependencies:

```sh
apt-get install build-essential autoconf automake libtool pkg-config libssl-dev ca-certificates
```

Build the bot from source:

```sh
./bootstrap.sh
./configure
make
```

If the repository includes a prepared build script, use it before the
manual build:

```sh
./build.sh
```

### Runtime Setup

Before starting the bot, review these files:

- `dat/setup.ini` for nick, channel, and behavior flags
- `dat/servers.ini` for IRC server definitions
- `dat/userlist.db` for access entries
- `dat/perform.ini` for startup actions
- `dat/deop.ini` for deop handling
- `dat/rdb/quote.rdb` for stored quotes

Keep private server names, passwords, and user data out of commits.

### Container

Build and run the image with Docker:

```sh
docker build -t darkbot:8rc5 .
docker run --rm -it -v darkbot-data:/data darkbot:8rc5
```

Podman uses the same build and run commands.

The container stores runtime data in `/data`. On first start, the
entrypoint seeds that directory from the example files in the image.

## Configuration

`dat/setup.ini` controls the bot nick, channel, and core behavior.
`dat/servers.ini` lists IRC servers.
`dat/userlist.db` stores access entries.
`dat/deop.ini` runs when the bot is deoped.
`dat/perform.ini` holds startup actions.
`dat/rdb/quote.rdb` stores the quote list.

`!ddgo` and `DDGO` use the full query string. Quote commands
(`!addq`, `!quote`, `!qt`, `!quotetell`) use `dat/rdb/quote.rdb`.

The current fork version is kept separate from upstream and should be
updated through `VERSION`, `source/configure.ac`, and
`share/doc/darkbot/VERSION` together.

## Runtime Packages

Container runtime packages:

- `ca-certificates`
- `libssl3`
- `libcrypt1`

## Notes

Runtime files under `dat/` use example values. See `WHATSNEW` for the
current fork changes and `docs/WHATSNEW` for the historical changelog.

GNU GPL v2. See `COPYING` for the full text.
