# BitBot IRC Bot

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

## Description
BitBot is a standalone IRC bot designed to automate various tasks on IRC networks. It includes features such as command handling, channel management, and user interaction.

## Key Features
- **Command Handling**: Implements commands like `!botlist`, `!rollcall`, and others.
- **Channel Management**: Manages channel settings and operations including joining channels, setting channel keys, and managing access levels.
- **User Interaction**: Handles private messages, notices, and CTCP requests.
- **Automated Actions**: Performs actions based on user commands or network events such as joining a channel, kicking users, and changing nicknames.

## File Analysis
- **start.py** — Entry point for the bot, initializes command-line arguments and imports necessary modules.
- **accept_invite.py** — Handles accepting invites to channels.
- **acronym.py** — Provides definitions of acronyms based on user input.
- **admin.py** — Manages administrative commands like changing nicknames and sending raw IRC commands.
- **auto_mode.py** — Automates channel mode settings based on user accounts.
- **badwords.py** — Manages badword filtering in channels.
- **birthday.py** — Handles birthday-related commands.
- **bitcoin.py** — Retrieves Bitcoin exchange rates.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets the main bot channel on connection.
- **botsnack.py** — Sends random actions like "nom nom" to users.
- **channel_access.py** — Manages user access levels in channels.
- **channel_keys.py** — Handles setting and managing channel keys.
- **channel_op.py** — Manages operator status in channels.
- **channel_save.py** — Joins autojoin channels on connection.
- **check_mode.py** — Checks for required channel modes.
- **check_urls.py** — Automatically checks URLs for malicious content.
- **coins.py** — Implements a betting system with various commands.
- **command_suggestions.py** — Provides suggestions for unknown commands.
- **config.py** — Manages configuration settings and results.
- **ctcp.py** — Handles CTCP requests and responses.
- **cve.py** — Retrieves Common Vulnerabilities and Exposures (CVE) information.
- **database_backup.py** — Backs up the database at regular intervals.
- **deferred_read.py** — Defers parsing of certain IRC 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** — Retrieves information from DuckDuckGo search engine.
- **ducks.py** — Spawns ducks in channels with certain conditions.
- **echo.py** — Echoes messages back to the sender.
- **eightball.py** — Provides random answers using an eight-ball mechanism.
- **eval_lua.py** — Evaluates Lua code snippets.
- **eval_python.py** — Evaluates Python code snippets.
- **eval_rust.py** — Evaluates Rust code snippets.
- **factoids.py** — Manages factoid commands.
- **fake_echo.py** — Forwards messages to the bot itself.
- **fediverse.py** — Retrieves information from Federated Social Networks.
- **format_activity.py** — Formats IRC activity for display.
- **github.py** — Searches GitHub repositories and issues.
- **google.py** — Searches Google using custom search engine.
- **greeting.py** — Sends greetings to users on joining a channel.
- **hash.py** — Hashes strings with various algorithms.
- **help.py** — Provides help for commands.
- **highlight_spam.py** — Detects and handles highlight spam.
- **ids.py** — Displays user IDs and channel IDs.
- **ignore.py** — Manages command, channel, and server-wide ignore settings.
- **imdb.py** — Retrieves information from IMDb.
- **imgur.py** — Gets image and gallery information from Imgur.
- **in.py** — Sets reminders for future events.
- **info.py** — Displays version and other bot information.
- **ip_addresses.py** — Resolves IP addresses to geolocation data.
- **ircv3.py** — Manages IRCv3 capabilities.
- **ircv3_botignore.py** — Ignores messages from specific users.
- **ircv3_chathistory.py** — Handles chat history and event playback.
- **ircv3_echo_message.py** — Echoes sent messages with labels.
- **ircv3_labeled_responses.py** — Manages labeled responses for commands.
- **ircv3_message_tracking.py** — Tracks message IDs and deliveries.
- **ircv3_metadata.py** — Sets metadata tags for connections.
- **ircv3_msgid.py** — Manages msgids for messages.