# BitBot IRC Bot

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

## Description
BitBot is a standalone IRC bot written in Python that provides various commands and features for managing channels, users, and automating tasks.

## Key Features
- Manages channel settings such as modes, invites, and access levels.
- Provides utilities like checking URLs with VirusTotal, managing factoids, and handling nicknames.
- Offers random number generation, dice rolling, and fortune-telling through the 8ball module.
- Supports automation of commands based on user actions.

## File Analysis
- **start.py** — Entry point for the bot, setting up command-line arguments and importing core modules.
- **8ball.py** — Implements a simple 8-ball fortune-telling feature.
- **accept_invite.py** — Handles accepting channel invites from other users.
- **admin.py** — Provides administrative commands like changing nicknames and sending raw IRC messages.
- **auto_mode.py** — Manages automatic mode changes based on user status.
- **badwords.py** — Allows setting badwords for channels, with a command to list them.
- **bitcoin.py** — Fetches current Bitcoin exchange rates from an API.
- **books.py** — Searches Google Books API for book information.
- **bot_channel.py** — Sets the main channel for the bot upon connection.
- **channel_access.py** — Manages user access levels in channels.
- **channel_op.py** — Handles highlight spam protection and channel operator management.
- **channel_save.py** — Automatically joins specified channels on bot connect.
- **check_mode.py** — Checks if a command requires specific channel modes to be set.
- **check_urls.py** — Automatically checks URLs for malicious content using VirusTotal.
- **coins.py** — Implements a simple betting game with various options like heads/tails, numbers, and colors.
- **config.py** — Manages configuration settings for the bot.
- **ctcp.py** — Responds to CTCP (Client-to-Client Protocol) queries.
- **cve.py** — Fetches details of Common Vulnerabilities and Exposures from a web API.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Provides definitions for words using Wordnik API.
- **dice.py** — Rolls dice based on user input.
- **duckduckgo.py** — Fetches first result from DuckDuckGo search engine.
- **ducks.py** — Implements a duck-themed feature with random messages and tail animations.
- **echo.py** — Echoes the received message back to the channel.
- **eval_lua.py** — Evaluates Lua code using an external service.
- **eval_python.py** — Evaluates Python code using an external service.
- **eval_rust.py** — Evaluates Rust code using an external service.
- **factoids.py** — Manages factoid commands for the bot.
- **format_activity.py** — Formats and logs various IRC events.
- **google.py** — Fetches first Google search result based on user input.
- **greeting.py** — Sends a greeting message to users when they join a channel.
- **hash.py** — Hashes strings using various algorithms.
- **ids.py** — Provides user and channel ID information.
- **imdb.py** — Searches for movie or TV show details from IMDb.
- **imgur.py** — Fetches image and gallery information from Imgur.
- **in.py** — Sets reminders based on user input.
- **ip_addresses.py** — Resolves IP addresses to hostnames using DNS lookup.
- **isgd.py** — Shortens URLs using the is.gd service.
- **karma.py** — Manages karma points for users in channels.
- **lastfm.py** — Retrieves last listened to tracks from a user's Last.fm profile.
- **location.py** — Geocodes addresses using OpenCage API.
- **message_tracking.py** — Tracks and tags messages with message IDs.
- **mixed_unicode.py** — Detects scripts used in text.
- **modules.py** — Manages loading and reloading of modules.
- **nick_regain.py** — Ensures the bot regains its nickname if it changes during connection.
- **nickserv.py** — Manages NickServ authentication on the server.
- **nr.py** — Fetches train information from National Rail API.
- **perform.py** — Executes predefined commands upon connecting to a server.
- **pong.py** — Responds with "Pong!" when receiving a ping command.
- **print_activity.py** — Prints formatted IRC activity events.
- **pronouns.py** — Manages user pronoun settings.
- **quotes.py** — Manages and displays quotes in channels.
- **random_number.py** — Generates random numbers based on user input.
- **rest_api.py** — Provides a REST API for interacting with the bot.
- **resume.py** — Manages resuming connections using tokens.
- **rot13.py** — Encodes/decodes text using ROT13 cipher.
- **sed.py** — Implements sed-like functionality to modify messages.
- **seen.py** — Tracks when users were last seen in channels.
- **shakespeare.py** — Generates insults based on Shakespearean language.
- **theme_data.py** — Manages theme data for the bot.