# Willie IRC Bot

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

## Description
Willie is a standalone IRC bot that can handle various commands, automate tasks, and interact with users in multiple channels.

## Key Features
- Manages user permissions and privileges.
- Handles channel operations like joining, parting, kicking, and setting modes.
- Supports command-based interactions for users to perform actions such as looking up information or executing bot-specific functions.
- Implements a logging system for tracking events and messages.
- Provides various modules for adding functionality, including administrative tools, web interaction, and more.

## File Analysis
- **checkstyle.sh** — Script for checking code style using PEP8.
- **ci_build.sh** — Build script for running tests and creating distributions.
- **conftest.py** — Configuration file for pytest to ignore specific files during testing.
- **pytest_run.py** — Python script used to run pytest from the command line.
- **setup.py** — Setup script for packaging and distributing Willie using setuptools.
- **willie.py** — Main bot entry point, handling initialization and running of Willie.
- **release.sh** — Script for releasing a new version of Willie by building and uploading it to PyPI.
- **update_db.py** — Migration script for updating the database schema.
- **makerpm.py** — Python script for creating an RPM package.
- **make.bat** — Batch file for Sphinx documentation build.
- **conf.py** — Configuration file for Sphinx documentation generation.
- **test_db.py** — Test suite for Willie's database functionality.
- **test_trigger.py** — Test suite for message parsing and triggers.
- **__init__.py** — Initialization module for Willie, containing core functions and imports.
- **bot.py** — Bot implementation with IRC protocol handling and core functionalities.
- **coretasks.py** — Core task management for Willie.
- **db.py** — Database interaction module using SQLite.
- **formatting.py** — Module for applying IRC formatting to text.
- **irc.py** — Utility IRC bot with various protocol-related functions.
- **logger.py** — Logging handler and formatter for Willie.
- **module.py** — Decorators and utilities for defining Willie callables.
- **web.py** — Web interaction module for HTTP requests and responses.
- **config.py** — Configuration section definitions for Willie.
- **core_section.py** — Core configuration settings for Willie.
- **types.py** — Types for creating section definitions in Willie's config.
- **admin.py** — Admin module with hold_ground and auto_accept_invite options.
- **adminchannel.py** — Module for managing admin channels and messages.
- **announce.py** — Module to send announcements to all channels.
- **bugzilla.py** — Bug tracking module using Bugzilla.
- **calc.py** — Calculator module for basic arithmetic operations.
- **chanlogs.py** — Channel logging module.
- **clock.py** — Clock module displaying the current time in a preferred format and timezone.
- **countdown.py** — Countdown module to display countdowns to specific dates.
- **currency.py** — Currency exchange rate lookup module using Bank of Canada data.
- **dice.py** — Dice rolling module with custom pouches.
- **etymology.py** — Etymology lookup module for word origins.
- **find.py** — Spelling correction and replacement module.
- **find_updates.py** — Module to check for updates from Willie's website.
- **github.py** — Github interaction module.
- **help.py** — Help and documentation module.
- **ip.py** — IP address lookup module using GeoIP database.
- **ipython.py** — Interactive Python console module.
- **isup.py** — Website status checker with isup.me API.
- **lmgtfy.py** — Module to generate "Let me Google that for you" links.
- **meetbot.py** — Meeting logging and management module.
- **movie.py** — Movie information lookup using IMDb API.
- **ping.py** — Greeting and ping handling module.
- **radio.py** — ShoutCAST radio stream monitoring module.
- **rand.py** — Random number generation module.
- **reddit.py** — Reddit interaction module with detailed post info.
- **reload.py** — Module to reload Willie's modules for admin use.
- **remind.py** — Reminder management module.
- **rss.py** — RSS feed handling and notification module.
- **safety.py** — Malicious URL detection using VirusTotal API.
- **search.py** — Web search module with Bing integration.
- **seen.py** — Module to track when users were last seen.
- **spellcheck.py** — Spell checking and correction module.