# Sopel IRC Bot

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

## Description
Sopel is a standalone IRC bot written in Python that provides various functionalities such as command execution, event handling, and module loading.

## Key Features
- **Command Handling**: Implements commands like `.help`, `.announce`, and `.rand`.
- **Event Handling**: Handles events such as JOIN, PART, PRIVMSG.
- **Module System**: Loads modules from the `modules` directory for additional functionality.
- **Configuration Management**: Manages configuration settings through a structured file system.

## File Analysis
- **checkstyle.sh** — Script to check code style using PEP8.
- **ci_build.sh** — Build and test script for continuous integration.
- **conftest.py** — Pytest ignore list for testing.
- **pytest_run.py** — Entry point for running tests with pytest.
- **setup.py** — Setup script for packaging Sopel.
- **sopel.py** — Main entry point of the bot.
- **release.sh** — Script to release a version of Sopel.
- **update_db.py** — Database migration script.
- **makerpm.py** — Script to create RPM packages.
- **make.bat** — Windows batch file for Sphinx documentation.
- **conf.py** — Configuration settings for Sphinx documentation.
- **__init__.py** — Initialization module with version information.
- **bot.py** — Core bot functionality including IRC connection and command handling.
- **coretasks.py** — Core task definitions for the bot.
- **db.py** — Database management functions.
- **formatting.py** — IRC formatting utility.
- **irc.py** — IRC protocol utilities.
- **loader.py** — Module loader system.
- **logger.py** — Logging handler and formatter.
- **module.py** — Decorators and module definitions.
- **run_script.py** — Entry point for running the bot script.
- **test_tools.py** — Test tools for modules.
- **trigger.py** — Trigger handling and parsing.
- **web.py** — Web-related functions.
- **admin.py** — Admin commands and configuration.
- **adminchannel.py** — Channel management commands.
- **announce.py** — Announce command implementation.
- **bugzilla.py** — Bug reporting module.
- **calc.py** — Calculator functionality.
- **clock.py** — Clock functionality.
- **countdown.py** — Countdown timer.
- **currency.py** — Currency exchange rate lookup.
- **dice.py** — Dice rolling functionality.
- **etymology.py** — Etymology lookup.
- **find.py** — Spelling correction module.
- **find_updates.py** — Version update checking.
- **help.py** — Help command implementation.
- **ip.py** — GeoIP lookup.
- **ipython.py** — IPython console integration.
- **isup.py** — Website status checker.
- **lmgtfy.py** — "Let me Google that for you" functionality.
- **meetbot.py** — Meeting logging module.
- **movie.py** — Movie information retrieval.
- **ping.py** — Greeting and rudeness handling.
- **rand.py** — Random number generation.
- **reddit.py** — Reddit module with detailed post info.
- **reload.py** — Module reloader for admin use.
- **remind.py** — Reminder functionality.
- **safety.py** — Malicious URL detection.
- **search.py** — Web search capabilities.
- **seen.py** — User seen timestamp tracking.
- **spellcheck.py** — Spell check utility.
- **tell.py** — Tell and ask module.
- **tld.py** — Top-level domain information lookup.
- **translate.py** — Translation functionality.
- **unicode_info.py** — Unicode codepoint information.