# Willie IRC Bot

**Category:** Standalone_Bot
**Original Author:** Edward Powell

## Description
Willie is a simple, lightweight, open source IRC bot written in Python. It provides various utilities and commands for managing channels and users.

## Key Features
- Runs unattended with command triggers (!cmd/.cmd)
- Manages channel operations (JOIN/KICK/OP)
- Implements user-level access control

## File Analysis
- **setup.py** — sets up the bot's installation, including dependencies.
- **make.bat** — a batch script for building documentation using Sphinx.
- **conf.py** — configuration settings and build options for the bot’s documentation.
- **__init__.py** — initializes the bot, handling startup and signal handling.
- **bot.py** — core functionality of the bot, including IRC protocol interactions and module management.
- **config.py** — manages the bot's configuration settings.
- **coretasks.py** — handles standard IRC tasks like startup messages.
- **db.py** — database interface for storing preferences and data.
- **icao.py** — provides ICAO codes information.
- **irc.py** — implements core IRC protocol interactions.
- **tools.py** — miscellaneous utility functions used by the bot.
- **web.py** — handles web-related operations, including HTTP GET/POST requests.
- **admin.py** — admin commands for managing channels and users.
- **adminchannel.py** — provides administrative commands to manage channel permissions.
- **ai.py** — implements artificial intelligence features like goodbye messages.
- **bucket.py** — manages factoids and inventory items in a chat environment.
- **bugzilla.py** — integrates with Bugzilla issue trackers for information retrieval.
- **calc.py** — performs basic mathematical calculations.
- **clock.py** — provides time-related commands.
- **codepoints.py** — converts Unicode code points to characters.
- **countdown.py** — calculates and displays countdowns.
- **dice.py** — simulates dice rolls.
- **etymology.py** — retrieves etymological information for words.
- **find.py** — corrects spelling errors using sed notation.
- **fuckingweather.py** — provides weather information from The Fucking Weather website.
- **github.py** — interacts with GitHub repositories.
- **info.py** — displays documentation and examples for commands.
- **ip.py** — performs IP address lookups.
- **isup.py** — checks if a website is up using isup.me.
- **meetbot.py** — logs meeting discussions.
- **movie.py** — retrieves movie information from IMDb.
- **netsplit.py** — logs and handles netsplits on IRC networks.
- **nws.py** — provides weather alerts from the National Weather Service.
- **oblique.py** — interfaces with web services for various commands.
- **ping.py** — responds to greetings and insults.
- **radio.py** — manages ShoutCAST radio streams.
- **rand.py** — generates random numbers.
- **reddit-info.py** — provides detailed information about Reddit posts.
- **reload.py** — reloads modules for administrative use.
- **remind.py** — sets up reminders for users.
- **roulette.py** — implements a roulette game.
- **rss.py** — handles RSS feeds and notifications.
- **search.py** — performs web searches using Google Ajax.
- **seen.py** — tracks when users were last seen in the channel.
- **slap.py** — simulates slapping commands.
- **spellcheck.py** — checks spelling of words.
- **tell.py** — manages private messages and tells.
- **tld.py** — provides information about top-level domains.
- **translate.py** — translates text using web services.
- **twitter.py** — interacts with Twitter API.
- **url.py** — retrieves titles from URLs.
- **version.py** — displays version information.
- **weather.py** — fetches weather data from Yahoo! Weather.
- **wikipedia.py** — provides Wikipedia articles and summaries.
- **wiktionary.py** — retrieves definitions and translations from Wiktionary.
- **xkcd.py** — fetches XKCD comic strips.
- **youtube.py** — searches YouTube videos.