# Sopel IRC Bot

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

## Description
Sopel is a versatile, standalone IRC bot designed to automate tasks on IRC networks. It supports various commands, event handling, and module-based extensions.

## Key Features
- Supports Python 2.7+ and Python 3.x.
- Manages user permissions with admin and OP privileges.
- Provides core IRC functionality like joining channels, sending messages, and managing users.
- Extensible via modules for features such as calculations, reminders, and web searches.
- Includes a built-in help system.

## File Analysis
- **checkstyle.sh** — Script to check Python source files.
- **ci_build.sh** — Build script for testing Sopel with pytest.
- **conftest.py** — Pytest configuration file.
- **pytest_run.py** — Entry point for running tests using pytest.
- **setup.py** — Setup script for packaging and distributing Sopel.
- **sopel.py** — Main entry point of the bot.
- **release.sh** — Script to release a new version of Sopel.
- **suppress-warnings.py** — Suppresses warnings from IPython during startup.
- **update_db.py** — Database migration script for updating database schema.
- **makerpm.py** — Script to create an RPM package for Sopel.
- **make.bat** — Batch file for Sphinx documentation generation.
- **conf.py** — Configuration file for Sphinx documentation.
- **__init__.py** — Initialization and encoding setup.
- **bot.py** — Core bot functionality including IRC protocol handling.
- **coretasks.py** — Tasks for core bot operations.
- **db.py** — Database management module.
- **formatting.py** — Formatting utilities for IRC messages.
- **irc.py** — IRC protocol implementation.
- **loader.py** — Module loader and configuration handler.
- **logger.py** — Logging setup for the bot.
- **module.py** — Decorators and tools for creating plugin functions.
- **run_script.py** — Entry point for running Sopel with command-line options.
- **test_tools.py** — Tools for testing modules.
- **trigger.py** — Trigger handling and parsing.
- **web.py** — Web-related functionality (deprecated in version 6.2.0).
- **config/core_section.py** — Core configuration section definition.
- **config/types.py** — Type definitions for config sections.
- **admin.py** — Administration module with auto-rejoin on kick and invite handling.
- **adminchannel.py** — Channel management commands.
- **announce.py** — Announce messages to all channels.
- **bugzilla.py** — Bug reporting using Bugzilla.
- **calc.py** — Calculator functionality.
- **clock.py** — Time-related commands.
- **countdown.py** — Countdown timer.
- **currency.py** — Currency conversion.
- **dice.py** — Dice rolling module.
- **emoticons.py** — Emoticon commands.
- **etymology.py** — Etymology lookup.
- **find.py** — Spelling correction with sed notation.
- **find_updates.py** — Update checking for Sopel.
- **help.py** — Help and command documentation.
- **instagram.py** — Instagram module for fetching posts.
- **ip.py** — GeoIP lookups.
- **ipython.py** — IPython console integration.
- **isup.py** — Website status checker with isup.me.
- **lmgtfy.py** — Let me Google that for you.
- **meetbot.py** — Meeting logger and agenda handling.
- **ping.py** — Greeting and interjection commands.
- **pronouns.py** — Pronoun management.
- **rand.py** — Random number generator.
- **reddit.py** — Reddit module for fetching posts.
- **reload.py** — Module reloading functionality.
- **remind.py** — Reminder system.
- **safety.py** — Malicious URL detection.
- **search.py** — Web search commands.
- **seen.py** — Seen command to track user presence.
- **spellcheck.py** — Spell checking with suggestions.
- **tell.py** — Tell and ask functionality.