# BitBot IRC Bot

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

## Description
BitBot is a standalone IRC bot written in Python that provides various features such as channel management, user interaction, and information services.

## Key Features
- **Command Handling**: Implements commands like `!btc`, `!define`, `!roll`, etc.
- **Channel Management**: Auto-joining channels, setting channel modes, managing user access levels.
- **User Interaction**: Responds to CTCP requests, handles private messages, and provides information via commands.
- **Information Services**: Provides weather updates, random facts, and other miscellaneous services.

## File Analysis
- **start.py** — Entry point of the bot, initializes command-line arguments and imports core modules.
- **8ball.py** — Implements a simple 8-ball feature for generating random responses to questions.
- **accept_invite.py** — Handles accepting invites from channels.
- **admin.py** — Provides administrative commands like changing nickname and sending raw IRC commands.
- **auto_mode.py** — Manages channel modes based on user identification status.
- **badwords.py** — Detects and lists bad words in the current channel.
- **bitcoin.py** — Fetches Bitcoin exchange rates from an API.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets a main bot channel upon connecting to a server.
- **channel_access.py** — Manages user access levels in channels.
- **channel_op.py** — Implements spam protection and highlighting features.
- **channel_save.py** — Handles saving channel states on connection.
- **check_mode.py** — Checks for required channel modes before executing commands.
- **check_urls.py** — Automatically checks URLs for malicious content.
- **coins.py** — Simulates a betting game with various options like heads/tails, numbers, and colors.
- **ctcp.py** — Responds to CTCP requests from users.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Provides definitions for words using Wordnik API.
- **dice.py** — Rolls dice according to user input.
- **ducks.py** — Displays ducks in chat based on message activity.
- **eval_lua.py** — Evaluates Lua code via an online service.
- **eval_python.py** — Evaluates Python code via an online service.
- **eval_rust.py** — Evaluates Rust code via an online playground.
- **factoids.py** — Manages factoid commands for storing and retrieving information.
- **google.py** — Searches Google using the Custom Search API.
- **greeting.py** — Sends a greeting to users when they join a channel.
- **hash.py** — Hashes strings using various algorithms.
- **ids.py** — Provides user and channel IDs.
- **imdb.py** — Searches for movie or TV show information using the IMDb API.
- **imgur.py** — Handles image uploads and galleries from Imgur.
- **in.py** — Sets reminders for users.
- **ip_addresses.py** — Resolves IP addresses to domain names.
- **isgd.py** — Shortens URLs using is.gd service.
- **karma.py** — Manages karma points for users in channels.
- **lastfm.py** — Retrieves last listened tracks from a user's Last.fm profile.
- **line_handler.py** — Handles raw IRC messages and triggers events based on commands.
- **mixed_unicode.py** — Detects script changes in text.
- **modules.py** — Reloads modules dynamically.
- **nickserv.py** — Manages NickServ authentication upon connecting to a server.
- **nr.py** — Provides train arrival information using the National Rail API.
- **perform.py** — Executes commands stored in server settings on connection.
- **permissions.py** — Manages user permissions and identification mechanisms.
- **pong.py** — Responds with "Pong!" to `ping` messages.
- **print_activity.py** — Prints IRC activity logs.
- **quit.py** — Sends a random quote upon quitting the bot.
- **quotes.py** — Manages and retrieves quotes from various categories.
- **random_number.py** — Generates random numbers based on user input.
- **rest_api.py** — Provides an HTTP REST API for interacting with the bot.
- **resume.py** — Handles resuming sessions using CAP drafts.
- **rot13.py** — Implements ROT13 cipher for text transformation.
- **sed.py** — Applies sed-like transformations to messages in a channel.
- **seen.py** — Tracks when users were last seen on the server.
- **set.py** — Manages and sets various channel settings.
- **shakespeare.py** — Sends random insults from Shakespeare's plays.
- **signals.py** — Handles bot shutdown with a random quote.
- **soundcloud.py** — Searches for tracks or resolves SoundCloud URLs.
- **spotify.py** — Retrieves information about music tracks using the Spotify API.
- **stats.py** — Provides uptime and statistics of the bot.
- **strax.py** — Suggests battle strategies from the Sontaran Empire.