# Cadmus - An IRC Bot, Logger of Channels

**Category:** Standalone_Bot
**Original Author:** James Mills

## Description
Cadmus is a standalone IRC bot designed to log channel activities on an IRC network.

## Key Features
- Connects to a specified IRC server and joins channels as invited.
- Logs all messages in the joined channels.
- Rotates logs daily, creating new log files for each day.
- Uses a database to store information about channels and their logs.
- Implements logging functionality through a custom logger interface.

## File Analysis
- **LICENSE** — Contains the MIT license terms.
- **README.md** — Documentation on Cadmus's installation, usage, and related projects.
- **.drone.yml** — Configuration for continuous integration using Drone CI/CD.
- **.gitignore** — Specifies files to be ignored by Git version control.
- **Dockerfile** — Defines a Docker image for Cadmus, including build and runtime instructions.
- **Makefile** — Provides Make commands for building, testing, and deploying Cadmus.
- **_config.yml** — Configuration settings for Jekyll static site generator (not used in this context).
- **bot.go** — Contains the core logic for the IRC bot, handling connections, logging, and channel management.
- **docker-compose.yml** — Configuration for running Cadmus using Docker Compose.
- **logger.go** — Implements a logger interface with file-based log rotation.
- **models.go** — Defines database models for storing channel information.
- **types.go** — Contains data types and utility functions used by the bot.
- **utils.go** — Utility functions for parsing addresses and other helper methods.
- **version.go** — Manages versioning information.