# Willie IRC Bot

**Category:** Standalone_Bot
**Original Author:** Edward Powell, Elad Alfassa

## Description
Willie is a simple, lightweight, open-source IRC utility bot written in Python. It provides various commands and features to automate tasks on IRC channels.

## Key Features
- **Commands and Events Handling**: Willie can handle various events like joins, parts, kicks, and messages.
- **Configuration Management**: Supports configuration through multiple files for different aspects of the bot's functionality.
- **Module System**: Allows loading of additional modules that extend the bot’s capabilities.
- **Database Support**: Can interact with databases to store preferences or other data.
- **Web Integration**: Provides basic web interaction functionalities like Google searches and URL title retrieval.

## File Analysis
- **pytest_run.py** — Script for running pytest from the command line.
- **setup.py** — Setup script for packaging and distributing Willie.
- **willie.py** — Main bot file containing core functionality.
- **makerpm.py** — Script to create an RPM package for distribution.
- **make.bat** — Batch file for Sphinx documentation generation.
- **conf.py** — Configuration settings for Sphinx documentation.
- **__init__.py** — Initialization module for Willie.
- **bot.py** — Bot class and core functionality.
- **config.py** — Configuration handling for the bot.
- **coretasks.py** — Core task functions for the bot.
- **db.py** — Database interaction module.
- **icao.py** — ICAO codes data.
- **irc.py** — IRC protocol related utilities.
- **module.py** — Module decorators and helper functions.
- **test_tools.py** — Tools for testing Willie modules.
- **tools.py** — Miscellaneous tools and shortcuts.
- **web.py** — Web-related utility functions.
- **admin.py** — Admin commands module.
- **adminchannel.py** — Channel management commands.
- **announce.py** — Announce messages to all channels.
- **bugzilla.py** — Bugzilla issue tracker integration.
- **calc.py** — Calculator functionality.
- **clock.py** — Time and date utilities.
- **countdown.py** — Countdown module.
- **dice.py** — Dice rolling utility.
- **etymology.py** — Etymology lookup.
- **find.py** — Spell correction based on user corrections.
- **github.py** — GitHub interaction commands.
- **help.py** — Help command for Willie.
- **ip.py** — IP lookup functionality.
- **isup.py** — Website status checker.
- **lmgtfy.py** — "Let me Google that for you" command.
- **meetbot.py** — Meeting logging module.
- **movie.py** — Movie information retrieval.
- **ping.py** — Greeting and interjection handling.
- **radio.py** — ShoutCAST radio stream management.
- **rand.py** — Random number generation.
- **reddit-info.py** — Reddit post info retrieval.
- **reload.py** — Module reloading functionality.
- **remind.py** — Reminder system.
- **rss.py** — RSS feed handling.
- **search.py** — Web search commands.
- **seen.py** — User last seen tracking.
- **spellcheck.py** — Spell checking utility.
- **tell.py** — Tell and ask command module.
- **tld.py** — Top-level domain information retrieval.
- **translate.py** — Translation functionality.
- **unicode_info.py** — Unicode codepoint lookup.
- **units.py** — Unit conversion utilities.
- **url.py** — URL title retrieval.
- **version.py** — Version information display.
- **weather.py** — Weather information retrieval.
- **wikipedia.py** — Wikipedia search and retrieval.
- **wiktionary.py** — Wiktionary lookup.
- **xkcd.py** — XKCD comic retrieval.
- **youtube.py** — YouTube video search.