# BitBot v1.8.0

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

## Description
BitBot is a standalone IRC bot written in Python that provides various commands and features for managing channels, users, and automations.

## Key Features
- Manages channel settings such as modes, invites, and nicknames.
- Provides command-based interactions including dice rolling, fortune telling, and currency conversion.
- Implements user permissions and access control.
- Automates channel operations like joining on connect and handling join/part messages.
- Integrates with external services for fetching data (e.g., weather, news).

## File Analysis
- **start.py** — Entry point of the bot, setting up command-line arguments and loading modules.
- **8ball.py** — Implements a fortune-telling feature using random responses.
- **accept_invite.py** — Manages channel invites based on user settings.
- **admin.py** — Provides administrative commands for changing nicknames and sending raw IRC commands.
- **auto_mode.py** — Automates mode changes in channels based on user access levels.
- **badwords.py** — Tracks and manages bad words in channels.
- **birthday.py** — Handles birthday reminders or events.
- **bitcoin.py** — Fetches current Bitcoin exchange rates.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets the main channel for the bot to join upon connection.
- **botlist.py** — Sends a predefined message when certain commands are triggered.
- **channel_access.py** — Manages user access levels in channels.
- **channel_op.py** — Handles spam protection and channel operator management.
- **channel_save.py** — Saves channel settings on connect.
- **check_mode.py** — Sets mode requirements for command execution.
- **check_urls.py** — Checks URLs for malicious content using VirusTotal API.
- **coins.py** — Implements a betting system with various games.
- **config.py** — Manages configuration settings and their retrieval.
- **ctcp.py** — Responds to CTCP requests.
- **cve.py** — Fetches CVE (Common Vulnerabilities and Exposures) information.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Fetches definitions from Wordnik API.
- **dice.py** — Rolls dice with customizable parameters.
- **duckduckgo.py** — Retrieves first result from DuckDuckGo search.
- **ducks.py** — Spawns ducks in channels based on user settings.
- **echo.py** — Echoes the received message back to the channel.
- **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 storage and retrieval.
- **format_activity.py** — Formats and logs various IRC events.
- **google.py** — Searches for Google results based on user queries.
- **greeting.py** — Sends a greeting message to users upon joining the channel.
- **hash.py** — Hashes strings using various algorithms.
- **ids.py** — Displays user and channel IDs.
- **imdb.py** — Fetches information about movies or TV shows from IMDb.
- **imgur.py** — Retrieves image and gallery information from Imgur.
- **in.py** — Sets reminders for future events.
- **ip_addresses.py** — Resolves IP addresses to hostnames.
- **ircv3_chathistory.py** — Manages chat history with message IDs.
- **ircv3_labeled_responses.py** — Implements labeled responses using IRCv3.
- **ircv3_message_tracking.py** — Tracks and manages message tags.
- **ircv3_metadata.py** — Sets metadata for the bot on the server.
- **ircv3_msgid.py** — Manages message IDs in channels.
- **ircv3_resume.py** — Handles resuming sessions with STS (Session Token Security).
- **ircv3_server_time.py** — Manages server time synchronization.
- **ircv3_sts.py** — Implements session token security for the bot.
- **karma.py** — Tracks and manages karma points for users.
- **lastfm.py** — Retrieves last played tracks from Last.fm.
- **location.py** — Sets and retrieves user location information.
- **mixed_unicode.py** — Detects script changes in text.
- **modules.py** — Manages loading and unloading of modules.
- **nick_regain.py** — Handles nickname reconnection on server connection.
- **nickserv.py** — Identifies with NickServ using a password.
- **nr.py** — Fetches train information from National Rail API.
- **perform.py** — Executes predefined commands upon bot startup.
- **pong.py** — Responds to ping messages.
- **print_activity.py** — Prints formatted IRC activity logs.
- **pronouns.py** — Manages user pronoun settings.