# Willie IRC Bot

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

## Description
Willie is a lightweight, open-source IRC bot written in Python. It provides various commands and functionalities to interact with IRC channels.

## Key Features
- Provides over 50 built-in modules for different purposes such as weather, translation, reminders, and more.
- Supports command triggers like `.cmd` or `!cmd`.
- Manages user permissions and nicknames.
- Implements text parsing and response generation.
- Connects to IRC servers and channels.

## File Analysis
- **conftest.py** — Excludes certain files from pytest testing.
- **pytest_run.py** — Runs pytest tests within the project directory.
- **setup.py** — Defines package metadata for Willie, including version and dependencies.
- **willie.py** — Main entry point of the bot, handles command-line arguments and initialization.
- **makerpm.py** — Script to generate a RPM package for Willie.
- **make.bat** — Windows batch script for Sphinx documentation build.
- **conf.py** — Configuration file for Sphinx documentation generation.
- **__init__.py** — Initializes core Willie modules and sets up version information.
- **bot.py** — Manages IRC bot operations, including connection, message handling, and command processing.
- **config.py** — Defines the configuration system for Willie, allowing users to set various parameters.
- **coretasks.py** — Handles core tasks such as event responses and utility functions.
- **db.py** — Provides a database interface for Willie modules.
- **irc.py** — Implements IRC protocol handling and communication.
- **module.py** — Defines decorators and utilities for creating Willie commands.
- **test_tools.py** — Contains classes and functions to aid in writing tests.
- **tools.py** — Offers various tools and shortcuts for use in Willie modules.
- **web.py** — Handles web-related operations, including HTTP GET, POST, and HEAD requests.
- **admin.py** — Manages administrative tasks such as joining channels and setting preferences.
- **adminchannel.py** — Provides commands to manage channel permissions.
- **announce.py** — Sends announcements to all channels the bot is in.
- **bugzilla.py** — Retrieves information from Bugzilla issue trackers.
- **calc.py** — Performs basic calculations using Google's calculator API.
- **clock.py** — Displays a countdown or current time based on user input.
- **currency.py** — Fetches currency exchange rates.
- **dice.py** — Simulates dice rolls and displays results.
- **etymology.py** — Provides etymological information for words.
- **find.py** — Collects spelling corrections from users.
- **github.py** — Interacts with GitHub repositories.
- **help.py** — Displays documentation for Willie commands.
- **ip.py** — Looks up IP addresses and geolocation data.
- **isup.py** — Checks if a website is up using isup.me.
- **lmgtfy.py** — Sends users to Google search results.
- **meetbot.py** — Logs meetings in IRC channels.
- **movie.py** — Retrieves information about movies from IMDb.
- **ping.py** — Responds to greetings and pings.
- **radio.py** — Manages ShoutCAST radio streams.
- **rand.py** — Generates random numbers.
- **reddit-info.py** — Provides detailed information about Reddit posts.
- **reload.py** — Reloads Willie modules for admin use.
- **remind.py** — Sets reminders and notifies users when they are due.
- **rss.py** — Fetches RSS feeds from the internet.
- **search.py** — Searches the web using Google's AJAX API.
- **seen.py** — Tracks when users were last seen in IRC channels.
- **spellcheck.py** — Checks spelling of words and provides suggestions.
- **tell.py** — Manages private messages between users.
- **tld.py** — Provides information about top-level domains.
- **translate.py** — Translates text using various methods.
- **unicode_info.py** — Displays Unicode code points.
- **units.py** — Converts units of measurement.
- **url.py** — Retrieves titles from URLs.
- **version.py** — Manages versioning and logging.
- **weather.py** — Fetches weather information.
- **wikipedia.py** — Retrieves information from Wikipedia.
- **wiktionary.py** — Provides definitions from Wiktionary.
- **xkcd.py** — Displays XKCD comics.
- **youtube.py** — Searches YouTube videos.