# irccat

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

## Description
irccat is a standalone bot for sending events to IRC channels from scripts or other applications via TCP or HTTP requests.

## Key Features
- Sends messages to IRC channels using TCP or HTTP POST requests.
- Supports multiple recipients and channel topics.
- Handles IRC formatting codes.
- Implements command handling through external scripts.
- Integrates with GitHub webhooks for issue, pull request, and release events.
- Provides a generic HTTP listener for sending messages.

## File Analysis
- **command_handler.py** — Script to handle commands from IRC by running external scripts.
- **webhook_test.py** — Simple script to test webhook functionality.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation on installation and usage of irccat.
- **.gitignore** — Files and directories to be ignored by Git.
- **.travis.yml** — Configuration for Travis CI continuous integration.
- **Dockerfile** — Docker build configuration for statically linking the binary with SSL root certificates.
- **auth.go** — Authentication handling for IRC events.
- **command.go** — Command handling logic, including running external commands and sending responses.
- **go.sum** — Go module dependencies.
- **irc.go** — IRC connection and event handling.
- **main.go** — Main entry point of the application.
- **colours.go** — IRC formatting code replacement.
- **dispatcher.go** — Message dispatching logic for IRC channels.
- **generic.go** — HTTP listener for generic POST requests.
- **github.go** — GitHub webhook handler.
- **grafana.go** — Grafana alert handler.
- **httplistener.go** — HTTP listener configuration and handlers.
- **prometheus.go** — Prometheus Alertmanager webhook handler.
- **irccat.json** — Configuration file for irccat settings.
- **string.go** — Utility functions for string manipulation.
- **string_test.go** — Test cases for string utility functions.
- **check_suite.json** — Example JSON payload for GitHub check suite events.
- **issue_comment.json** — Example JSON payload for GitHub issue comment events.
- **issues.json** — Example JSON payload for GitHub issues.
- **pull_request.json** — Example JSON payload for GitHub pull request events.
- **push.json** — Example JSON payload for GitHub push events.
- **release.json** — Example JSON payload for GitHub release events.
- **alert.json** — Example JSON payload for Prometheus Alertmanager alerts.
- **resolved.json** — Example JSON payload for Prometheus Alertmanager resolved alerts.