# irccat

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

## Description
irccat is a standalone bot designed to send events from scripts or other applications to IRC channels via TCP or HTTP webhooks.

## Key Features
- Sends messages to IRC channels using TCP connections.
- Handles commands and events through custom command handlers.
- Supports GitHub, Grafana, and Prometheus webhooks for integration with continuous integration systems and monitoring tools.
- Configurable IRC connection settings including TLS support and SASL authentication.
- Logs incoming messages and sends them to specified IRC channels or users.

## File Analysis
- **command_handler.py** — Handles custom commands by executing scripts in the defined path.
- **webhook_test.py** — Tests sending webhooks to a local server.
- **LICENSE** — GNU General Public License v3.0.
- **README.md** — Documentation for installing and using irccat, including installation instructions and examples of usage.
- **.gitignore** — Ignores specific files from version control.
- **.travis.yml** — Configuration file for Travis CI to build and deploy the project.
- **Dockerfile** — Defines a Docker image for running irccat.
- **auth.go** — Manages authentication for IRC channels and users.
- **command.go** — Handles command execution based on user input.
- **irc.go** — Connects to an IRC server, handles channel joins and messages.
- **main.go** — Main entry point of the application, initializes configuration and starts the bot.
- **colours.go** — Provides color formatting for messages sent over IRC.
- **dispatcher.go** — Sends messages to specified IRC channels or users based on recipient tags.
- **irccat.json** — Configuration file containing settings for TCP and HTTP listeners, IRC connection details, and command handling.
- **generic.go** — Handles generic HTTP POST requests to send messages to IRC.
- **github.go** — Processes GitHub webhooks for issues, pull requests, and releases.
- **grafana.go** — Sends alerts from Grafana to specified IRC channels.
- **prometheus.go** — Handles Prometheus Alertmanager webhooks.
- **templates.go** — Provides templates for rendering messages based on webhook events.
- **tcplistener.go** — Listens for TCP connections and sends received messages to IRC.
- **string.go** — Utility functions for string manipulation, including truncation.
- **string_test.go** — Test cases for the string manipulation utility functions.
- **check_suite.json** — Example JSON payload for a GitHub check suite event.
- **issue_comment.json** — Example JSON payload for a GitHub issue comment event.
- **issues.json** — Example JSON payload for a GitHub issues event.
- **pull_request.json** — Example JSON payload for a GitHub pull request event.
- **push.json** — Example JSON payload for a GitHub push event.
- **release.json** — Example JSON payload for a GitHub release event.
- **alert.json** — Example JSON payload for an Alertmanager alert.
- **resolved.json** — Example JSON payload for an Alertmanager resolved alert.