# Cinch IRC Bot Framework

**Category:** Standalone_Bot
**Original Author:** Lee Jarvis, Dominik Honnef

## Description
Cinch is an IRC bot building framework for Ruby that simplifies creating IRC bots with minimal effort. It provides a simple interface based on plugins and rules.

## Key Features
- **Bot Options**: Configurable channels to join upon connecting.
- **DCC Support**: Handles DCC SEND and other file transfer mechanisms.
- **Event Handling**: Supports various events like channel joins, messages, and more.
- **Plugin System**: Allows for easy creation of custom plugins with match patterns and handlers.

## File Analysis
- **LICENSE** — Grants permission to use the software under certain conditions.
- **README.md** — Provides an overview of Cinch but does not reflect its actual functionality.
- **CHANGELOG** — Tracks changes in versions 2.0.6, 2.0.5, and 2.0.4.
- **Rakefile** — Defines tasks for testing the bot.
- **cinch.gemspec** — Metadata for packaging Cinch as a Ruby gem.
- **bot_options.md** — Documentation on configuration options like channels and DCC settings.
- **common_tasks.md** — Describes common operations such as checking user online status.
- **logging.md** — Details the logging system used in Cinch.
- **plugins.md** — Placeholder for plugin documentation.
- **autovoice.rb** — A bot that auto-voices visitors upon joining a channel.
- **google.rb** — A bot that searches Google and returns results to users.
- **hello.rb** — A simple bot that greets users with "Hello, [nick]".
- **join_part.rb** — Manages user joins and parts in channels based on admin permissions.
- **memo.rb** — Stores messages for specific nicks and sends them back when requested.
- **msg.rb** — Sends a message to another user specified by the sender.
- **seen.rb** — Tracks and logs when users were last seen in channels.
- **urban_dict.rb** — Retrieves definitions from Urban Dictionary.
- **url_shorten.rb** — Shortens URLs found in messages using tinyURL API.