# irccat

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

## Description
irccat is a standalone bot designed to send events from scripts or other applications to IRC channels via TCP or HTTP. It supports various IRC commands and can be configured to handle specific tasks like sending messages, setting channel topics, and responding to HTTP webhooks.

## Key Features
- Sends events to IRC channels via TCP or HTTP.
- Supports custom command handling through a Python script.
- Configurable IRC server connection details.
- Handles generic HTTP POST requests for sending messages.
- Manages authentication for commands based on nicknames.

## File Analysis
- **command_handler.py** — handles custom commands by executing scripts in the specified directory.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — documentation for installation and usage of irccat.
- **.travis.yml** — configuration for continuous integration using Travis CI.
- **Dockerfile** — Docker build instructions to create a small image with the bot binary and SSL root certificates.
- **auth.go** — manages authentication for IRC commands based on nicknames.
- **command.go** — handles command execution and output formatting.
- **main.go** — main entry point of the application, setting up IRC connections and listeners.
- **colours.go** — defines color codes for IRC messages.
- **dispatcher.go** — dispatches messages to appropriate channels or nicks.
- **irccat.json** — configuration file for irccat settings like IRC server details and HTTP listener configurations.
- **generic.go** — handles generic HTTP POST requests.
- **github.go** — handles GitHub webhooks for sending notifications.
- **grafana.go** — handles Grafana webhook notifications.
- **httplistener.go** — manages HTTP listeners and their handlers.
- **string.go** — utility functions for string manipulation.
- **string_test.go** — test cases for the string manipulation utilities.
- **issue_comment.json**, **issues.json**, **pull_request.json**, **push.json**, **release.json** — JSON examples for GitHub webhook payloads.