Darkbot 8rc5

Unreleased:

    - Version bumped to 8rc5 for the fork.
    - Runtime files under `dat/` now ship with example values instead of
      private server data.
    - `dat/` is now the canonical live data directory.
      - The old `var/darkbot` runtime copy was removed.
      - The bot now builds and runs against `dat/` directly.
    - Replaced `!google` with `!ddgo` and `DDGO`.
      - The command now searches DuckDuckGo instead of the old Google-named path.
      - Use it like `!ddgo irc darkbot` or `!ddgo 4 irc darkbot`.
      - `!ddg`, `!dtg`, and `!ducktogo` are aliases.
      - An optional leading number from 1 to 4 controls how many result URLs are returned.
      - The implementation fetches DuckDuckGo through a text-friendly proxy so it does not hit DuckDuckGo's bot challenge.
      - The parser now accepts multiple DuckDuckGo result line formats and returns real result URLs instead of the DuckDuckGo search URL fallback.
      - DuckDuckGo internal URLs and icon/image URLs are filtered out.
    - Added weather command support through wttr.in:
      - `!weather`, `!wh`, `!wthr`, and `!wt` are supported.
      - Multi-word and UTF-8 locations are preserved.
      - Output is fetched as plain text and includes both weather emoji and condition text.
      - HTML responses from wttr.in are rejected instead of being dumped into IRC.
    - Added URL shortening through YOURLS:
      - `!short`, `!shorten`, and `!shorturl` now create short links.
      - The shortener is configured through `SHORTURL_SITE`,
        `SHORTURL_USER`, and `SHORTURL_PASS` in `dat/setup.ini`.
    - Added public command discovery:
      - `!cmds` and `!commands` show a compact two-line public command summary in-channel.
      - The summary points users to `!help` for more information.
    - Help output was made less noisy:
      - `!help` replies privately to the requesting nick.
      - `!more` was added as a private alias for `!help`.
      - `!help commands` still returns the full command list privately.
    - Quote support added:
      - `!addq` stores a line in `dat/rdb/quote.rdb`
      - `!quote`, `!qt`, and `!quotetell` print a random stored quote
    - Added a word-of-the-day feature:
      - `!wotd`, `!wordofday`, and `!wordtoday` show the current entry.
      - The bot posts one word of the day automatically once per day in its home channel.
      - The entries live in `dat/wordofday.ini`.
    - Improved backup support:
      - `!backup` now creates `backups/YYYYMMDD-HHMMSS/`.
      - It backs up `info2.db`, `setup.ini`, `randomstuff.ini`, `random.ini`,
        `wordofday.ini`, `userlist.db`, `seen.db`, `stats.db`, `permbans.db`,
        `perform.ini`, and `servers.ini`.
      - The command reports how many files were saved and if any failed.
    - Flood/ignore behavior was made safer:
      - The flood guard now honors `FLOOD_KICK=0` and does not silently ignore users when flood kicking is disabled.
      - `!unignore` can be used even by a currently ignored user.
    - Manual kick/ban commands remain available:
      - Existing `!k`/`!kick` support is kept.
      - `!b` and `!ban` were added as aliases for the permanent-ban command.
    - Automatic kick/ban sample data was removed from the live database:
      - Automatic `KICK`, `TEMPBAN`, and ban action records were removed from `dat/info2.db`.
      - `dat/permbans.db` was cleared.
      - `BAN` and `TEMPBAN` variable help text was removed from setup/source output.
    - Official pre-made Darkbot databases from `darkbot.sourceforge.net/databases.html`
      were merged into `dat/info2.db`:
      - `Jason.db`, `acro2.db`, `acronyms.db`, `countrycodes.db`,
        `file_extensions.db`, `mac_errors.db`, `ports.db`, `rfc.db`,
        and `usa_phone_areacodes.db`.
      - Exact duplicate lines were removed while preserving the first copy.
    - Added James Marshall's Canonical Abbreviation/Acronym List from
      `marshall.freeshell.org/abbrev.html` to `dat/info2.db`:
      - Only the abbreviation list was imported; page header/footer content was skipped.
      - Exact duplicate lines were removed after import.
    - Added `!profquote` as a dedicated alias for the seeded professor quote list.
    - The randomstuff interval in `dat/setup.ini` is now 47 minutes:
      - `RANDOM_TIME=2820`
    - `deop.ini` is active again when the bot receives IRC 482.
    - `!weather` support and the data-path fixes from the fork are kept.
    - Old message-command flags were removed.
    - Added a root-level `./darkbot` start wrapper:
      - It runs `bin/darkbot`, writes `darkbot.pid`, and logs to `darkbot.out`.
      - If the pid file already points at a running process, it refuses to start a duplicate.
    - The shell helpers in `scripts/` and `bin/` were hardened:
      - `restart.darkbot` and `kill.darkbot` now resolve `darkbot.pid` from their own directory.
      - `dbcron` now checks the pid with `kill -0` and restarts from the actual install path.
    - Docker, Podman, Compose, and the container entrypoint were added.
    - Build and runtime requirements are documented for source and
      container installs.
    - The release files in `README`, `VERSION`, and `share/doc/darkbot/VERSION`
      now track the fork version together.

For the full historical changelog, see `docs/WHATSNEW`.
