# irccat

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

## Description
irccat is a standalone bot that allows sending events to IRC channels from scripts or other applications via TCP or HTTP. It supports various IRC commands and can handle incoming IRC events such as JOIN, PART, NICK changes.

## Key Features
- Sends messages to IRC channels via TCP or HTTP.
- Handles generic IRC commands like PRIVMSG, TOPIC, and NICK.
- Supports authentication for certain commands.
- Processes GitHub webhooks for issues, pull requests, and releases.
- Manages IRC connections with TLS support.
- Runs command handlers based on received events.

## File Analysis
- **command_handler.py** — Handles commands sent to the bot via IRC.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation for installing and using irccat.
- **.travis.yml** — Configuration for Travis CI testing.
- **auth.go** — Implements authentication logic for certain commands.
- **command.go** — Handles command execution based on received events.
- **main.go** — Main entry point of the bot, setting up IRC connection and listeners.
- **colours.go** — Provides color formatting for IRC messages.
- **dispatcher.go** — Sends messages to IRC channels or nicks.
- **irccat.json** — Configuration file for irccat settings like IRC server details and command handlers.
- **generic.go** — Handles generic HTTP POST requests.
- **github.go** — Processes GitHub webhooks for issues, pull requests, and releases.
- **grafana.go** — Handles Grafana webhook alerts.
- **httplistener.go** — Sets up HTTP listeners for various services.
- **templates.go** — Provides templates for rendering messages from webhooks.
- **string.go** — Utility functions for string manipulation.
- **string_test.go** — Test cases for string utility functions.
- **issue_comment.json**, **issues.json**, **pull_request.json**, **push.json**, **release.json** — Example JSON payloads for GitHub webhooks.