# BitBot IRC Bot

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

## Description
BitBot is an IRC bot designed to automate various tasks on IRC channels, including managing channel access, responding to commands, and performing administrative functions.

## Key Features
- Manages channel settings such as auto-mode, key, and default kick reason.
- Implements command handling with permissions checks.
- Provides utility commands like coin flipping, dice rolling, and factoid management.
- Supports channel-specific configurations for greetings, nicknames, and more.
- Automates channel operations including joining channels on connect.

## File Analysis
- **start.py** — Entry point of the bot, setting up command-line arguments and importing necessary modules.
- **accept_invite.py** — Handles accepting invites from IRC servers.
- **acronym.py** — Provides a command to find possible meanings for acronyms.
- **admin.py** — Manages administrative commands like changing nickname and sending raw IRC data.
- **auto_mode.py** — Automates channel mode settings based on user access levels.
- **badwords.py** — Manages badword lists 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 server connect.
- **botsnack.py** — Sends random actions to the target channel.
- **channel_access.py** — Manages user access levels in channels.
- **channel_keys.py** — Handles channel keys for authentication.
- **channel_op.py** — Implements kick and ban functionality based on mode settings.
- **channel_save.py** — Joins autojoin channels upon server connect.
- **check_mode.py** — Checks command execution based on channel modes.
- **check_urls.py** — Automatically checks URLs for malicious content.
- **coins.py** — Manages a betting system with interest and lottery features.
- **command_suggestions.py** — Suggests commands when an unknown one is used.
- **config.py** — Manages bot configuration settings.
- **ctcp.py** — Responds to CTCP requests from IRC users.
- **cve.py** — Retrieves CVE information using the CIRCL API.
- **database_backup.py** — Backups the database at regular intervals.
- **deferred_read.py** — Defers reading of certain lines until after 001 is received.
- **define.py** — Provides a command to look up word definitions from Wordnik.
- **dice.py** — Rolls dice with specified sides and counts.
- **duckduckgo.py** — Retrieves search results from DuckDuckGo.
- **ducks.py** — Spawns ducks in the channel based on message count.
- **echo.py** — Echoes messages back to the sender.
- **eightball.py** — Provides random responses like an eight-ball.
- **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 for storing and retrieving information.
- **fake_echo.py** — Forwards messages to the bot itself.
- **fediverse.py** — Retrieves latest posts from Fediverse instances.
- **format_activity.py** — Formats IRC activity for better readability.
- **github.py** — Searches GitHub issues and pull requests.
- **google.py** — Provides Google search results.
- **greeting.py** — Sends a greeting to users when they join the channel.
- **hash.py** — Hashes strings using various algorithms.
- **help.py** — Provides help for commands.
- **highlight_spam.py** — Detects and handles highlight spam in channels.
- **ids.py** — Displays user and channel IDs.
- **ignore.py** — Manages command and channel-specific ignores.
- **imdb.py** — Retrieves movie information from IMDb.
- **imgur.py** — Gets image details from Imgur.
- **in.py** — Sets reminders for future events.
- **info.py** — Displays version information about the bot.
- **ip_addresses.py** — Resolves IP addresses and provides geolocation data.
- **ircv3.py** — Manages IRCv3 capabilities.
- **ircv3_botignore.py** — Ignores messages from specific bots.
- **ircv3_chathistory.py** — Tracks chat history using IRCv3 event-playback capability.
- **ircv3_echo_message.py** — Echoes sent messages back to the sender.
- **ircv3_labeled_responses.py** — Manages labeled responses for better message tracking.
- **ircv3_message_tracking.py** — Tracks message delivery and read status.
- **ircv3_metadata.py** — Sets metadata about the bot on IRC servers.
- **ircv3_msgid.py** — Manages unique message IDs.