# Sopel IRC Bot

**Category:** Standalone_Bot
**Original Author:** Sean B. Palmer, Elsie Powell, et al.

## Description
Sopel is a versatile, standalone IRC bot designed to automate tasks, provide information, and interact with users on IRC channels. It supports Python 2.7+ and includes various modules for different functionalities such as commands, reminders, and web lookups.

## Key Features
- **Commands:** Implements a wide range of commands for user interaction.
- **Reminders:** Allows users to set and check reminders.
- **Web Lookups:** Provides functionality to search the web using services like Google and IMDb.
- **Pronouns:** Supports pronoun usage in chat.
- **Random Number Generation:** Generates random numbers based on user input.

## File Analysis
- **__init__.py** — Initializes Sopel's configuration and core modules.
- **admin.py** — Manages administrative tasks such as holding ground after kicks.
- **adminchannel.py** — Provides commands for managing channels, including welcome messages.
- **announce.py** — Sends announcements to all channels the bot is in.
- **api.py** — Not found; possibly a placeholder or mislabeled file.
- **auth.py** — Manages authentication and authorization.
- **bot.py** — Core logic of Sopel's IRC bot functionality.
- **calc.py** — Implements a calculator module for performing arithmetic operations.
- **clock.py** — Provides clock-related commands, including time zone conversions.
- **coretasks.py** — Handles core tasks that are not user-facing but essential for the bot to run.
- **db.py** — Manages database interactions and storage of configuration data.
- **debug.py** — Debugging utilities.
- **default_config.ini** — Default configuration settings for Sopel.
- **doc.py** — Documentation generation script.
- **documentation.py** — Documentation-related functionality.
- **etymology.py** — Provides etymological information about words.
- **find.py** — Implements a spell checker and correction module.
- **find_updates.py** — Checks for updates to Sopel.
- **formatting.py** — Manages IRC formatting codes.
- **help.py** — Provides help commands for users.
- **hipchat.py** — Not found; possibly a placeholder or mislabeled file.
- **irc.py** — Core IRC protocol handling and utility functions.
- **loader.py** — Loads Sopel modules dynamically.
- **logging.py** — Logging configuration and handlers.
- **module.py** — Implements decorators and tools for creating callable plugin functions.
- **ping.py** — Greeting and interjection commands.
- **plugin.py** — Not found; possibly a placeholder or mislabeled file.
- **privmsg.py** — Handles private message interactions.
- **quote.py** — Provides quote-related functionality.
- **reddit.py** — Retrieves information from Reddit.
- **reload.py** — Reloads Sopel modules for administrative use.
- **remind.py** — Manages reminders and notifications.
- **run_script.py** — Entry point for running Sopel scripts.
- **search.py** — Implements a search module using web services like Bing.
- **seen.py** — Tracks when users were last seen on IRC.
- **spellcheck.py** — Provides spell checking functionality.
- **tell.py** — Manages tell and ask commands.
- **tld.py** — Provides information about top-level domains.
- **web.py** — Web-related functions for interacting with web applications.