# irccat

**Category:** Standalone_Bot
**Original Author:** Unknown

## Description
irccat is a standalone bot for handling IRC commands through various interfaces including TCP and HTTP protocols. It supports command execution, channel management, and logging.

## Key Features
- Handles IRC commands via `?` and `!` prefixes.
- Manages authorized users and channels.
- Executes external commands based on configuration.
- Supports HTTP POST endpoints for sending messages to IRC channels.
- Connects to an IRC server using TLS with optional certificate verification skipping.
- Logs command executions and channel joins/partitions.

## File Analysis
- **command_runner.py** — Python script used as a command handler, executing scripts based on user commands.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation for the project, mentioning it is a re-implementation of irccat in Go.
- **.travis.yml** — Configuration file for Travis CI to run tests and build binaries for different platforms.
- **auth.go** — Handles user authentication and channel authorization events.
- **command.go** — Manages command handling logic, including execution and response formatting.
- **main.go** — Main entry point of the application, setting up IRC connection, TCP listener, and HTTP server.
- **irccat.json** — Configuration file for irccat settings such as IRC server details, channels to join, and command handler paths.
- **generic.go** — Generic message handling for HTTP POST requests.
- **grafana.go** — Specific handler for Grafana alerts sent via HTTP POST.
- **httplistener.go** — Go package containing the HTTP listener implementation.
- **colours.go** — Utility to replace IRC color codes in messages.
- **tcplistener.go** — TCP listener that handles incoming IRC commands.