# 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 automations.

## Key Features
- Manages channel settings such as modes, invites, and access levels.
- Provides command-line arguments to configure the bot’s behavior.
- Includes modules for handling nicknames, badges, birthdays, and more.
- Automates responses based on user commands and events.
- Checks URLs for malicious content using VirusTotal.

## File Analysis
- **start.py** — Entry point of the bot with argument parsing and module imports.
- **accept_invite.py** — Sets whether the bot accepts invites in a channel.
- **acronym.py** — Finds possible acronym meanings from an external API.
- **admin.py** — Provides administrative commands like changing nickname and sending raw IRC data.
- **auto_mode.py** — Manages automatic mode settings for channels based on user access.
- **badwords.py** — Lists and adds bad words to a channel’s filter.
- **birthday.py** — Handles birthday-related commands and date parsing.
- **bitcoin.py** — Fetches Bitcoin exchange rates from an API.
- **botsnack.py** — Sends random actions related to eating or snacking.
- **channel_access.py** — Manages access levels for channels based on user modes.
- **channel_keys.py** — Sets and manages channel keys (passwords).
- **channel_op.py** — Handles highlighting spam in channels.
- **channel_save.py** — Joins autojoin channels when the bot connects to a server.
- **check_mode.py** — Checks required access modes for commands.
- **check_urls.py** — Automatically checks URLs for malicious content.
- **coins.py** — Manages virtual coins with betting and lottery features.
- **command_suggestions.py** — Suggests similar commands when an unknown command is entered.
- **config.py** — Manages channel settings and configurations.
- **ctcp.py** — Responds to CTCP requests for version and source information.
- **cve.py** — Fetches CVE (Common Vulnerabilities and Exposures) details from a web API.
- **database_backup.py** — Backups the bot’s database at regular intervals.
- **deferred_read.py** — Postpones parsing of certain lines until after 001 is received.
- **define.py** — Fetches definitions for words using an external API.
- **dice.py** — Rolls dice with a specified number of sides and faces.
- **duckduckgo.py** — Retrieves the first result from DuckDuckGo search.
- **ducks.py** — Spawns ducks in channels based on user messages.
- **echo.py** — Echoes back received commands.
- **eightball.py** — Provides random answers to yes/no questions.
- **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 and their values.
- **fake_echo.py** — Sends echoed messages back to the server.
- **fediverse.py** — Retrieves latest toots from a specified user on Fediverse instances.
- **format_activity.py** — Formats IRC activity for better readability.
- **github.py** — Searches for GitHub issues or pull requests based on a URL pattern.
- **google.py** — Fetches first Google search result using the Google Custom Search API.
- **greeting.py** — Sends a greeting message to users when they join a channel.
- **hash.py** — Hashes strings with various algorithms.
- **help.py** — Provides help for commands and their usage.
- **ids.py** — Shows user IDs and channel IDs.
- **ignore.py** — Manages ignored users, channels, and commands.
- **imdb.py** — Searches for movie or TV show details on IMDb.
- **imgur.py** — Retrieves information about images from Imgur.
- **in.py** — Sets reminders based on a specified time period.
- **ip_addresses.py** — Gets IP address information using external APIs.
- **ircv3.py** — Manages IRCv3 capabilities and statistics.
- **ircv3_botignore.py** — Ignores certain messages from specific servers.
- **ircv3_chathistory.py** — Handles channel history playback.
- **ircv3_echo_message.py** — Echoes sent messages back to the server.
- **ircv3_labeled_responses.py** — Manages labeled responses for IRCv3.
- **ircv3_message_tracking.py** — Tracks message IDs and read statuses.
- **ircv3_metadata.py** — Sets metadata tags for the bot.
- **ircv3_multiline.py** — Handles multiline messages in IRCv3.
- **ircv3_resume.py** — Manages server resume state.