# BitBot 1.9.0

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

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

## Key Features
- Manages channel settings such as autojoin, nicknames, and modes.
- Provides command-line arguments to configure the bot's behavior.
- Supports user permissions and access levels.
- Includes modules for fortune-telling, random number generation, and currency exchange rates.

## File Analysis
- **start.py** — Entry point of the bot with argument parsing and module initialization.
- **8ball.py** — Implements a fortune-telling feature using predefined responses.
- **accept_invite.py** — Configures whether the bot accepts channel invites.
- **admin.py** — Provides administrative commands for changing nicknames, sending raw IRC commands, and managing channel modes.
- **auto_mode.py** — Manages channel mode settings based on user identification.
- **badwords.py** — Implements a badword filter in channels.
- **birthday.py** — Handles birthday-related commands and date parsing.
- **bitcoin.py** — Fetches real-time Bitcoin exchange rates from an API.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets the main channel for the bot to join upon connection.
- **botlist.py** — Displays a message when certain commands are received in channels.
- **channel_access.py** — Manages user access levels and permissions within channels.
- **channel_op.py** — Implements highlight spam protection and manages channel operators.
- **channel_save.py** — Saves the state of joined channels upon disconnection.
- **check_mode.py** — Configures required modes for commands to execute.
- **check_urls.py** — Checks URLs for malicious content using VirusTotal API.
- **coins.py** — Implements a betting system with various game options and interest rates.
- **config.py** — Manages configuration settings for the bot, including channel-specific settings.
- **ctcp.py** — Responds to CTCP requests on the server.
- **cve.py** — Fetches details of Common Vulnerabilities and Exposures (CVE) from a specified API.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Provides dictionary definitions using Wordnik API.
- **dice.py** — Rolls dice with customizable sides.
- **duckduckgo.py** — Fetches search results from DuckDuckGo.
- **ducks.py** — Spawns ducks in channels based on user messages.
- **echo.py** — Echoes the received message back to the sender.
- **eval_lua.py** — Evaluates Lua code using an online service.
- **eval_python.py** — Evaluates Python code using an online service.
- **eval_rust.py** — Evaluates Rust code using an online service.
- **factoids.py** — Manages factoid commands for storing and retrieving information.
- **format_activity.py** — Formats and logs various IRC events.
- **google.py** — Fetches search results from Google Custom Search API.
- **greeting.py** — Sends a greeting message to users upon joining 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 information using the OMDb API.
- **imgur.py** — Fetches image details from Imgur.
- **in.py** — Sets reminders based on time input.
- **ip_addresses.py** — Resolves IP addresses to hostnames and vice versa.
- **ircv3_chathistory.py** — Implements chat history tracking for IRCv3.
- **ircv3_labeled_responses.py** — Manages labeled responses in IRCv3.
- **ircv3_message_tracking.py** — Tracks message IDs and delivery status in IRCv3.
- **ircv3_metadata.py** — Sets metadata tags for the bot on IRCv3 servers.
- **ircv3_msgid.py** — Manages message IDs in IRCv3.
- **ircv3_resume.py** — Implements server resume functionality for IRCv3.
- **ircv3_server_time.py** — Tracks server time in IRCv3.
- **ircv3_sts.py** — Manages Secure Transport Security (STS) policies for IRCv3 servers.
- **karma.py** — Manages karma points and responses based on user actions.
- **lastfm.py** — Fetches last played track information from Last.fm.
- **location.py** — Sets and retrieves location data using OpenCage API.
- **mixed_unicode.py** — Detects scripts in text for mixed language support.
- **modules.py** — Manages loading and unloading of modules.
- **nick_regain.py** — Handles nickname changes upon reconnecting to a server.
- **nickserv.py** — Identifies with NickServ using a configured password.
- **nr.py** — Fetches train information from the National Rail API.
- **perform.py** — Executes predefined commands on connection.
- **pong.py** — Responds to ping messages with pong.
- **print_activity.py** — Prints formatted IRC activity logs.
- **pronouns.py** — Manages user pronoun settings.