# BitBot v1.10.0

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

## Description
BitBot is an IRC bot designed to automate various tasks on IRC channels, including managing user permissions, responding to commands, and handling channel operations.

## Key Features
- Manages channel settings such as mode access and invite acceptance.
- Provides command-driven functionality like changing nicknames, sending raw IRC commands, and kicking users.
- Implements a system for tracking and managing factoids (user-defined snippets).
- Can handle user-specific permissions and channel-specific configurations.
- Includes modules for fetching information from external APIs (e.g., IMDb, DuckDuckGo).

## File Analysis
- **start.py** — Entry point of the bot, setting up command-line arguments and importing core modules.
- **8ball.py** — Implements an 8-ball style random response module.
- **accept_invite.py** — Configures whether the bot accepts invites on a per-server basis.
- **admin.py** — Provides administrative commands for changing nicknames and sending raw IRC data.
- **auto_mode.py** — Manages channel modes based on user identification status.
- **badwords.py** — Tracks and lists bad words in channels, allowing users to add or view them.
- **birthday.py** — Handles birthday-related functionality within channels.
- **bitcoin.py** — Fetches current Bitcoin exchange rates from an API.
- **books.py** — Retrieves book information using the Google Books API.
- **bot_channel.py** — Sets the main channel for the bot upon connection.
- **botlist.py** — Sends a predefined message when certain commands are received in channels.
- **channel_access.py** — Manages user access levels and permissions within channels.
- **channel_op.py** — Implements spam protection and highlight spam handling.
- **channel_save.py** — Automatically joins specified channels on bot connection.
- **check_mode.py** — Configures low and high channel mode access settings.
- **check_urls.py** — Checks URLs for malicious content using VirusTotal API.
- **coins.py** — Manages a coin-related game with betting and lottery functionality.
- **config.py** — Handles configuration settings for the bot, including channel-specific configurations.
- **ctcp.py** — Responds to CTCP requests on the server.
- **cve.py** — Fetches information about Common Vulnerabilities and Exposures (CVE) numbers from an API.
- **database_backup.py** — Backups the database at regular intervals.
- **deferred_read.py** — Postpones parsing of certain IRC lines until after receiving a 001 message.
- **define.py** — Fetches definitions for words using the Wordnik API.
- **dice.py** — Rolls dice based on user input.
- **duckduckgo.py** — Retrieves first search result from DuckDuckGo.
- **ducks.py** — Spawns ducks in channels with certain conditions.
- **echo.py** — Echoes messages back to users.
- **eval_lua.py** — Evaluates Lua code snippets using an online service.
- **eval_python.py** — Evaluates Python code snippets using an online service.
- **eval_rust.py** — Evaluates Rust code snippets using an online playground.
- **factoids.py** — Manages user-defined factoids in channels.
- **fake_echo.py** — Echoes messages to the server as if they were sent by the bot itself.
- **format_activity.py** — Formats and processes IRC activity events.
- **google.py** — Fetches first search result from Google using a custom search API.
- **greeting.py** — Sends a greeting message when users join a channel.
- **hash.py** — Hashes strings using various algorithms.
- **help.py** — Provides help documentation for commands.
- **ids.py** — Displays user and channel IDs.
- **ignore.py** — Ignores messages from specific users or commands.
- **imdb.py** — Fetches information about movies and TV shows from the IMDb API.
- **imgur.py** — Retrieves image details from Imgur URLs.
- **in.py** — Sets reminders for future events.
- **ip_addresses.py** — Resolves IP addresses from hostnames.
- **ircv3_botignore.py** — Ignores messages tagged with specific IRCv3 tags.
- **ircv3_chathistory.py** — Handles event playback and channel history.
- **ircv3_echo_message.py** — Echoes messages back to the sender if the server supports echo-message capability.
- **ircv3_labeled_responses.py** — Implements labeled responses for CTCP requests.
- **ircv3_message_tracking.py** — Tracks message IDs and delivery status.
- **ircv3_metadata.py** — Sets metadata tags on IRC messages.
- **ircv3_multiline.py** — Supports multiline messages with the multiline capability.
- **ircv3_resume.py** — Manages session resumption using STS (Session Token) capability.
- **ircv3_server_time.py** — Tracks server time for synchronization purposes.
- **ircv3_sts.py** — Implements the Server Time and Session Token (STS) capabilities.
- **karma.py** — Manages karma points for users in channels.
- **lastfm.py** — Fetches last listened to tracks from Last.fm.
- **location.py** — Sets and retrieves user location data using OpenCage API.
- **message_filter.py** — Filters messages based on predefined rules.
- **mixed_unicode.py** — Detects and processes mixed script text.