# sexpbot

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

## Description
Sexpbot is a standalone IRC bot written in Clojure using the PircBot Java framework. It includes various plugins for interacting with users, managing channels, and providing information.

## Key Features
- Runs unattended as an IRC bot.
- Supports user authentication and administration commands.
- Includes plugins for fortune cookies, dictionary lookups, Google searches, weather reports, and more.
- Allows execution of Clojure code in a sandboxed environment.
- Provides text manipulation features like leet speak conversion.

## File Analysis
- **README** — Describes the bot's purpose and setup instructions. It uses PircBot for low-level IRC connection handling and multimethods for command dispatching.
- **.gitignore** — Lists files to be ignored by Git version control system.
- **dict** — Contains a dictionary of words and phrases.
- **epl-v10.html** — License file under Eclipse Public License v1.0.
- **example.policy** — Java policy file granting all permissions.
- **project.clj** — Leiningen project configuration file specifying dependencies and build settings.
- **sexpbot** — Command to start the bot using Clojure's `clojure.main`.
- **fortunes.clj** — Configuration for fortune cookie plugin.
- **info.clj** — Main configuration file containing server, channel, user, and plugin information.
- **respond.clj** — Handles command responses based on user input.
- **utilities.clj** — Utility functions used by the bot.
- **brainfuck.clj** — Implements a Brainfuck interpreter as a plugin.
- **dictionary.clj** — Provides dictionary lookups using Wordnik API.
- **dynamic.clj** — Converts dynamic text to Clojure code strings.
- **eball.clj** — Implements an 8-ball fortune teller.
- **eval.clj** — Allows execution of Clojure code in a sandboxed environment.
- **fortune.clj** — Manages and displays fortunes from a database.
- **google.clj** — Performs Google searches using the Google AJAX API.
- **haskell.clj** — Evaluates Haskell expressions on TryHaskell.org.
- **leet.clj** — Converts text to leet speak.
- **login.clj** — Handles user login and logout commands.
- **mail.clj** — Manages private messaging between users.
- **operator.clj** — Provides IRC operator management commands.
- **rss.clj** — Pulls RSS feed data and sends it to channels.
- **shorturl.clj** — Shortens URLs using Bit.ly API.
- **spellcheck.clj** — Implements a spell checker based on Norvig's algorithm.
- **timer.clj** — Manages timers for users.
- **title.clj** — Scrapes titles from web pages and sends them to channels.
- **translate.clj** — Translates text between languages using Google Translate API.
- **utils.clj** — Provides utility functions used by various plugins.
- **walton.clj** — Sends example code snippets based on user input.
- **weather.clj** — Fetches weather forecasts from Weather Underground API.
- **whatis.clj** — Manages and retrieves "whatis" definitions for users.
- **core_test.clj** — Test suite for the core bot functionality.