# 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 on IRC networks.

## Key Features
- Manages channel settings such as autojoin, key, and mode.
- Provides command suggestions based on user input.
- Implements a permission system with different access levels.
- Supports checking URLs for malicious content using VirusTotal.
- Offers various utility commands like dice rolling, factoids, and hash generation.

## File Analysis
- **start.py** — Entry point of the bot, setting up arguments and loading modules.
- **accept_invite.py** — Handles accepting channel invites based on server settings.
- **acronym.py** — Fetches possible meanings for acronyms from a web service.
- **admin.py** — Provides administrative commands like changing nickname and sending raw IRC commands.
- **auto_mode.py** — Manages automode settings in channels.
- **badwords.py** — Lists or adds badwords to the channel's filter.
- **birthday.py** — Handles birthday-related commands.
- **bitcoin.py** — Fetches Bitcoin exchange rates.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets and joins a predefined bot channel on connect.
- **botlist.py** — Sends a rollcall message when triggered.
- **botsnack.py** — Randomly sends an action message to the target channel.
- **channel_access.py** — Manages access levels in channels.
- **channel_keys.py** — Sets and retrieves channel keys for authentication.
- **channel_op.py** — Provides commands related to channel operations like kicking users.
- **channel_save.py** — Automatically joins specified channels on connect.
- **check_mode.py** — Checks user access modes in channels.
- **check_urls.py** — Checks URLs for malicious content using VirusTotal.
- **coins.py** — Implements a coin-tossing game with betting and interest rates.
- **command_suggestions.py** — Suggests commands based on user input.
- **config.py** — Manages configuration settings for the bot.
- **ctcp.py** — Handles CTCP requests and responses.
- **cve.py** — Fetches information about CVEs from a web service.
- **database_backup.py** — Backups the database at regular intervals.
- **deferred_read.py** — Defers parsing of some lines until after 001 is received.
- **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.
- **ducks.py** — Spawns ducks in the channel with certain conditions.
- **echo.py** — Echoes the received message back to the sender.
- **eightball.py** — Provides random answers like a magic 8-ball.
- **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-based commands.
- **fake_echo.py** — Echoes messages to the server as if they were sent by another user.
- **fediverse.py** — Fetches latest toots from a specified user on Fediverse instances.
- **format_activity.py** — Formats IRC activity for better readability.
- **github.py** — Searches for GitHub issues and pull requests.
- **google.py** — Fetches first result from Google search.
- **greeting.py** — Sends a greeting message when users join the channel.
- **hash.py** — Hashes strings using various algorithms.
- **help.py** — Provides help documentation for commands.
- **highlight_spam.py** — Protects against highlight spam in channels.
- **ids.py** — Displays user and channel IDs.
- **ignore.py** — Manages command, user, and channel-level ignore settings.
- **imdb.py** — Fetches information about movies or TV shows from IMDb.
- **imgur.py** — Retrieves details of images or galleries from Imgur.
- **in.py** — Sets reminders for future events.
- **info.py** — Displays version information.
- **ip_addresses.py** — Provides IP address and geolocation information.
- **ircv3.py** — Manages IRCv3 capabilities and statistics.
- **ircv3_botignore.py** — Ignores messages from specific servers with certain tags.
- **ircv3_chathistory.py** — Handles event playback for channel history.
- **ircv3_echo_message.py** — Echoes messages back to the sender if supported by server.
- **ircv3_labeled_responses.py** — Manages labeled responses and metadata.
- **ircv3_message_tracking.py** — Tracks message IDs and delivery status.
- **ircv3_metadata.py** — Sets metadata for the bot on connected servers.
- **ircv3_msgid.py** — Manages msgids for messages.