# Willie IRC Bot

**Category:** Standalone_Bot
**Original Author:** Edward Powell, Sean B. Palmer, Elad Alfassa

## Description
Willie is a simple, lightweight, open source, easy-to-use IRC Utility bot, written in Python. It's designed to be easy to use, run and extend.

## Key Features
- Runs unattended with command triggers (!cmd/.cmd)
- Implements an access/user-level system for admin commands
- Supports text joining, kicking, and oping channels
- Provides a wide range of modules for various functionalities such as weather, translation, and more

## File Analysis
- **setup.py** — sets up the bot's installation process
- **make.bat** — batch file for Sphinx documentation build
- **conf.py** — configuration settings for Sphinx documentation
- **__init__.py** — main initialization module
- **bot.py** — core IRC bot functionality, including handling of IRC events and commands
- **config.py** — abstraction class for accessing the active Willie configuration file
- **coretasks.py** — routine core tasks such as startup procedures
- **db.py** — defines an interface for a semi-arbitrary database type
- **icao.py** — contains ICAO codes data
- **irc.py** — utility IRC bot with protocol-related features
- **tools.py** — miscellaneous tools used by Willie
- **web.py** — web facilities for interaction with websites and HTTP methods
- **admin.py** — admin module for managing the bot's operations
- **adminchannel.py** — manages administrative actions in channels
- **ai.py** — artificial intelligence module for responding to user inputs
- **bomb.py** — simple Willie bomb prank game
- **bucket.py** — module to emulate the behavior of #xkcd's Bucket bot
- **bugzilla.py** — module for interacting with Bugzilla issue trackers
- **calc.py** — calculator module for performing basic math operations
- **clock.py** — clock module providing time-related functionalities
- **codepoints.py** — codepoint module for displaying Unicode information
- **countdown.py** — countdown module for displaying a countdown to a given date
- **dice.py** — dice rolling module with support for complex expressions
- **etymology.py** — etymology module for looking up word origins
- **find.py** — spelling correction and suggestion module
- **github.py** — module for interacting with GitHub repositories
- **info.py** — documentation retrieval module
- **ip.py** — IP lookup module using external services
- **isup.py** — website status checker module
- **meetbot.py** — meeting logger module
- **movie.py** — movie information module using IMDb API
- **netsplit.py** — logs a debug message on a netsplit event
- **nws.py** — National Weather Service alert module
- **oblique.py** — web services interface for various APIs
- **ping.py** — greeting and interjection module
- **radio.py** — ShoutCAST radio stream module
- **rand.py** — random number generation module
- **reddit-info.py** — Reddit-specific information retrieval module
- **reload.py** — module reloader for admins
- **remind.py** — reminder management module
- **roulette.py** — roulette game module
- **rss.py** — RSS feed monitoring and notification module
- **search.py** — web search module using Google AJAX API
- **seen.py** — seen command to report when a user was last seen
- **slap.py** — slap command for playful interactions
- **spellcheck.py** — spell check module
- **tell.py** — tell and ask command for sending private messages
- **tld.py** — top-level domain information retrieval module
- **translate.py** — translation module using external services
- **twitter.py** — Twitter interaction module
- **url.py** — URL title retrieval module
- **version.py** — version information retrieval module
- **weather.py** — weather information module using Yahoo! API
- **wikipedia.py** — Wikipedia module for retrieving article content
- **wiktionary.py** — Wiktionary module for dictionary definitions and more
- **xkcd.py** — XKCD comic retrieval module
- **youtube.py** — YouTube search and interaction module