# Sopel IRC Bot

**Category:** Standalone_Bot
**Original Author:** Sean B. Palmer, Edward Powell, Elad Alfassa

## Description
Sopel is a versatile, standalone IRC bot written in Python that provides a wide range of functionalities including channel management, user interaction, and web-based services.

## Key Features
- **Core IRC Handling**: Manages IRC connections, sends and receives messages.
- **Module System**: Loads and executes modules for various features like moderation, information lookup, and entertainment.
- **Configuration Management**: Supports detailed configuration settings for bot behavior.
- **Event Handling**: Responds to IRC events such as joins, parts, kicks, and channel messages.

## File Analysis
- **__init__.py** — Sopel initialization module defining the core functionality.
- **bot.py** — Main bot class handling IRC communication and event processing.
- **coretasks.py** — Core tasks for standard IRC codes like JOIN, PART, KICK, etc.
- **db.py** — Database management for storing user data and configurations.
- **formatting.py** — Provides formatting functions for IRC messages.
- **irc.py** — IRC protocol handling including connection setup and message parsing.
- **loader.py** — Loads and manages modules dynamically.
- **module.py** — Decorators and utilities for defining module commands.
- **run_script.py** — Entry point for running the bot from a script.
- **test_tools.py** — Testing tools for developing and testing modules.