# irccat

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

## Description
irccat is a standalone bot designed to interact with IRC channels by executing commands through various HTTP or TCP interfaces, and logging into an IRC server using provided credentials.

## Key Features
- **Command Execution**: Handles commands sent via `?` or `!` prefixes in IRC messages.
- **HTTP Interface**: Supports HTTP POST endpoints for sending commands.
- **TCP Interface**: Listens on a specified port to receive commands over TCP.
- **Authentication**: Manages authorized users and channels.
- **Logging**: Connects to an IRC server, joins specified channels, and logs events.

## File Analysis
- **command_runner.py** — Script that handles command execution by looking for matching scripts in the `/usr/share/irccat/` directory.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation for a Go reimplementation of irccat.
- **.travis.yml** — Configuration file for Travis CI to build and deploy the bot.
- **auth.go** — Manages authentication by tracking authorized users joining or parting channels.
- **command.go** — Handles command execution based on user authorization and channel context.
- **main.go** — Main entry point of the application, setting up IRC connections and listeners.
- **irccat.json** — Configuration file for irccat settings such as IRC server details, HTTP listener configuration, and command handler.
- **generic.go** — Generic HTTP message handler that sends messages to IRC channels.
- **grafana.go** — Handles Grafana alert notifications by sending them to specified IRC channels.
- **httplistener.go** — Sets up the HTTP server for receiving commands.
- **colours.go** — Provides color formatting functions for IRC messages.
- **tcplistener.go** — Listens on a TCP port and sends received messages to IRC channels.