# Cinch 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 by providing a simple interface based on plugins and rules.

## Key Features
- **Bot Options**: Configurable channels to join upon connecting.
- **DCC Support**: Handles DCC SEND functionality.
- **Event Handling**: Supports various events like `:join`, `:kick`, and `:privmsg`.
- **Plugin System**: Allows for easy creation of plugins using a DSL.
- **Logging Facilities**: Provides logging capabilities with different levels.

## File Analysis
- **LICENSE** — Grants permission to use the software under certain conditions.
- **README.md** — Documentation on how to install and use Cinch.
- **CHANGELOG** — Logs changes made in each version of Cinch.
- **Rakefile** — Defines tasks for testing and default behavior.
- **cinch.gemspec** — Metadata for packaging the gem.
- **bot_options.md** — Describes configuration options like channels, DCC settings, etc.
- **common_mistakes.md** — Lists common mistakes when using Cinch.
- **events.md** — Details various events that can be handled by plugins.
- **getting_started.md** — A guide to quickly start writing your own IRC bot with Cinch.
- **logging.md** — Documentation on logging within the framework.
- **migrating.md** — Guide for migrating between API incompatible versions of Cinch.
- **plugins.md** — Placeholder for documentation on plugins.
- **autovoice.rb** — A plugin that auto-voices visitors in a channel.
- **google.rb** — A plugin that performs Google searches and replies with the results.
- **hello.rb** — A simple plugin that responds to "hello" messages.
- **join_part.rb** — A plugin for joining/parting channels based on admin permissions.
- **memo.rb** — A plugin that stores and retrieves messages from users.
- **msg.rb** — A plugin that sends private messages based on commands.
- **seen.rb** — Tracks when users were last seen in a channel.
- **urban_dict.rb** — A plugin that fetches definitions from Urban Dictionary.
- **url_shorten.rb** — A plugin that shortens URLs found in messages.