# BitBot

**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, handling commands, and performing utility functions.

## Key Features
- Manages channel access with settings for low and high modes.
- Handles command triggers using Python scripts.
- Automatically joins specified channels at startup.
- Provides utilities such as dice rolling, fortune telling, and random number generation.
- Implements a kick/ban system based on channel settings.

## File Analysis
- **start.py** — Entry point of the bot, initializes configuration and modules.
- **8ball.py** — Implements an 8-ball fortune-telling feature using random responses.
- **accept_invite.py** — Allows the bot to accept invites from channels.
- **admin.py** — Provides administrative commands for changing nickname and sending raw IRC data.
- **auto_mode.py** — Manages channel modes based on user access levels.
- **badwords.py** — Detects and lists bad words in a channel, with options to add or remove them.
- **bitcoin.py** — Fetches current Bitcoin exchange rates from the internet.
- **books.py** — Searches for book information using Google Books API.
- **bot_channel.py** — Sets the main bot channel on connection.
- **channel_access.py** — Manages user access levels in channels.
- **channel_op.py** — Handles highlight spam protection and threshold settings.
- **channel_save.py** — Saves channel keys for autojoin at startup.
- **check_mode.py** — Checks required channel modes before executing commands.
- **check_urls.py** — Automatically checks URLs for malicious content using VirusTotal API.
- **coins.py** — Implements a simple betting game with various options like heads/tails, numbers, and colors.
- **ctcp.py** — Responds to CTCP messages on the server.
- **database_backup.py** — Backups the database at regular intervals.
- **define.py** — Fetches definitions from Wordnik API.
- **dice.py** — Rolls dice based on user input.
- **ducks.py** — Implements a duck-themed feature with random quotes and messages.
- **eval_lua.py** — Evaluates Lua code using an online service.
- **eval_python.py** — Evaluates Python code using TPCG.
- **eval_rust.py** — Evaluates Rust code using the Rust Playground API.
- **factoids.py** — Manages factoid-based knowledge storage and retrieval.
- **google.py** — Searches for information on Google.
- **greeting.py** — Sends a greeting message to users when they join a channel.
- **hash.py** — Hashes strings using various algorithms.
- **ids.py** — Displays user and channel IDs.
- **imdb.py** — Fetches movie or TV show information from IMDb API.
- **imgur.py** — Shortens URLs using is.gd service.
- **in.py** — Sets reminders for users.
- **ip_addresses.py** — Resolves IP addresses to domain names.
- **isgd.py** — Provides a shortlink feature using the is.gd service.
- **karma.py** — Tracks and displays karma points for users.
- **lastfm.py** — Retrieves last listened tracks from Last.fm.
- **line_handler.py** — Handles raw IRC messages and triggers events based on them.
- **mixed_unicode.py** — Detects script changes in text.
- **modules.py** — Manages module loading and unloading.
- **nickserv.py** — Manages NickServ authentication.
- **nr.py** — Fetches train information from the National Rail API.
- **perform.py** — Sends commands to channels 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** — Provides quitting quotes for users.
- **quotes.py** — Manages and displays random quotes.
- **random_number.py** — Generates random numbers within a specified range.
- **rest_api.py** — Implements an HTTP API to interact with the bot.
- **resume.py** — Manages session resumption capabilities.
- **rot13.py** — Applies ROT13 encoding/decoding to text.
- **sed.py** — Performs sed-like operations on messages.
- **seen.py** — Tracks when users were last seen in a channel.
- **set.py** — Manages and sets various channel settings.
- **shakespeare.py** — Generates insults in the style of Shakespeare.
- **signals.py** — Handles signal interrupts for graceful shutdowns.
- **soundcloud.py** — Searches SoundCloud for tracks or users.
- **spotify.py** — Retrieves information from Spotify API.
- **stats.py** — Displays various statistics about the bot's uptime and usage.
- **strax.py** — Provides a method of battle suggestion.