# irccat

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

## Description
irccat is a standalone bot designed to handle IRC commands through various protocols (TCP and HTTP) and execute external scripts or commands based on user input.

## Key Features
- Handles IRC commands via TCP and HTTP protocols.
- Executes external commands using `command_runner.py`.
- Manages authorized users for command execution.
- Supports multiple channels and authentication for commands.
- Logs command executions and errors.

## File Analysis
- **auth.go** — Manages authentication of users for command execution.
- **command.go** — Handles incoming IRC commands, executes them, and limits the number of lines in responses.
- **main.go** — Main entry point that sets up TCP and HTTP listeners, connects to IRC servers, and handles configuration changes.
- **irccat.json** — Configuration file specifying server details, command handlers, and channel information.
- **generic.go** — Handles generic HTTP POST requests for sending messages to IRC channels.
- **grafana.go** — Handles Grafana alert notifications by sending messages to IRC channels.
- **httplistener.go** — Manages HTTP listeners for TCP and Grafana alerts.
- **colours.go** — Provides color formatting for text messages.
- **command_runner.py** — Python script that runs external commands based on user input.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Basic documentation for the project.
- **.travis.yml** — Configuration file for Travis CI continuous integration.