# BitBot IRC Bot

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

## Description
BitBot is a standalone IRC bot designed to automate various tasks on IRC channels, including managing channel access, responding to commands, and performing actions based on user interactions.

## Key Features
- Manages channel settings such as autojoin and mode management.
- Responds to CTCP version and source requests.
- Provides random facts using external APIs.
- Implements a karma system for tracking user reputation.
- Handles nick changes and manages bot channels.
- Integrates with external services like SoundCloud, Spotify, and Google.

## File Analysis
- **start.py** — Entry point of the bot, initializes configuration and modules.
- **8ball.py** — Provides random responses to questions using a predefined list.
- **accept_invite.py** — Allows the bot to automatically join channels when invited by its own nickname.
- **admin.py** — Manages administrative commands for changing nicknames and sending raw IRC commands.
- **auto_mode.py** — Automates channel mode settings based on user identification.
- **badwords.py** — Detects and manages bad words in chat messages.
- **bitcoin.py** — Fetches current Bitcoin exchange rates from an API.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets the main channel where the bot operates.
- **channel_access.py** — Manages user access levels and permissions in channels.
- **channel_op.py** — Handles channel operations like highlighting spam messages.
- **channel_save.py** — Saves channel state upon connection.
- **check_mode.py** — Checks for specific channel modes.
- **check_urls.py** — Automatically checks URLs for malicious content using VirusTotal API.
- **coins.py** — Implements a simple game involving coin flips and lottery draws.
- **ctcp.py** — Responds to CTCP version and source requests.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Provides definitions for words using Wordnik API.
- **dice.py** — Rolls dice based on user input.
- **ducks.py** — Displays random duck ASCII art in chat.
- **eval_lua.py** — Evaluates Lua code snippets.
- **eval_python.py** — Evaluates Python code snippets.
- **eval_rust.py** — Evaluates Rust code snippets.
- **factoids.py** — Manages and retrieves factoid information.
- **google.py** — Searches for information using Google Custom Search API.
- **greeting.py** — Sends a greeting message to users when they join a channel.
- **hash.py** — Hashes strings using various algorithms.
- **ids.py** — Provides user and channel IDs.
- **imdb.py** — Retrieves movie or TV show information from IMDb.
- **imgur.py** — Gets image and gallery information from Imgur.
- **in.py** — Sets reminders for future times.
- **ip_addresses.py** — Resolves IP addresses using DNS lookup.
- **isgd.py** — Shortens URLs using is.gd service.
- **karma.py** — Tracks user karma based on positive or negative interactions.
- **lastfm.py** — Retrieves last listened to tracks from Last.fm users.
- **message_tracking.py** — Tracks and tags messages for delivery status.
- **mixed_unicode.py** — Detects script changes in text.
- **modules.py** — Manages module loading and reloading.
- **nick_regain.py** — Ensures the bot regains its nickname upon reconnecting.
- **nickserv.py** — Handles nickserv authentication and identification.
- **nr.py** — Provides train arrival information using National Rail API.
- **perform.py** — Executes commands stored in server settings.
- **pong.py** — Responds to ping with pong.
- **print_activity.py** — Prints IRC activity logs.
- **quit.py** — Sends a random quote upon quitting the bot.
- **quotes.py** — Manages and retrieves quotes from predefined 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** — Manages resume tokens for state persistence.
- **rot13.py** — Encodes/decodes text using ROT13 cipher.
- **sed.py** — Replaces patterns in messages based on user input.
- **seen.py** — Tracks when users were last seen in a channel.
- **set.py** — Manages and retrieves settings for channels and servers.
- **shakespeare.py** — Provides random insults in Shakespearean language.
- **signals.py** — Handles bot shutdown with a random quote.
- **soundcloud.py** — Searches and provides information about SoundCloud tracks.
- **spotify.py** — Retrieves music information from Spotify API.
- **stats.py** — Displays uptime and statistics for the bot.
- **strax.py** — Provides battle suggestions in Sontaran language.