# BitBot

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

## Description
BitBot is a standalone IRC bot that provides various commands and functionalities to manage channels, users, and perform tasks such as checking URLs for malware, managing nicknames, and providing random content.

## Key Features
- Manages channel settings (e.g., automode, highlight spam protection)
- Provides command-line arguments for configuration
- Checks URLs for malicious content using VirusTotal
- Manages user access levels and permissions
- Provides various utility commands (e.g., dice rolling, fortune telling)

## File Analysis
- **start.py** — Entry point of the bot with argument parsing and module imports.
- **8ball.py** — Implements a simple random response generator for "magic 8-ball" type queries.
- **accept_invite.py** — Handles accepting invites to channels on connected servers.
- **admin.py** — Provides administrative commands like changing nickname, sending raw IRC commands, and parting channels.
- **auto_mode.py** — Manages channel modes based on user access levels.
- **badwords.py** — Tracks and manages bad words in channels.
- **bitcoin.py** — Fetches Bitcoin exchange rates from an API.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets the main bot channel upon connection.
- **channel_access.py** — Manages user access to channels based on permissions.
- **channel_op.py** — Handles operations like highlighting spam and banning users.
- **channel_save.py** — Automatically joins specified channels on server connect.
- **check_mode.py** — Checks for required channel modes before executing commands.
- **check_urls.py** — Automatically checks URLs sent in messages for malicious content.
- **coins.py** — Implements a coin-tossing game with betting and interest rates.
- **ctcp.py** — Responds to CTCP (Client-to-Client Protocol) queries.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Provides definitions for words using Wordnik API.
- **dice.py** — Rolls dice with specified sides and counts.
- **ducks.py** — Displays random duck images in channels.
- **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-based information.
- **format_activity.py** — Formats and logs various IRC events.
- **google.py** — Searches for terms on Google using the custom search API.
- **greeting.py** — Sends a greeting to users when they join a channel.
- **hash.py** — Hashes strings with different algorithms.
- **ids.py** — Provides user and channel IDs.
- **imdb.py** — Fetches information about movies or TV shows from IMDb.
- **imgur.py** — Retrieves image details from Imgur.
- **in.py** — Sets reminders for users.
- **ip_addresses.py** — Resolves IP addresses using DNS lookup.
- **isgd.py** — Shortens URLs using is.gd service.
- **karma.py** — Tracks and manages karma points for users.
- **lastfm.py** — Retrieves last listened to tracks from a user's Last.fm profile.
- **message_tracking.py** — Tracks private messages with message IDs.
- **mixed_unicode.py** — Detects scripts in text.
- **modules.py** — Manages loading and unloading of modules.
- **nick_regain.py** — Ensures the bot regains its nickname upon reconnection.
- **nickserv.py** — Handles nickserv authentication on server connect.
- **nr.py** — Provides train arrival information using the National Rail API.
- **perform.py** — Executes commands stored in server settings.
- **pong.py** — Responds to ping messages with pong.
- **print_activity.py** — Prints formatted IRC events.
- **quotes.py** — Manages and retrieves quotes from categories.
- **random_number.py** — Generates random numbers within specified ranges.
- **rest_api.py** — Provides a REST API for the bot's functionality.
- **resume.py** — Manages resume tokens for server connections.
- **rot13.py** — Encodes/decodes text using ROT13 cipher.
- **sed.py** — Implements sed-like command substitution in channels.
- **seen.py** — Tracks when users were last seen.
- **set.py** — Sets and retrieves channel settings.
- **shakespeare.py** — Generates insults in Shakespearean language.
- **signals.py** — Handles signal interruptions for graceful shutdown.
- **soundcloud.py** — Searches SoundCloud for tracks or profiles.
- **spotify.py** — Fetches information about music from Spotify.
- **stats.py** — Provides uptime and statistics about the bot's operation.
- **strax.py** — Suggests battle strategies in a fictional context.