# 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 responding to commands, managing channels, and interacting with users.

## Key Features
- Responds to user commands like `.help`, `.announce`, and `.calc`.
- Manages channel topics, nicknames, and permissions.
- Provides utilities for web searches, random number generation, and more.
- Supports multiple modules for different functionalities such as weather information, movie details, and spell checking.

## File Analysis
- **checkstyle.sh —** Script to check code style using `pep8`.
- **ci_build.sh —** Build script used in continuous integration.
- **conftest.py —** Configuration file for pytest.
- **pytest_run.py —** Script to run tests with `pytest`.
- **setup.py —** Setup script for packaging and distributing Sopel.
- **sopel.py —** Main entry point of the bot, runs the bot instance.
- **release.sh —** Script to release a new version of Sopel.
- **update_db.py —** Database migration script.
- **makerpm.py —** Script to create RPM packages for distribution.
- **make.bat —** Build script for Sphinx documentation.
- **conf.py —** Configuration file for Sphinx documentation.
- **__init__.py —** Initialization module defining the bot's version and basic structure.
- **bot.py —** Core functionality of the IRC bot, handling commands and events.
- **coretasks.py —** Contains core tasks and routines for the bot.
- **db.py —** Database management module using SQLite.
- **formatting.py —** Module for applying IRC formatting to text.
- **irc.py —** Utility functions for IRC protocol interactions.
- **loader.py —** Module loader for Sopel modules.
- **logger.py —** Logging handler and formatter for the bot.
- **module.py —** Decorators and utility functions for defining commands and events.
- **run_script.py —** Script to run the bot from command line.
- **test_tools.py —** Tools for testing Sopel modules.
- **trigger.py —** Module for handling IRC triggers and events.
- **web.py —** Web-related utilities for interacting with websites.
- **admin.py —** Admin module for managing bot settings.
- **adminchannel.py —** Channel management commands.
- **announce.py —** Sends an announcement to all channels.
- **bugzilla.py —** Module for reporting issues on Bugzilla.
- **calc.py —** Calculator module.
- **clock.py —** Time-related functionality.
- **countdown.py —** Countdown timer.
- **currency.py —** Currency exchange rate module.
- **dice.py —** Dice rolling module.
- **etymology.py —** Etymology lookup module.
- **find.py —** Spelling correction and suggestion module.
- **find_updates.py —** Module for checking for new versions of Sopel.
- **help.py —** Help command to show documentation.
- **ip.py —** GeoIP lookup module.
- **ipython.py —** IPython console integration.
- **isup.py —** Website status checker.
- **lmgtfy.py —** Let me Google that for you.
- **meetbot.py —** Meeting logging and management.
- **movie.py —** Movie information module.
- **ping.py —** Greeting and rude commands.
- **rand.py —** Random number generation.
- **reddit.py —** Reddit module providing detailed post info.
- **reload.py —** Module reloader for admins.
- **remind.py —** Reminder management.
- **safety.py —** Malicious URL alerting.
- **search.py —** Web search functionality.
- **seen.py —** Tracks when users were last seen.
- **spellcheck.py —** Spell checking and correction.
- **tell.py —** Tell and ask module for messaging users.
- **tld.py —** Top-level domain information.
- **translate.py —** Translation module using web services.
- **unicode_info.py —** Codepoint lookup utility.