# irccat

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

## Description
irccat is a standalone bot designed to send events to IRC channels from scripts or other applications via TCP, HTTP, or command triggers. It supports various event handlers and can execute commands based on user input.

## Key Features
- **Command Handling**: Processes commands sent through `?command` in private messages.
- **TCP Listener**: Accepts strings over a TCP connection and sends them to IRC channels.
- **HTTP Endpoint**: Provides an HTTP endpoint for sending messages to IRC channels.
- **IRC Join/Part Management**: Automatically joins new channels defined in the configuration.
- **Command Authorization**: Restricts command execution based on user authorization.

## File Analysis
- **command_runner.py** — Python script that handles command execution from private messages.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation for irccat, detailing installation and usage instructions.
- **.travis.yml** — Configuration file for continuous integration using Travis CI.
- **auth.go** — Go code that manages user authorization for command execution.
- **command.go** — Handles command execution based on the configuration.
- **main.go** — Main entry point of the irccat bot, setting up IRC connections and event handlers.
- **irccat.json** — Configuration file defining various settings such as TCP and HTTP listeners, IRC server details, and command handling.
- **generic.go** — Handles generic HTTP POST requests to send messages to IRC channels.
- **grafana.go** — Specific handler for Grafana alerts sent via the HTTP endpoint.
- **httplistener.go** — Go code that sets up an HTTP server with various endpoints.
- **colours.go** — Defines color codes used in IRC message formatting.
- **tcplistener.go** — Handles TCP connections and sends messages to IRC channels.