# Willie IRC Bot

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

## Description
Willie is a standalone IRC bot that provides various commands and functionalities to users on an IRC network. It can handle basic tasks such as time queries, random number generation, web searches, and more.

## Key Features
- Provides a wide range of commands for users.
- Manages channel logs.
- Supports time zone conversions and countdowns.
- Includes modules for dice rolling, etymology lookups, and more.
- Can check website availability using `isup.me`.
- Allows for custom module development through plugins.

## File Analysis
- **checkstyle.sh** — Script to run PEP8 code style checks on Python files.
- **ci_build.sh** — Build script used in continuous integration environments.
- **conftest.py** — Pytest configuration file, specifying which tests should be ignored.
- **pytest_run.py** — Entry point for running pytest from the command line.
- **setup.py** — Setup script for packaging and distributing Willie as a Python package.
- **willie.py** — Main bot entry point, defining core functionality and version information.
- **release.sh** — Script to release a new version of Willie by building and uploading it to PyPI.
- **update_db.py** — Migration script for updating the database schema.
- **makerpm.py** — Script to create an RPM package for Willie.
- **make.bat** — Batch file for Sphinx documentation generation.
- **conf.py** — Configuration file for Sphinx documentation build process.
- **__init__.py (willie)** — Initialization module, setting up Willie's environment and version information.
- **test_db.py** — Test suite for the database functionality.
- **test_trigger.py** — Test suite for message parsing logic.
- **bot.py** — Core bot functionality, including event handling and command dispatching.
- **coretasks.py** — Defines core tasks and routines for Willie's operation.
- **db.py** — Database management module, providing an interface to interact with the database.
- **formatting.py** — Module for applying IRC formatting to text.
- **irc.py** — Utility IRC bot implementation, handling basic IRC protocol interactions.
- **logger.py** — Logging handler and formatter for Willie's logs.
- **module.py** — Decorators and utility functions for defining commands and events in modules.
- **test_tools.py** — Tools for writing tests.
- **trigger.py** — PreTrigger class for parsing IRC messages.
- **web.py** — Web-related functionality, including HTTP requests and responses.
- **admin.py** — Admin module for managing bot settings and permissions.
- **adminchannel.py** — Module for handling administrative channels.
- **announce.py** — Module to send announcements to all channels.
- **bugzilla.py** — Bug tracking module using Bugzilla issue trackers.
- **calc.py** — Calculator module for performing arithmetic operations.
- **chanlogs.py** — Channel logging functionality.
- **clock.py** — Time-related commands and utilities.
- **countdown.py** — Countdown timer module.
- **currency.py** — Currency exchange rate lookup module.
- **dice.py** — Dice rolling module.
- **etymology.py** — Etymology lookups using etymonline.com.
- **find.py** — Spelling correction and word replacement functionality.
- **find_updates.py** — Module for checking for updates to Willie.
- **github.py** — Github-related commands and utilities.
- **help.py** — Help module, providing information about available commands.
- **ip.py** — IP lookup module using GeoIP databases.
- **ipython.py** — Interactive Python console functionality.
- **isup.py** — Website status checker using isup.me.
- **lmgtfy.py** — Let me Google that for you command.
- **meetbot.py** — Meeting logging and management module.
- **movie.py** — Movie information lookup using IMDB API.
- **ping.py** — Greeting and rudeness handling commands.
- **radio.py** — ShoutCAST radio stream monitoring functionality.
- **rand.py** — Random number generation command.
- **reddit.py** — Reddit-related commands, including post info retrieval.
- **reload.py** — Module reloader for bot administrators.
- **remind.py** — Reminder management module.
- **rss.py** — RSS feed handling and notification system.
- **safety.py** — Malicious URL detection using VirusTotal API.
- **search.py** — Web search functionality.
- **seen.py** — Seen command to track when users were last active.