# irccat

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

## Description
irccat is a standalone bot for sending events to IRC channels from scripts and applications. It supports both TCP and HTTP protocols, allowing commands to be executed in response to messages received on IRC.

## Key Features
- **Command Handling**: Executes commands based on user input, passing environment variables to the command handler script.
- **TCP Interface**: Sends strings over a TCP connection to specific channels or nicks.
- **HTTP Interface**: Accepts POST requests for sending messages and executing commands.
- **IRC Integration**: Connects to IRC servers, joins specified channels, and handles various IRC events like JOIN, PART, QUIT.

## File Analysis
- **command_handler.py** — Handles command execution based on environment variables provided by the IRC connection.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation for installing and using irccat.
- **.travis.yml** — Configuration file for Travis CI, used to automate testing and deployment.
- **auth.go** — Handles authentication of users joining specific channels.
- **command.go** — Manages command handling logic, including environment variable setup and execution.
- **main.go** — Main entry point for the application, setting up IRC connections and handling various events.
- **irccat.json** — Configuration file containing settings for TCP and HTTP listeners, IRC server connection details, and command handler information.
- **generic.go** — Implements a generic HTTP listener to handle incoming requests.
- **grafana.go** — Specific implementation of the Grafana alert listener.
- **httplistener.go** — Contains the logic for setting up and running HTTP servers.
- **colours.go** — Provides IRC formatting codes for messages sent over TCP.
- **tcplistener.go** — Handles incoming TCP connections and parses messages to send to IRC channels.