# BitBot v1.7.0

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

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

## Key Features
- **Channel Management**: Auto-mode handling, invite acceptance, nickname change commands.
- **User Interaction**: Badwords filtering, birthday tracking, coin flipping, dice rolling.
- **Information Retrieval**: Bitcoin price lookup, IMDb movie search, DuckDuckGo search, Google search.
- **Automated Actions**: Kicking users for sending malicious URLs, checking for channel modes.

## File Analysis
- **start.py** — Main entry point of the bot, setting up command-line arguments and loading modules.
- **8ball.py** — Implements a random response generator (e.g., "Yes", "No").
- **accept_invite.py** — Handles accepting invites to channels.
- **admin.py** — Provides administrative commands like changing nickname and sending raw IRC messages.
- **auto_mode.py** — Manages channel modes based on user identification.
- **badwords.py** — Tracks and filters bad words in the channel.
- **birthday.py** — Manages birthday notifications for users.
- **bitcoin.py** — Fetches Bitcoin exchange rates from an API.
- **books.py** — Retrieves book information using Google Books API.
- **bot_channel.py** — Sets the main bot channel on connection.
- **botlist.py** — Sends a rollcall message when certain commands are received.
- **channel_access.py** — Manages access levels for users in channels.
- **channel_op.py** — Implements spam protection and highlight spam handling.
- **channel_save.py** — Automatically saves the list of joined channels on connection.
- **check_mode.py** — Checks user permissions based on channel modes.
- **check_urls.py** — Checks URLs for malicious content using VirusTotal API.
- **coins.py** — Manages a virtual coin game with betting and lottery features.
- **config.py** — Handles configuration settings for the bot.
- **ctcp.py** — Responds to CTCP (Client-to-Client Protocol) messages.
- **cve.py** — Fetches Common Vulnerabilities and Exposures data from an API.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Retrieves definitions for words using Wordnik API.
- **dice.py** — Rolls dice with a specified number of sides.
- **duckduckgo.py** — Fetches first result from DuckDuckGo search engine.
- **ducks.py** — Spawns ducks in the channel based on user messages.
- **echo.py** — Echoes back received commands.
- **eval_lua.py** — Evaluates Lua code through an online service.
- **eval_python.py** — Evaluates Python code using an online service.
- **eval_rust.py** — Evaluates Rust code using an online playground.
- **factoids.py** — Manages factoid-based information retrieval.
- **format_activity.py** — Formats and logs IRC activity.
- **google.py** — Fetches first result from Google search engine.
- **greeting.py** — Sends a greeting message to users when they join the channel.
- **hash.py** — Hashes strings using various algorithms.
- **ids.py** — Displays user and channel IDs.
- **imdb.py** — Retrieves information about movies or TV shows from IMDb.
- **imgur.py** — Fetches image details from Imgur.
- **in.py** — Sets reminders for users.
- **ip_addresses.py** — Resolves IP addresses to hostnames.
- **karma.py** — Tracks and displays karma points for users.
- **lastfm.py** — Retrieves last played tracks from a user's Last.fm profile.
- **location.py** — Gets location information using OpenCage API.
- **message_tracking.py** — Tracks message IDs in channels with certain capabilities.
- **metadata.py** — Sets metadata tags for messages.
- **mixed_unicode.py** — Detects and scores scripts in text.
- **modules.py** — Manages loading and unloading of modules.
- **nick_regain.py** — Regains nicknames on reconnection.
- **nickserv.py** — Identifies with NickServ using a password.
- **nr.py** — Fetches train arrival information from the National Rail API.
- **perform.py** — Executes commands stored in server settings upon connection.
- **pong.py** — Responds to ping messages with pong.
- **print_activity.py** — Prints formatted IRC activity to logs.
- **pronouns.py** — Manages user pronoun settings.
- **quotes.py** — Adds and retrieves quotes from channels or categories.
- **random_number.py** — Generates random numbers within a specified range.
- **rest_api.py** — Provides an HTTP REST API for interacting with the bot.
- **resume.py** — Handles resuming sessions using resume tokens.
- **rot13.py** — Encrypts and decrypts text using ROT13 cipher.
- **sed.py** — Implements sed-like pattern substitution in messages.