# Willie IRC Bot (v4.3.0)

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

## Description
Willie is a lightweight, open-source IRC bot written in Python. It provides basic functionality and can be extended with modules for various purposes such as weather updates, dictionary lookups, and more.

## Key Features
- Supports command triggers like `.help`, `.weather`, etc.
- Manages configuration through `config.py`.
- Runs unattended with an access/user-level system.
- Includes core tasks for handling IRC events.
- Allows module extensions via `__init__.py` and `module.py`.

## File Analysis
- **conftest.py** — Ignores certain files during testing.
- **pytest_run.py** — Script to run pytest from the command line.
- **setup.py** — Setup script for packaging and installing Willie.
- **willie.py** — Main bot file, initializes Willie with core functionality.
- **makerpm.py** — Script to create a RPM package for Willie.
- **make.bat** — Batch script for Sphinx documentation build.
- **conf.py** — Configuration settings for Sphinx documentation.
- **__init__.py** — Initializes the Willie module system.
- **bot.py** — Contains core bot functionalities and IRC protocol handling.
- **config.py** — Bot configuration class.
- **coretasks.py** — Handles core tasks like event responses.
- **db.py** — Database interface for storing preferences.
- **irc.py** — Implements IRC client functionality.
- **module.py** — Decorators and utilities for defining bot commands.
- **test_tools.py** — Tools for testing Willie modules.
- **tools.py** — Miscellaneous tools and shortcuts used in modules.
- **web.py** — Web-related functions for interacting with websites.
- **admin.py** — Admin module for managing the bot.
- **adminchannel.py** — Module to manage channel operations like oping users.
- **announce.py** — Sends announcements to all channels.
- **bugzilla.py** — Interface with Bugzilla issue trackers.
- **calc.py** — Calculator module using Google's calculator API.
- **chanlogs.py** — Logs messages in channels.
- **clock.py** — Provides time-related functionalities.
- **countdown.py** — Displays countdowns to specific dates.
- **currency.py** — Currency exchange rate lookup.
- **dice.py** — Dice rolling module.
- **etymology.py** — Etymology lookups.
- **find.py** — Spell check and correction.
- **github.py** — Interface with GitHub repositories.
- **help.py** — Provides help documentation for commands.
- **ip.py** — IP lookup using GeoIP database.
- **isup.py** — Website status checker.
- **lmgtfy.py** — "Let me Google that for you" module.
- **meetbot.py** — Meeting logger and recorder.
- **movie.py** — Movie information lookups.
- **ping.py** — Greeting and interjection handling.
- **radio.py** — ShoutCAST radio stream management.
- **rand.py** — Random number generator.
- **reddit-info.py** — Reddit module for detailed post info.
- **reload.py** — Module reloader for admins.
- **remind.py** — Reminder system.
- **rss.py** — RSS feed handler.
- **search.py** — Web search functionality.
- **seen.py** — Tracks when users were last seen.
- **spellcheck.py** — Spell check and correction.
- **tell.py** — Tell and ask module for private messages.
- **tld.py** — Top-level domain information.
- **translate.py** — Translation between languages.
- **unicode_info.py** — Codepoint lookup.
- **units.py** — Unit conversion.
- **url.py** — URL title retrieval.
- **version.py** — Bot version and commit information.
- **weather.py** — Weather updates from Yahoo!.
- **wikipedia.py** — Wikipedia module for fetching articles.
- **wiktionary.py** — Wiktionary module for definitions.
- **xkcd.py** — XKCD comic fetcher.
- **youtube.py** — YouTube video search.