# irccat

**Category:** Standalone_Bot
**Original Author:** RJ (Unknown)

## Description
irccat is a standalone bot for sending events to IRC channels from scripts or other applications, supporting TCP and HTTP protocols.

## Key Features
- Sends messages to IRC channels via TCP port.
- Supports sending messages to multiple recipients at once.
- Handles IRC formatting codes.
- Manages authentication for commands.
- Processes command handlers defined in external scripts.
- Monitors IRC channel joins, parts, quits, and nick changes for authorization purposes.

## File Analysis
- **command_handler.py** — Script handler for executing commands based on received messages.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation for the irccat project.
- **.travis.yml** — Configuration file for continuous integration using Travis CI.
- **auth.go** — Authentication logic for handling IRC channel joins, parts, and quits.
- **command.go** — Command processing and execution logic.
- **main.go** — Main entry point of the irccat application.
- **colours.go** — Mapping of color codes to IRC formatting commands.
- **dispatcher.go** — Functions for sending messages to IRC channels based on recipients.
- **irccat.json** — Configuration file defining TCP and HTTP listeners, IRC server connection details, command handlers, and more.
- **generic.go** — Handler for generic HTTP POST requests.
- **github.go** — Handler for GitHub webhooks.
- **grafana.go** — Handler for Grafana webhooks.
- **httplistener.go** — HTTP listener setup and handling of different webhook types.
- **templates.go** — Templates for rendering messages based on event types.
- **string.go** — Utility functions for string manipulation, including truncation.
- **string_test.go** — Test cases for the string utility functions.
- **issue_comment.json**, **issues.json**, **pull_request.json**, **push.json**, **release.json** — JSON payloads representing different GitHub webhook events.