# BitBot

**Category:** Standalone_Bot
**Original Author:** jesopo

## Description
BitBot is a modular event-driven IRC bot designed to automate various tasks on IRC channels, such as managing channel access, handling commands, and providing utilities.

## Key Features
- Manages channel settings like bans, keys, and modes.
- Provides command execution with permission checks.
- Automates channel operations including joining, parting, and kicking users.
- Supports custom factoids for storing and retrieving information.
- Implements user-level permissions and access control.
- Offers various utilities such as dice rolling, fortune telling, and text formatting.

## File Analysis
- **setup.py** — Sets up the bot with its dependencies and configuration details.
- **accept_invite.py** — Handles accepting channel invites based on server settings.
- **acronym.py** — Fetches possible meanings of acronyms from an external API.
- **admin.py** — Provides administrative commands for changing nicknames and sending raw IRC data.
- **badwords.py** — Manages a list of badwords in channels.
- **birthday.py** — Handles birthday-related commands with date parsing.
- **bitcoin.py** — Fetches the current exchange rate of Bitcoin.
- **bot_channel.py** — Sets the main channel for the bot to join upon connection.
- **botlist.py** — Sends a predefined message when certain commands are received.
- **channel_access.py** — Manages user access levels in channels.
- **channel_blacklist.py** — Prevents joining specified channels.
- **channel_keys.py** — Handles channel keys or passwords.
- **channel_op.py** — Sets ban and kick formats for channels.
- **channel_save.py** — Joins autojoin channels on connection.
- **check_certificate.py** — Checks the validity of the server's SSL certificate.
- **check_mode.py** — Manages low and high access modes in channels.
- **coins.py** — Implements a betting system with interest rates and lottery functionality.
- **command_suggestions.py** — Provides command suggestions based on user input.
- **config.py** — Manages configuration settings for the bot.
- **ctcp.py** — Handles CTCP requests and responses.
- **database_backup.py** — Backs up the database at regular intervals.
- **deferred_read.py** — Postpones parsing of certain IRC lines until after 001 is received.
- **define.py** — Fetches definitions from an API for given words.
- **dice.py** — Rolls dice with specified sides and number of rolls.
- **duckduckgo.py** — Retrieves the first result from DuckDuckGo search.
- **ducks.py** — Spawns ducks in channels based on user messages.
- **echo.py** — Provides echo, action, and message sending commands.
- **eightball.py** — Implements a random response generator for yes/no questions.
- **eval_lua.py** — Evaluates Lua code snippets.
- **eval_python.py** — Evaluates Python code snippets.
- **factoids.py** — Manages custom factoids in channels.
- **fake_echo.py** — Simulates sending messages to the bot itself.
- **format_activity.py** — Formats and logs IRC activity.
- **github.py** — Retrieves information from GitHub repositories.
- **google.py** — Searches Google for given terms.
- **greeting.py** — Sends a greeting message when users join a channel.
- **hash.py** — Hashes strings using various algorithms.
- **help.py** — Provides help and usage information for commands.
- **highlight_spam.py** — Protects against highlight spam in channels.
- **ids.py** — Displays user IDs, account names, and channel IDs.
- **ignore.py** — Manages ignored users and commands.
- **imdb.py** — Searches IMDb for movie or TV show information.
- **imgur.py** — Retrieves image details from Imgur URLs.
- **in.py** — Sets reminders for future events.
- **info.py** — Provides version and other bot-related information.
- **ip_addresses.py** — Resolves IP addresses to names and vice versa.
- **ircv3.py** — Implements support for IRCv3 capabilities.
- **ircv3_botignore.py** — Ignores messages with specific tags.
- **ircv3_chathistory.py** — Manages chat history playback.
- **ircv3_echo_message.py** — Handles echo messages and responses.
- **ircv3_labeled_responses.py** — Supports labeled responses for commands.
- **ircv3_message_tracking.py** — Tracks message IDs in channels.
- **ircv3_metadata.py** — Sets metadata tags for the bot.
- **ircv3_multiline.py** — Handles multiline messages.
- **ircv3_resume.py** — Manages server resume state.
- **ircv3_server_time.py** — Provides server time information.
- **ircv3_sts.py** — Implements Secure TLS Session (STS) policy.
- **isup.py** — Checks if a given URL is up or not.