# BitBot v1.4.0

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

## Description
BitBot is a standalone IRC bot written in Python that provides various functionalities such as channel management, user interaction, and information retrieval.

## Key Features
- **Channel Management**: Automode settings, channel access control, highlight spam protection.
- **User Interaction**: Nickname change, raw IRC commands, kick/ban users based on conditions.
- **Information Retrieval**: Bitcoin exchange rate, IMDb movie search, SoundCloud track lookup.
- **Automation**: Auto-joining channels, message tracking, factoid storage and retrieval.

## File Analysis
- **start.py** — Entry point for the bot, setting up command-line arguments and importing core modules.
- **8ball.py** — Implements an 8-ball fortune-telling feature.
- **accept_invite.py** — Handles accepting channel invites based on server settings.
- **admin.py** — Provides administrative commands like changing nickname and sending raw IRC data.
- **auto_mode.py** — Manages automode settings for channels.
- **badwords.py** — Tracks and manages bad words in channels.
- **bitcoin.py** — Fetches current Bitcoin exchange rates.
- **books.py** — Retrieves book information from Google Books API.
- **bot_channel.py** — Sets the main bot channel on connection.
- **channel_access.py** — Manages user access levels for channels.
- **channel_op.py** — Handles channel operator privileges and spam protection.
- **channel_save.py** — Saves autojoin settings upon connecting to a server.
- **check_mode.py** — Checks required channel modes before executing commands.
- **check_urls.py** — Automatically checks URLs for malware using VirusTotal API.
- **config.py** — Manages configuration settings and results.
- **ctcp.py** — Responds to CTCP version and source queries.
- **cve.py** — Fetches Common Vulnerabilities and Exposures (CVE) information.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Retrieves definitions from Wordnik API.
- **dice.py** — Rolls dice with specified sides and count.
- **ducks.py** — Implements a duck-themed feature that sends random messages to keep channels active.
- **eval_lua.py** — Evaluates Lua code snippets.
- **eval_python.py** — Evaluates Python code snippets.
- **eval_rust.py** — Evaluates Rust code snippets.
- **factoids.py** — Stores and retrieves factoids (short pieces of information).
- **format_activity.py** — Formats various IRC events for logging.
- **google.py** — Searches Google for the first result based on a query.
- **greeting.py** — Sends a greeting message to users when they join a channel.
- **hash.py** — Hashes strings using various algorithms.
- **ids.py** — Shows user and channel IDs.
- **imdb.py** — Retrieves information about movies from IMDb API.
- **imgur.py** — Fetches image details from Imgur.
- **in.py** — Sets reminders for users.
- **ip_addresses.py** — Resolves IP addresses using DNS lookup.
- **isgd.py** — Shortens URLs using is.gd service.
- **karma.py** — Tracks and displays karma points for users.
- **lastfm.py** — Retrieves currently playing tracks from last.fm.
- **message_tracking.py** — Tracks private messages and marks them as read or delivered.
- **mixed_unicode.py** — Detects scripts in Unicode text.
- **modules.py** — Manages loading and unloading of modules.
- **nick_regain.py** — Ensures the bot regains its nickname on connection.
- **nickserv.py** — Authenticates with NickServ using a password.
- **nr.py** — Fetches train information from National Rail API.
- **perform.py** — Executes predefined commands upon connecting to a server.
- **pong.py** — Responds to ping messages with pong.
- **print_activity.py** — Prints formatted IRC activity.
- **quotes.py** — Stores and retrieves quotes in categories.
- **random_number.py** — Generates random numbers within specified ranges.
- **rest_api.py** — Provides an HTTP REST API for interacting with the bot.
- **resume.py** — Manages resume tokens for channel state persistence.
- **rot13.py** — Encodes/decodes text using ROT13 cipher.
- **sed.py** — Implements sed-like functionality in channels.
- **seen.py** — Tracks when users were last seen in a channel.
- **shakespeare.py** — Generates insults in Shakespearean English.
- **signals.py** — Handles signal interrupts for graceful shutdowns.
- **soundcloud.py** — Searches SoundCloud for tracks or profiles.
- **spotify.py** — Retrieves information about Spotify tracks and artists.
- **stats.py** — Provides uptime and statistics about the bot.