# 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 command-line interface for executing IRC commands.
- Implements user-level permissions and command restrictions.
- Includes modules for dice rolling, factoids, definitions, and more.
- Can automatically check URLs for malicious content using VirusTotal.

## File Analysis
- **start.py** — Entry point of the bot, initializes arguments and imports necessary modules.
- **8ball.py** — Implements a random response generator for "magic 8-ball" type queries.
- **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 automatic mode changes in channels based on user identification.
- **badwords.py** — Detects and lists bad words in the current channel, allowing users to add or remove them.
- **birthday.py** — Manages birthday dates for users in a channel.
- **bitcoin.py** — Fetches Bitcoin exchange rates from an API.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets the main bot channel on 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** — Handles highlighting spam and OP protection for channels.
- **channel_save.py** — Saves the list of auto-joined channels on connection.
- **check_mode.py** — Configures low and high channel modes.
- **check_urls.py** — Checks URLs for malicious content using VirusTotal API.
- **coins.py** — Implements a simple betting game with various options like coin flips, lottery, and more.
- **config.py** — Manages configuration settings for the bot.
- **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 001 is received.
- **define.py** — Fetches definitions for words using Wordnik API.
- **dice.py** — Rolls dice based on user input.
- **duckduckgo.py** — Retrieves the first result from DuckDuckGo search engine.
- **ducks.py** — Spawns ducks in a channel with certain conditions.
- **echo.py** — Echoes back received messages.
- **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 playground.
- **factoids.py** — Manages factoid storage and retrieval.
- **fake_echo.py** — Forwards messages to the server as if they were sent by the bot itself.
- **format_activity.py** — Formats and logs activity in channels.
- **google.py** — Retrieves Google search results for given queries.
- **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 to hostnames using DNS lookup.
- **ircv3_botignore.py** — Ignores messages with specific tags.
- **ircv3_chathistory.py** — Manages chat history and event playback.
- **ircv3_echo_message.py** — Echoes sent messages back to the sender.
- **ircv3_labeled_responses.py** — Handles labeled responses for CTCP requests.
- **ircv3_message_tracking.py** — Tracks message IDs and delivery status.
- **ircv3_metadata.py** — Sets metadata tags for server responses.
- **ircv3_multiline.py** — Supports multiline messages in IRC.
- **ircv3_resume.py** — Manages session resumption using STS (Session Token Security).
- **ircv3_server_time.py** — Manages server time synchronization.
- **ircv3_sts.py** — Implements STS (Session Token Security) for secure connections.
- **karma.py** — Tracks and displays karma points for users in channels.
- **lastfm.py** — Retrieves last played 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 script changes in text.