# Phenny IRC Bot

**Category:** Standalone_Bot
**Original Author:** Sean B. Palmer

## Description
Phenny is a standalone IRC bot written in Python that can join channels, respond to commands, and perform various tasks such as web searches, weather checks, and translations.

## Key Features
- Joins specified channels
- Responds to admin-only commands like `.join`, `.part`, and `.quit`
- Performs web searches using Google
- Provides weather information
- Can translate text between languages
- Manages reminders and tells

## File Analysis
- **__init__.py** — Initializes the bot, sets up threading for background tasks.
- **bot.py** — Core functionality of the bot including module loading and event handling.
- **icao.py** — Provides ICAO (International Civil Aviation Organization) codes data.
- **irc.py** — Handles IRC protocol interactions like sending and receiving messages.
- **tools.py** — Utility functions for string manipulation, HTTP requests, and more.
- **web.py** — Web-related utilities including HTML entity decoding and web page fetching.
- **admin.py** — Admin-only commands to manage the bot's operations.
- **calc.py** — Performs simple calculator operations using an online service.
- **clock.py** — Provides time zone information and clock functionality.
- **codepoints.py** — Deals with Unicode code points and their names.
- **etymology.py** — Fetches etymological information from a web API.
- **head.py** — Provides HTTP HEAD request information.
- **info.py** — Displays help and documentation for commands.
- **oblique.py** — Interfaces with web services.
- **ping.py** — Sends greetings and responds to interjections.
- **reload.py** — Reloads bot modules on-the-fly.
- **remind.py** — Manages reminders for users.
- **search.py** — Performs web searches using Google's AJAX API.
- **seen.py** — Tracks when other nicks have been seen in channels.
- **startup.py** — Handles startup and connection checks.
- **tell.py** — Manages private messages and tells.
- **translate.py** — Translates text between languages.
- **twitter.py** — Fetches tweets from Twitter.
- **validate.py** — Validates web pages using the W3C Markup Validator.
- **weather.py** — Provides weather information based on location.
- **wikipedia.py** — Fetches content from Wikipedia.
- **wiktionary.py** — Fetches definitions and etymologies from Wiktionary.
- **freenode.py** — Contains commands specific to Freenode IRC network.
- **README.txt** — Instructions for installation and configuration.
- **phenny** — Entry point script that creates a default config file.