# CloudBot IRC Bot

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

## Description
CloudBot is a standalone IRC bot designed to automate tasks on IRC networks. It supports various commands, event handling, and user permissions.

## Key Features
- **Commands**: Supports command triggers like `!cmd` and `.cmd`.
- **Permissions**: Implements an access/user-level system.
- **Text/Join/Kick/Ops Automation**: Automates text messages, channel joins, kicks, and operator actions.
- **Plugin Management**: Manages plugins with a reloader for dynamic updates.

## File Analysis
- **__init__.py** — Initializes the bot and sets up logging.
- **admin_bot.py** — Provides commands to manage permissions groups.
- **amazon.py** — Searches Amazon.com for products based on user queries.
- **attacks.py** — Loads attack phrases like larts, insults, flirts, kills, and slaps from text files.
- **bfs.py** — Interprets Brainfuck code.
- **bing.py** — Searches Google's Bing API for search results.
- **books.py** — Searches Google Books for book titles.
- **bot.py** — Core bot logic including event handling and plugin management.
- **client.py** — Manages IRC client connections and configurations.
- **config.py** — Configures logging, database setup, and other settings.
- **core_ctcp.py** — Handles CTCP (Client-to-Client Protocol) commands like VERSION, PING, and TIME.
- **core_misc.py** — Provides miscellaneous functionality such as auto-joining on invite and identifying to NickServ.
- **correction.py** — Corrects text based on user-defined patterns.
- **cryptocoins.py** — Fetches cryptocurrency exchange rates from various APIs.
- **cypher.py** — Implements basic encryption and decryption functions.
- **dictionary.py** — Retrieves definitions from the Encyclopedia Dramatica.
- **dramatica.py** — Queries the Encyclopedia Dramatica for articles.
- **eightball.py** — Provides random answers to yes/no questions using a magic 8-ball.
- **encrypt.py** — Encrypts and decrypts text with AES encryption.
- **feeds.py** — Retrieves RSS/ATOM feed items from various sources.
- **fishbans.py** — Fetches Minecraft ban information from FishBans API.
- **foods.py** — Provides random food-related facts.
- **fortune.py** — Generates random fortunes.
- **geoip.py** — Retrieves geolocation data using GeoLite2 database.
- **github.py** — Queries GitHub issues and repositories.
- **google_translate.py** — Translates text using Google Translate API.
- **googleurlparse.py** — Parses URLs from Google search results.
- **irc.py** — Manages IRC protocol interactions.
- **plugins/** — Contains various plugins for different functionalities.
- **reloader.py** — Reloads plugins dynamically without restarting the bot.
- **test_botvars.py** — Unit tests for `botvars` module.
- **test_colors.py** — Unit tests for color handling.
- **test_filesize.py** — Unit tests for file size formatting.
- **test_formatting.py** — Unit tests for text formatting.
- **test_timeformat.py** — Unit tests for time formatting.
- **test_tokenbucket.py** — Unit tests for token bucket rate limiting.