# Willie IRC Bot

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

## Description
Willie is a standalone IRC bot written in Python that provides various functionalities such as commands, modules, and utilities for interacting with IRC channels.

## Key Features
- Supports command execution via `!` and `.`
- Manages configuration through a structured file system
- Implements logging to specified channels
- Provides web-related functions for fetching data from the internet

## File Analysis
- **checkstyle.sh** — Script for running PEP8 checks on Python files.
- **conftest.py** — Pytest configuration file, listing ignored test modules.
- **pytest_run.py** — Entry point script for running pytest tests.
- **setup.py** — Setup script for packaging and installing Willie.
- **makerpm.py** — Script for creating RPM packages of Willie.
- **make.bat** — Batch script for Sphinx documentation generation.
- **conf.py** — Sphinx configuration file for generating documentation.
- **__init__.py** — Initialization module defining the bot's core functionality.
- **bot.py** — Main bot implementation, handling IRC communication and commands.
- **config.py** — Configuration class for accessing Willie's settings.
- **coretasks.py** — Core tasks and routines for the bot.
- **db.py** — Database interface for storing preferences and data.
- **formatting.py** — Module for applying IRC formatting to text.
- **irc.py** — IRC protocol handling and communication module.
- **logger.py** — Logging handler for sending logs to IRC channels.
- **module.py** — Decorators and tools for defining bot commands and events.
- **test_tools.py** — Classes and functions for testing Willie modules.
- **tools.py** — Miscellaneous utility functions used in various modules.
- **web.py** — Web-related functionality, including HTTP GET/POST requests.
- **admin.py** — Admin module providing commands like `join` and `kick`.
- **adminchannel.py** — Module for managing administrative channels.
- **announce.py** — Sends an announcement to all channels the bot is in.
- **bugzilla.py** — Module for interacting with Bugzilla issue trackers.
- **calc.py** — Calculator module for performing arithmetic operations.
- **chanlogs.py** — Logs channel activities and events.
- **clock.py** — Clock module displaying current time in a specified timezone.
- **countdown.py** — Countdown timer functionality.
- **currency.py** — Currency exchange rate lookup module.
- **dice.py** — Dice rolling module.
- **etymology.py** — Etymology lookup module.
- **find.py** — Spell checking and correction module.
- **find_updates.py** — Module for checking Willie's version against the latest available version.
- **github.py** — GitHub interaction module, including issue tracking.
- **help.py** — Help and documentation retrieval module.
- **ip.py** — IP address lookup and geolocation module.
- **ipython.py** — Interactive Python console functionality.
- **isup.py** — Website status checker using isup.me.
- **lmgtfy.py** — Module for generating "Let me Google that for you" links.
- **meetbot.py** — Meeting logging and management module.
- **movie.py** — Movie information lookup module using IMDb API.
- **ping.py** — Greeting and pinging functionality.
- **radio.py** — ShoutCAST radio stream monitoring module.
- **rand.py** — Random number generation module.
- **reddit.py** — Reddit interaction module, including post and user info retrieval.
- **reload.py** — Module for reloading Willie's modules.
- **remind.py** — Reminder management functionality.
- **rss.py** — RSS feed parsing and notification module.
- **safety.py** — URL safety checking using VirusTotal API.
- **search.py** — Web search functionality using Google AJAX services.
- **seen.py** — Module for tracking when users were last seen in IRC channels.
- **spellcheck.py** — Spell checking and word suggestion module.
- **tell.py** — Tell and ask functionality, allowing users to send messages later.
- **tld.py** — Top-level domain information lookup module.
- **translate.py** — Translation module using various APIs.
- **unicode_info.py** — Codepoint information retrieval module.
- **units.py** — Unit conversion utility.
- **uptime.py** — Uptime reporting functionality.
- **url.py** — URL title and metadata fetching module.