# Willie IRC Bot

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

## Description
Willie is a standalone IRC bot written in Python that provides various commands and modules for interacting with IRC channels, including administrative tasks, information retrieval, and utility functions.

## Key Features
- Provides over 50 different modules (commands) covering a wide range of functionalities.
- Supports configuration through `config.py` to customize behavior.
- Implements core IRC functionality such as joining/parting channels, handling messages, and managing user permissions.
- Includes modules for weather information, currency conversion, random number generation, and more.

## File Analysis
- **conftest.py** — lists files which should be ignored by pytest.
- **pytest_run.py** — a script for running pytest from the command line.
- **setup.py** — package setup file for distributing Willie via PyPI.
- **willie.py** — main entry point of the bot, handling initialization and command execution.
- **makerpm.py** — script to create an RPM package for distribution.
- **make.bat** — batch script for Sphinx documentation generation.
- **conf.py** — configuration settings for generating Sphinx documentation.
- **__init__.py** — initialization module for Willie core tasks.
- **bot.py** — contains the main bot logic, including IRC handling and command dispatching.
- **config.py** — abstract class for accessing the active Willie configuration file.
- **coretasks.py** — defines core tasks for the Willie bot.
- **db.py** — database interface module.
- **formatting.py** — provides functions to apply IRC formatting to text.
- **irc.py** — utility IRC bot with basic protocol handling.
- **module.py** — decorators and tools for defining Willie callables.
- **test_tools.py** — classes and functions that can help in writing tests.
- **tools.py** — miscellaneous tools and shortcuts for use in Willie modules.
- **web.py** — essential web-related functions for interaction with web applications or websites.
- **admin.py** — admin module providing commands to manage the bot, such as joining channels.
- **adminchannel.py** — admin channel management module.
- **announce.py** — sends an announcement to all channels the bot is in.
- **bugzilla.py** — Willie Bugzilla module for interacting with Bugzilla issue trackers.
- **calc.py** — calculator module for performing arithmetic operations.
- **chanlogs.py** — channel logging module.
- **clock.py** — clock module providing time-related commands.
- **countdown.py** — countdown module for displaying a countdown to a given date.
- **currency.py** — currency exchange rate module.
- **dice.py** — dice rolling module.
- **etymology.py** — etymology module for looking up word origins.
- **find.py** — spell check and correction module.
- **find_updates.py** — update checking module.
- **github.py** — GitHub interaction module.
- **help.py** — help command providing information about available commands.
- **ip.py** — IP lookup module.
- **ipython.py** — IPython console for interactive Python sessions.
- **isup.py** — website status checker using isup.me.
- **lmgtfy.py** — "Let me Google that for you" module.
- **meetbot.py** — meeting logging and management module.
- **movie.py** — movie information retrieval module.
- **ping.py** — ping-related commands.
- **radio.py** — ShoutCAST radio module.
- **rand.py** — random number generation module.
- **reddit.py** — Reddit interaction module.
- **reload.py** — module reloader for admins.
- **remind.py** — reminder management module.
- **rss.py** — RSS feed monitoring and notification module.
- **search.py** — web search module using Google AjaxSearch API.
- **seen.py** — reports when a user was last seen in IRC.
- **spellcheck.py** — spell check and correction module.
- **tell.py** — tell and ask functionality for users.
- **tld.py** — top-level domain information retrieval module.
- **translate.py** — translation module using online services.
- **unicode_info.py** — codepoint lookup module.
- **units.py** — unit conversion module.
- **uptime.py** — uptime reporting module.
- **url.py** — URL title retrieval module.
- **version.py** — version information and git commit tracking.
- **weather.py** — weather information retrieval using Yahoo! Weather API.
- **wikipedia.py** — Wikipedia interaction module.